App autostart update and UI refinement
This commit is contained in:
@@ -2,10 +2,37 @@
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="HidSliders.Gui.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
<section name="VoicemeeterSliders.Gui.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<userSettings>
|
||||
<HidSliders.Gui.Properties.Settings>
|
||||
<setting name="VMVersion" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="Channel1Strip" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="Channel2Strip" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="Channel3Strip" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="Channel4Strip" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="Channel5Strip" serializeAs="String">
|
||||
<value>0</value>
|
||||
</setting>
|
||||
<setting name="AutoConnect" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
<setting name="MixerAutoConnect" serializeAs="String">
|
||||
<value>False</value>
|
||||
</setting>
|
||||
</HidSliders.Gui.Properties.Settings>
|
||||
<VoicemeeterSliders.Gui.Properties.Settings>
|
||||
<setting name="VMVersion" serializeAs="String">
|
||||
<value>0</value>
|
||||
|
||||
@@ -16,9 +16,10 @@ public class ChannelControlCollection
|
||||
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)
|
||||
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;
|
||||
@@ -40,6 +41,7 @@ public class ChannelControlCollection
|
||||
BusB3Checkbox.Tag = VMBus.B3;
|
||||
SoloCheckBox = soloCheckBox;
|
||||
MuteCheckBox = muteCheckBox;
|
||||
IndicatorLabel = indicatorLabel;
|
||||
}
|
||||
|
||||
public void EnableBusses(RunVoicemeeterParam version)
|
||||
|
||||
168
HidSliders.Gui/Form1.Designer.cs
generated
168
HidSliders.Gui/Form1.Designer.cs
generated
@@ -28,12 +28,15 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
label1 = new Label();
|
||||
components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
|
||||
voicemeeterStatusLabel = new Label();
|
||||
connectButton = new Button();
|
||||
vmRadio = new RadioButton();
|
||||
vmBananaRadio = new RadioButton();
|
||||
vmPotatoRadio = new RadioButton();
|
||||
groupBox1 = new GroupBox();
|
||||
autoConnectCheckBox = new CheckBox();
|
||||
button1 = new Button();
|
||||
backgroundWorker1 = new System.ComponentModel.BackgroundWorker();
|
||||
trackBar1 = new TrackBar();
|
||||
@@ -96,7 +99,15 @@
|
||||
checkBox40 = new CheckBox();
|
||||
checkBox41 = new CheckBox();
|
||||
checkBox42 = new CheckBox();
|
||||
checkBox43 = new CheckBox();
|
||||
slider1Label = new Label();
|
||||
slider2Label = new Label();
|
||||
slider3Label = new Label();
|
||||
slider4Label = new Label();
|
||||
slider5Label = new Label();
|
||||
groupBox2 = new GroupBox();
|
||||
mixerAutoConnectCheckbox = new CheckBox();
|
||||
mixerLabel = new Label();
|
||||
notifyIcon1 = new NotifyIcon(components);
|
||||
groupBox1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackBar1).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)trackBar2).BeginInit();
|
||||
@@ -108,16 +119,17 @@
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown3).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown4).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown5).BeginInit();
|
||||
groupBox2.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
// voicemeeterStatusLabel
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.Location = new Point(12, 224);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new Size(38, 15);
|
||||
label1.TabIndex = 0;
|
||||
label1.Text = "label1";
|
||||
voicemeeterStatusLabel.AutoSize = true;
|
||||
voicemeeterStatusLabel.Location = new Point(88, 126);
|
||||
voicemeeterStatusLabel.Name = "voicemeeterStatusLabel";
|
||||
voicemeeterStatusLabel.Size = new Size(38, 15);
|
||||
voicemeeterStatusLabel.TabIndex = 0;
|
||||
voicemeeterStatusLabel.Text = "label1";
|
||||
//
|
||||
// connectButton
|
||||
//
|
||||
@@ -168,11 +180,12 @@
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
groupBox1.Controls.Add(checkBox43);
|
||||
groupBox1.Controls.Add(autoConnectCheckBox);
|
||||
groupBox1.Controls.Add(vmRadio);
|
||||
groupBox1.Controls.Add(vmPotatoRadio);
|
||||
groupBox1.Controls.Add(vmBananaRadio);
|
||||
groupBox1.Controls.Add(connectButton);
|
||||
groupBox1.Controls.Add(voicemeeterStatusLabel);
|
||||
groupBox1.Location = new Point(12, 12);
|
||||
groupBox1.Name = "groupBox1";
|
||||
groupBox1.Size = new Size(200, 154);
|
||||
@@ -180,13 +193,23 @@
|
||||
groupBox1.TabStop = false;
|
||||
groupBox1.Text = "VoiceMeeter";
|
||||
//
|
||||
// autoConnectCheckBox
|
||||
//
|
||||
autoConnectCheckBox.AutoSize = true;
|
||||
autoConnectCheckBox.Location = new Point(7, 97);
|
||||
autoConnectCheckBox.Name = "autoConnectCheckBox";
|
||||
autoConnectCheckBox.Size = new Size(143, 19);
|
||||
autoConnectCheckBox.TabIndex = 71;
|
||||
autoConnectCheckBox.Text = "Auto-connect on start";
|
||||
autoConnectCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Location = new Point(12, 198);
|
||||
button1.Location = new Point(6, 22);
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(75, 23);
|
||||
button1.TabIndex = 6;
|
||||
button1.Text = "button1";
|
||||
button1.Text = "Connect";
|
||||
button1.UseVisualStyleBackColor = true;
|
||||
button1.Click += button1_Click;
|
||||
//
|
||||
@@ -257,7 +280,7 @@
|
||||
//
|
||||
// numericUpDown1
|
||||
//
|
||||
numericUpDown1.Location = new Point(218, 323);
|
||||
numericUpDown1.Location = new Point(273, 323);
|
||||
numericUpDown1.Maximum = new decimal(new int[] { 2, 0, 0, 0 });
|
||||
numericUpDown1.Name = "numericUpDown1";
|
||||
numericUpDown1.Size = new Size(45, 23);
|
||||
@@ -266,7 +289,7 @@
|
||||
//
|
||||
// numericUpDown2
|
||||
//
|
||||
numericUpDown2.Location = new Point(333, 323);
|
||||
numericUpDown2.Location = new Point(388, 323);
|
||||
numericUpDown2.Maximum = new decimal(new int[] { 2, 0, 0, 0 });
|
||||
numericUpDown2.Name = "numericUpDown2";
|
||||
numericUpDown2.Size = new Size(45, 23);
|
||||
@@ -275,7 +298,7 @@
|
||||
//
|
||||
// numericUpDown3
|
||||
//
|
||||
numericUpDown3.Location = new Point(444, 323);
|
||||
numericUpDown3.Location = new Point(499, 323);
|
||||
numericUpDown3.Maximum = new decimal(new int[] { 2, 0, 0, 0 });
|
||||
numericUpDown3.Name = "numericUpDown3";
|
||||
numericUpDown3.Size = new Size(45, 23);
|
||||
@@ -284,7 +307,7 @@
|
||||
//
|
||||
// numericUpDown4
|
||||
//
|
||||
numericUpDown4.Location = new Point(555, 323);
|
||||
numericUpDown4.Location = new Point(610, 323);
|
||||
numericUpDown4.Maximum = new decimal(new int[] { 2, 0, 0, 0 });
|
||||
numericUpDown4.Name = "numericUpDown4";
|
||||
numericUpDown4.Size = new Size(45, 23);
|
||||
@@ -293,7 +316,7 @@
|
||||
//
|
||||
// numericUpDown5
|
||||
//
|
||||
numericUpDown5.Location = new Point(666, 323);
|
||||
numericUpDown5.Location = new Point(726, 323);
|
||||
numericUpDown5.Maximum = new decimal(new int[] { 2, 0, 0, 0 });
|
||||
numericUpDown5.Name = "numericUpDown5";
|
||||
numericUpDown5.Size = new Size(45, 23);
|
||||
@@ -878,21 +901,99 @@
|
||||
checkBox42.Text = "A1";
|
||||
checkBox42.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkBox43
|
||||
// slider1Label
|
||||
//
|
||||
checkBox43.AutoSize = true;
|
||||
checkBox43.Location = new Point(7, 97);
|
||||
checkBox43.Name = "checkBox43";
|
||||
checkBox43.Size = new Size(100, 19);
|
||||
checkBox43.TabIndex = 71;
|
||||
checkBox43.Text = "Auto-connect";
|
||||
checkBox43.UseVisualStyleBackColor = true;
|
||||
slider1Label.AutoSize = true;
|
||||
slider1Label.Location = new Point(218, 325);
|
||||
slider1Label.Name = "slider1Label";
|
||||
slider1Label.Size = new Size(39, 15);
|
||||
slider1Label.TabIndex = 71;
|
||||
slider1Label.Text = "0.0 dB";
|
||||
//
|
||||
// slider2Label
|
||||
//
|
||||
slider2Label.AutoSize = true;
|
||||
slider2Label.Location = new Point(333, 325);
|
||||
slider2Label.Name = "slider2Label";
|
||||
slider2Label.Size = new Size(39, 15);
|
||||
slider2Label.TabIndex = 72;
|
||||
slider2Label.Text = "0.0 dB";
|
||||
//
|
||||
// slider3Label
|
||||
//
|
||||
slider3Label.AutoSize = true;
|
||||
slider3Label.Location = new Point(444, 325);
|
||||
slider3Label.Name = "slider3Label";
|
||||
slider3Label.Size = new Size(39, 15);
|
||||
slider3Label.TabIndex = 73;
|
||||
slider3Label.Text = "0.0 dB";
|
||||
//
|
||||
// slider4Label
|
||||
//
|
||||
slider4Label.AutoSize = true;
|
||||
slider4Label.Location = new Point(555, 325);
|
||||
slider4Label.Name = "slider4Label";
|
||||
slider4Label.Size = new Size(39, 15);
|
||||
slider4Label.TabIndex = 74;
|
||||
slider4Label.Text = "0.0 dB";
|
||||
//
|
||||
// slider5Label
|
||||
//
|
||||
slider5Label.AutoSize = true;
|
||||
slider5Label.Location = new Point(666, 325);
|
||||
slider5Label.Name = "slider5Label";
|
||||
slider5Label.Size = new Size(39, 15);
|
||||
slider5Label.TabIndex = 75;
|
||||
slider5Label.Text = "0.0 dB";
|
||||
//
|
||||
// groupBox2
|
||||
//
|
||||
groupBox2.Controls.Add(mixerAutoConnectCheckbox);
|
||||
groupBox2.Controls.Add(mixerLabel);
|
||||
groupBox2.Controls.Add(button1);
|
||||
groupBox2.Location = new Point(12, 172);
|
||||
groupBox2.Name = "groupBox2";
|
||||
groupBox2.Size = new Size(200, 100);
|
||||
groupBox2.TabIndex = 76;
|
||||
groupBox2.TabStop = false;
|
||||
groupBox2.Text = "USB Mixer";
|
||||
//
|
||||
// mixerAutoConnectCheckbox
|
||||
//
|
||||
mixerAutoConnectCheckbox.AutoSize = true;
|
||||
mixerAutoConnectCheckbox.Location = new Point(7, 51);
|
||||
mixerAutoConnectCheckbox.Name = "mixerAutoConnectCheckbox";
|
||||
mixerAutoConnectCheckbox.Size = new Size(143, 19);
|
||||
mixerAutoConnectCheckbox.TabIndex = 8;
|
||||
mixerAutoConnectCheckbox.Text = "Auto-connect on start";
|
||||
mixerAutoConnectCheckbox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// mixerLabel
|
||||
//
|
||||
mixerLabel.AutoSize = true;
|
||||
mixerLabel.Location = new Point(87, 26);
|
||||
mixerLabel.Name = "mixerLabel";
|
||||
mixerLabel.Size = new Size(38, 15);
|
||||
mixerLabel.TabIndex = 7;
|
||||
mixerLabel.Text = "label1";
|
||||
//
|
||||
// notifyIcon1
|
||||
//
|
||||
notifyIcon1.Icon = (Icon)resources.GetObject("notifyIcon1.Icon");
|
||||
notifyIcon1.Text = "notifyIcon1";
|
||||
notifyIcon1.Visible = true;
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(780, 363);
|
||||
Controls.Add(groupBox2);
|
||||
Controls.Add(slider5Label);
|
||||
Controls.Add(slider4Label);
|
||||
Controls.Add(slider3Label);
|
||||
Controls.Add(slider2Label);
|
||||
Controls.Add(slider1Label);
|
||||
Controls.Add(checkBox33);
|
||||
Controls.Add(checkBox34);
|
||||
Controls.Add(checkBox35);
|
||||
@@ -953,9 +1054,7 @@
|
||||
Controls.Add(trackBar3);
|
||||
Controls.Add(trackBar2);
|
||||
Controls.Add(trackBar1);
|
||||
Controls.Add(button1);
|
||||
Controls.Add(groupBox1);
|
||||
Controls.Add(label1);
|
||||
Name = "Form1";
|
||||
Text = "Form1";
|
||||
FormClosing += Form1_FormClosing;
|
||||
@@ -971,13 +1070,15 @@
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown3).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown4).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)numericUpDown5).EndInit();
|
||||
groupBox2.ResumeLayout(false);
|
||||
groupBox2.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Label label1;
|
||||
private Label voicemeeterStatusLabel;
|
||||
private Button connectButton;
|
||||
private RadioButton vmRadio;
|
||||
private RadioButton vmBananaRadio;
|
||||
@@ -1045,6 +1146,15 @@
|
||||
private CheckBox checkBox40;
|
||||
private CheckBox checkBox41;
|
||||
private CheckBox checkBox42;
|
||||
private CheckBox checkBox43;
|
||||
private CheckBox autoConnectCheckBox;
|
||||
private Label slider1Label;
|
||||
private Label slider2Label;
|
||||
private Label slider3Label;
|
||||
private Label slider4Label;
|
||||
private Label slider5Label;
|
||||
private GroupBox groupBox2;
|
||||
private CheckBox mixerAutoConnectCheckbox;
|
||||
private Label mixerLabel;
|
||||
private NotifyIcon notifyIcon1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,11 +17,11 @@ namespace HidSliders.Gui
|
||||
InitializeComponent();
|
||||
_channels = new List<ChannelControlCollection>
|
||||
{
|
||||
new (numericUpDown1, trackBar1, ch1A1Checkbox, ch1A2Checkbox, ch1A3Checkbox, ch1A4Checkbox, ch1A5Checkbox, ch1B1Checkbox, ch1B2Checkbox, ch1B3Checkbox, checkBox1, checkBox2),
|
||||
new (numericUpDown2, trackBar2, checkBox12, checkBox11, checkBox10, checkBox9, checkBox8, checkBox7, checkBox6, checkBox5, checkBox4, checkBox3),
|
||||
new (numericUpDown3, trackBar3, checkBox22, checkBox21, checkBox20, checkBox19, checkBox18, checkBox17, checkBox16, checkBox15, checkBox14, checkBox13),
|
||||
new (numericUpDown4, trackBar4, checkBox32, checkBox31, checkBox30, checkBox29, checkBox28, checkBox27, checkBox26, checkBox25, checkBox24, checkBox23),
|
||||
new (numericUpDown5, trackBar5, checkBox42, checkBox41, checkBox40, checkBox39, checkBox38, checkBox37, checkBox36, checkBox35, checkBox34, checkBox33),
|
||||
new (numericUpDown1, trackBar1, ch1A1Checkbox, ch1A2Checkbox, ch1A3Checkbox, ch1A4Checkbox, ch1A5Checkbox, ch1B1Checkbox, ch1B2Checkbox, ch1B3Checkbox, checkBox1, checkBox2, slider1Label),
|
||||
new (numericUpDown2, trackBar2, checkBox12, checkBox11, checkBox10, checkBox9, checkBox8, checkBox7, checkBox6, checkBox5, checkBox4, checkBox3, slider2Label),
|
||||
new (numericUpDown3, trackBar3, checkBox22, checkBox21, checkBox20, checkBox19, checkBox18, checkBox17, checkBox16, checkBox15, checkBox14, checkBox13, slider3Label),
|
||||
new (numericUpDown4, trackBar4, checkBox32, checkBox31, checkBox30, checkBox29, checkBox28, checkBox27, checkBox26, checkBox25, checkBox24, checkBox23, slider4Label),
|
||||
new (numericUpDown5, trackBar5, checkBox42, checkBox41, checkBox40, checkBox39, checkBox38, checkBox37, checkBox36, checkBox35, checkBox34, checkBox33, slider5Label),
|
||||
|
||||
};
|
||||
|
||||
@@ -44,13 +44,25 @@ namespace HidSliders.Gui
|
||||
_channels[3].ChannelSelector.Value = Properties.Settings.Default.Channel4Strip;
|
||||
_channels[4].ChannelSelector.Value = Properties.Settings.Default.Channel5Strip;
|
||||
|
||||
if (Properties.Settings.Default.AutoConnect)
|
||||
{
|
||||
autoConnectCheckBox.Checked = true;
|
||||
Task.Run(ConnectVoicemeeter).Wait();
|
||||
}
|
||||
|
||||
var enumerator = new HidEnumerator();
|
||||
var hidDevices = enumerator.Enumerate(0x0359, [0x6497]);
|
||||
_hidDevice = hidDevices.FirstOrDefault();
|
||||
label1.Text = $"Mixer {(_hidDevice?.IsConnected == true ? "" : "not ")}connected";
|
||||
voicemeeterStatusLabel.Text = $"Mixer {(_hidDevice?.IsConnected == true ? "" : "not ")}connected";
|
||||
|
||||
if (_hidDevice?.IsConnected == true && Properties.Settings.Default.MixerAutoConnect)
|
||||
{
|
||||
UsbListenerLoop();
|
||||
mixerAutoConnectCheckbox.Checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
private async void connectButton_Click(object sender, EventArgs e)
|
||||
private async Task ConnectVoicemeeter()
|
||||
{
|
||||
RunVoicemeeterParam version = RunVoicemeeterParam.None;
|
||||
if (vmRadio.Checked)
|
||||
@@ -71,9 +83,15 @@ namespace HidSliders.Gui
|
||||
if (_vmClient != null)
|
||||
{
|
||||
EnableVMControls(version);
|
||||
voicemeeterStatusLabel.Text = "Connected";
|
||||
}
|
||||
}
|
||||
|
||||
private async void connectButton_Click(object sender, EventArgs e)
|
||||
{
|
||||
await ConnectVoicemeeter();
|
||||
}
|
||||
|
||||
private void EnableVMControls(RunVoicemeeterParam version)
|
||||
{
|
||||
foreach (var channel in _channels)
|
||||
@@ -115,21 +133,19 @@ namespace HidSliders.Gui
|
||||
Properties.Settings.Default.Save();
|
||||
}
|
||||
|
||||
private async void button1_Click(object sender, EventArgs e)
|
||||
private async void UsbListenerLoop()
|
||||
{
|
||||
if (_hidDevice == null) return;
|
||||
var stopwatch = new Stopwatch();
|
||||
mixerLabel.Text = "Mixer online";
|
||||
while (true)
|
||||
{
|
||||
if (_hidDevice.IsConnected)
|
||||
{
|
||||
button1.Enabled = false;
|
||||
stopwatch.Start();
|
||||
//label1.Text = "waiting for report";
|
||||
var progress = new Progress<string>();
|
||||
progress.ProgressChanged += (o, s) => label1.Text = s;
|
||||
progress.ProgressChanged += (o, s) => voicemeeterStatusLabel.Text = s;
|
||||
var report = await Task.Run(() => _hidDevice.ReadReport());
|
||||
var labelText = string.Empty;
|
||||
if (report.ReadStatus == HidDeviceData.ReadStatus.Success)
|
||||
{
|
||||
var reportChunk = new byte[2];
|
||||
@@ -138,15 +154,11 @@ namespace HidSliders.Gui
|
||||
Array.Copy(report.Data, i * 2, reportChunk, 0, 2);
|
||||
var sliderVal = BitConverter.ToInt16(reportChunk);
|
||||
var gain = HidToGain(sliderVal);
|
||||
labelText += $"Value {i}: {sliderVal} ({gain}dB)\n";
|
||||
SetStripGain(_channels[i].CurrentStrip, gain);
|
||||
_channels[i].TrackBar.Value = (int)gain;
|
||||
_channels[i].IndicatorLabel.Text = $"{gain} dB";
|
||||
}
|
||||
}
|
||||
stopwatch.Stop();
|
||||
labelText += $"Report time: {stopwatch.ElapsedMilliseconds}ms";
|
||||
stopwatch.Reset();
|
||||
label1.Text = labelText;
|
||||
//button1.Enabled = true;
|
||||
}
|
||||
else
|
||||
@@ -156,6 +168,11 @@ namespace HidSliders.Gui
|
||||
}
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
UsbListenerLoop();
|
||||
}
|
||||
|
||||
private float HidToGain(int hidValue)
|
||||
{
|
||||
// adjusted regression of yamaha board is approx y = 5.8456 + 17.0486 * ln(x)
|
||||
@@ -289,5 +306,34 @@ namespace HidSliders.Gui
|
||||
SetChannelMute(channel.CurrentStrip, checkBox.Checked);
|
||||
}
|
||||
}
|
||||
|
||||
private void autoConnectCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.AutoConnect = autoConnectCheckBox.Checked;
|
||||
}
|
||||
|
||||
private void checkBox43_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
Properties.Settings.Default.MixerAutoConnect = mixerAutoConnectCheckbox.Checked;
|
||||
}
|
||||
|
||||
private void Form1_Resize(object sender, EventArgs e)
|
||||
{
|
||||
if (FormWindowState.Minimized == this.WindowState)
|
||||
{
|
||||
notifyIcon1.Visible = true;
|
||||
this.Hide();
|
||||
}
|
||||
else if (FormWindowState.Normal == this.WindowState)
|
||||
{
|
||||
notifyIcon1.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void notifyIcon1_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.Show();
|
||||
WindowState = FormWindowState.Normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,4 +120,91 @@
|
||||
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>179, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
RK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
24
HidSliders.Gui/Properties/Settings.Designer.cs
generated
24
HidSliders.Gui/Properties/Settings.Designer.cs
generated
@@ -94,5 +94,29 @@ namespace HidSliders.Gui.Properties {
|
||||
this["Channel5Strip"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool AutoConnect {
|
||||
get {
|
||||
return ((bool)(this["AutoConnect"]));
|
||||
}
|
||||
set {
|
||||
this["AutoConnect"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("False")]
|
||||
public bool MixerAutoConnect {
|
||||
get {
|
||||
return ((bool)(this["MixerAutoConnect"]));
|
||||
}
|
||||
set {
|
||||
this["MixerAutoConnect"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="VoicemeeterSliders.Gui.Properties" GeneratedClassName="Settings">
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="HidSliders.Gui.Properties" GeneratedClassName="Settings">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="VMVersion" Type="System.Int32" Scope="User">
|
||||
@@ -20,5 +20,11 @@
|
||||
<Setting Name="Channel5Strip" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">0</Value>
|
||||
</Setting>
|
||||
<Setting Name="AutoConnect" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
<Setting Name="MixerAutoConnect" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">False</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
Reference in New Issue
Block a user