From ac36aeb3cff076ba8f6371f8e629151f70638a51 Mon Sep 17 00:00:00 2001 From: mikahjc Date: Wed, 10 Apr 2024 19:43:06 -0500 Subject: [PATCH] App autostart update and UI refinement --- HidSliders.Gui/App.config | 27 +++ HidSliders.Gui/ChannelControlCollection.cs | 4 +- HidSliders.Gui/Form1.Designer.cs | 168 +++++++++++++++--- HidSliders.Gui/Form1.cs | 80 +++++++-- HidSliders.Gui/Form1.resx | 87 +++++++++ .../Properties/Settings.Designer.cs | 24 +++ HidSliders.Gui/Properties/Settings.settings | 8 +- 7 files changed, 350 insertions(+), 48 deletions(-) diff --git a/HidSliders.Gui/App.config b/HidSliders.Gui/App.config index a5803fa..8885473 100644 --- a/HidSliders.Gui/App.config +++ b/HidSliders.Gui/App.config @@ -2,10 +2,37 @@ +
+ + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + False + + + False + + 0 diff --git a/HidSliders.Gui/ChannelControlCollection.cs b/HidSliders.Gui/ChannelControlCollection.cs index 1b93db4..9f02c98 100644 --- a/HidSliders.Gui/ChannelControlCollection.cs +++ b/HidSliders.Gui/ChannelControlCollection.cs @@ -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) diff --git a/HidSliders.Gui/Form1.Designer.cs b/HidSliders.Gui/Form1.Designer.cs index 2bc13da..71ab98a 100644 --- a/HidSliders.Gui/Form1.Designer.cs +++ b/HidSliders.Gui/Form1.Designer.cs @@ -28,12 +28,15 @@ /// 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; } } diff --git a/HidSliders.Gui/Form1.cs b/HidSliders.Gui/Form1.cs index c965f6e..5b6ccf2 100644 --- a/HidSliders.Gui/Form1.cs +++ b/HidSliders.Gui/Form1.cs @@ -17,11 +17,11 @@ namespace HidSliders.Gui InitializeComponent(); _channels = new List { - 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(); - 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; + } } } diff --git a/HidSliders.Gui/Form1.resx b/HidSliders.Gui/Form1.resx index fa7aa79..d59de74 100644 --- a/HidSliders.Gui/Form1.resx +++ b/HidSliders.Gui/Form1.resx @@ -120,4 +120,91 @@ 17, 17 + + 179, 17 + + + + + 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 + RK5CYII= + + \ No newline at end of file diff --git a/HidSliders.Gui/Properties/Settings.Designer.cs b/HidSliders.Gui/Properties/Settings.Designer.cs index 10db8ce..bc0d2df 100644 --- a/HidSliders.Gui/Properties/Settings.Designer.cs +++ b/HidSliders.Gui/Properties/Settings.Designer.cs @@ -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; + } + } } } diff --git a/HidSliders.Gui/Properties/Settings.settings b/HidSliders.Gui/Properties/Settings.settings index 9ab180c..09ae630 100644 --- a/HidSliders.Gui/Properties/Settings.settings +++ b/HidSliders.Gui/Properties/Settings.settings @@ -1,5 +1,5 @@  - + @@ -20,5 +20,11 @@ 0 + + False + + + False + \ No newline at end of file