Files
HidSliders/HidSliders.Gui/ChannelControlCollection.cs

82 lines
2.9 KiB
C#

using Voicemeeter;
namespace HidSliders.Gui;
public class ChannelControlCollection
{
public NumericUpDown ChannelSelector { get; }
public TrackBar TrackBar { get; }
public CheckBox BusA1Checkbox { get; }
public CheckBox BusA2Checkbox { get; }
public CheckBox BusA3Checkbox { get; }
public CheckBox BusA4Checkbox { get; }
public CheckBox BusA5Checkbox { get; }
public CheckBox BusB1Checkbox { get; }
public CheckBox BusB2Checkbox { get; }
public CheckBox BusB3Checkbox { get; }
public CheckBox SoloCheckBox { get; }
public CheckBox MuteCheckBox { get; }
public Label IndicatorLabel { get; }
public int CurrentStrip => (int)ChannelSelector.Value;
public ChannelControlCollection(NumericUpDown channelSelector, TrackBar trackBar, CheckBox busA1Checkbox, CheckBox busA2Checkbox, CheckBox busA3Checkbox, CheckBox busA4Checkbox, CheckBox busA5Checkbox, CheckBox busB1Checkbox, CheckBox busB2Checkbox, CheckBox busB3Checkbox, CheckBox soloCheckBox, CheckBox muteCheckBox, Label indicatorLabel)
{
ChannelSelector = channelSelector;
TrackBar = trackBar;
BusA1Checkbox = busA1Checkbox;
BusA1Checkbox.Tag = VMBus.A1;
BusA2Checkbox = busA2Checkbox;
BusA2Checkbox.Tag = VMBus.A2;
BusA3Checkbox = busA3Checkbox;
BusA3Checkbox.Tag = VMBus.A3;
BusA4Checkbox = busA4Checkbox;
BusA4Checkbox.Tag = VMBus.A4;
BusA5Checkbox = busA5Checkbox;
BusA5Checkbox.Tag = VMBus.A5;
BusB1Checkbox = busB1Checkbox;
BusB1Checkbox.Tag = VMBus.B1;
BusB2Checkbox = busB2Checkbox;
BusB2Checkbox.Tag = VMBus.B2;
BusB3Checkbox = busB3Checkbox;
BusB3Checkbox.Tag = VMBus.B3;
SoloCheckBox = soloCheckBox;
MuteCheckBox = muteCheckBox;
IndicatorLabel = indicatorLabel;
}
public void EnableBusses(RunVoicemeeterParam version)
{
BusA1Checkbox.Enabled = true;
BusB1Checkbox.Enabled = true;
if (version > RunVoicemeeterParam.Voicemeeter)
{
BusA2Checkbox.Enabled = true;
BusA3Checkbox.Enabled = true;
BusB2Checkbox.Enabled = true;
}
if (version > RunVoicemeeterParam.VoicemeeterBanana)
{
BusA4Checkbox.Enabled = true;
BusA5Checkbox.Enabled = true;
BusB3Checkbox.Enabled = true;
}
}
public bool OwnsControl(Control control)
{
return control == ChannelSelector ||
control == TrackBar ||
control == BusA1Checkbox ||
control == BusA2Checkbox ||
control == BusA3Checkbox ||
control == BusA4Checkbox ||
control == BusA5Checkbox ||
control == BusB1Checkbox ||
control == BusB2Checkbox ||
control == BusB3Checkbox ||
control == SoloCheckBox ||
control == MuteCheckBox;
}
}