Correcting audio selection loading in UI

Was incorrectly loading audio volume on form
load and also not correctly adjusting it when
selecting a different audio device.
This commit is contained in:
Terry MacDonald 2020-12-05 17:04:30 +13:00
parent a87d6397fa
commit 09b9e185e3
2 changed files with 279 additions and 160 deletions

View File

@ -44,6 +44,11 @@ namespace DisplayMagician.UIForms
this.ilv_saved_profiles = new Manina.Windows.Forms.ImageListView(); this.ilv_saved_profiles = new Manina.Windows.Forms.ImageListView();
this.dv_profile = new DisplayMagician.Shared.UserControls.DisplayView(); this.dv_profile = new DisplayMagician.Shared.UserControls.DisplayView();
this.tabp_audio = new System.Windows.Forms.TabPage(); this.tabp_audio = new System.Windows.Forms.TabPage();
this.gb_audio_volume = new System.Windows.Forms.GroupBox();
this.rb_set_audio_volume = new System.Windows.Forms.RadioButton();
this.rb_keep_audio_volume = new System.Windows.Forms.RadioButton();
this.lbl_audio_volume = new System.Windows.Forms.Label();
this.nud_audio_volume = new System.Windows.Forms.NumericUpDown();
this.btn_rescan_audio = new System.Windows.Forms.Button(); this.btn_rescan_audio = new System.Windows.Forms.Button();
this.cb_audio_device = new System.Windows.Forms.ComboBox(); this.cb_audio_device = new System.Windows.Forms.ComboBox();
this.rb_change_audio = new System.Windows.Forms.RadioButton(); this.rb_change_audio = new System.Windows.Forms.RadioButton();
@ -122,14 +127,11 @@ namespace DisplayMagician.UIForms
this.lbl_title = new System.Windows.Forms.Label(); this.lbl_title = new System.Windows.Forms.Label();
this.lbl_shortcut_name = new System.Windows.Forms.Label(); this.lbl_shortcut_name = new System.Windows.Forms.Label();
this.cb_autosuggest = new System.Windows.Forms.CheckBox(); this.cb_autosuggest = new System.Windows.Forms.CheckBox();
this.gb_audio_volume = new System.Windows.Forms.GroupBox();
this.rb_set_audio_volume = new System.Windows.Forms.RadioButton();
this.rb_keep_audio_volume = new System.Windows.Forms.RadioButton();
this.lbl_audio_volume = new System.Windows.Forms.Label();
this.nud_audio_volume = new System.Windows.Forms.NumericUpDown();
this.tabc_shortcut.SuspendLayout(); this.tabc_shortcut.SuspendLayout();
this.tabp_display.SuspendLayout(); this.tabp_display.SuspendLayout();
this.tabp_audio.SuspendLayout(); this.tabp_audio.SuspendLayout();
this.gb_audio_volume.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nud_audio_volume)).BeginInit();
this.tabp_before.SuspendLayout(); this.tabp_before.SuspendLayout();
this.pnl_start_program4.SuspendLayout(); this.pnl_start_program4.SuspendLayout();
this.pnl_start_program3.SuspendLayout(); this.pnl_start_program3.SuspendLayout();
@ -143,8 +145,6 @@ namespace DisplayMagician.UIForms
this.tabp_after.SuspendLayout(); this.tabp_after.SuspendLayout();
this.groupBox1.SuspendLayout(); this.groupBox1.SuspendLayout();
this.gb_display_after.SuspendLayout(); this.gb_display_after.SuspendLayout();
this.gb_audio_volume.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nud_audio_volume)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// btn_save // btn_save
@ -303,6 +303,70 @@ namespace DisplayMagician.UIForms
this.tabp_audio.TabIndex = 4; this.tabp_audio.TabIndex = 4;
this.tabp_audio.Text = "2. Choose Audio"; this.tabp_audio.Text = "2. Choose Audio";
// //
// gb_audio_volume
//
this.gb_audio_volume.Controls.Add(this.rb_set_audio_volume);
this.gb_audio_volume.Controls.Add(this.rb_keep_audio_volume);
this.gb_audio_volume.Controls.Add(this.lbl_audio_volume);
this.gb_audio_volume.Controls.Add(this.nud_audio_volume);
this.gb_audio_volume.ForeColor = System.Drawing.Color.White;
this.gb_audio_volume.Location = new System.Drawing.Point(392, 240);
this.gb_audio_volume.Name = "gb_audio_volume";
this.gb_audio_volume.Size = new System.Drawing.Size(429, 147);
this.gb_audio_volume.TabIndex = 10;
this.gb_audio_volume.TabStop = false;
this.gb_audio_volume.Text = "Audio Output Volume";
this.gb_audio_volume.Visible = false;
//
// rb_set_audio_volume
//
this.rb_set_audio_volume.AutoSize = true;
this.rb_set_audio_volume.ForeColor = System.Drawing.Color.White;
this.rb_set_audio_volume.Location = new System.Drawing.Point(38, 84);
this.rb_set_audio_volume.Name = "rb_set_audio_volume";
this.rb_set_audio_volume.Size = new System.Drawing.Size(167, 24);
this.rb_set_audio_volume.TabIndex = 13;
this.rb_set_audio_volume.Text = "Set audio volume at";
this.rb_set_audio_volume.UseVisualStyleBackColor = true;
this.rb_set_audio_volume.CheckedChanged += new System.EventHandler(this.rb_set_audio_volume_CheckedChanged);
//
// rb_keep_audio_volume
//
this.rb_keep_audio_volume.AutoSize = true;
this.rb_keep_audio_volume.Checked = true;
this.rb_keep_audio_volume.ForeColor = System.Drawing.Color.White;
this.rb_keep_audio_volume.Location = new System.Drawing.Point(38, 41);
this.rb_keep_audio_volume.Name = "rb_keep_audio_volume";
this.rb_keep_audio_volume.Size = new System.Drawing.Size(203, 24);
this.rb_keep_audio_volume.TabIndex = 12;
this.rb_keep_audio_volume.TabStop = true;
this.rb_keep_audio_volume.Text = "Leave audio volume as is";
this.rb_keep_audio_volume.UseVisualStyleBackColor = true;
this.rb_keep_audio_volume.CheckedChanged += new System.EventHandler(this.rb_keep_audio_volume_CheckedChanged);
//
// lbl_audio_volume
//
this.lbl_audio_volume.AutoSize = true;
this.lbl_audio_volume.ForeColor = System.Drawing.Color.White;
this.lbl_audio_volume.Location = new System.Drawing.Point(275, 86);
this.lbl_audio_volume.Name = "lbl_audio_volume";
this.lbl_audio_volume.Size = new System.Drawing.Size(63, 20);
this.lbl_audio_volume.TabIndex = 11;
this.lbl_audio_volume.Text = "percent";
//
// nud_audio_volume
//
this.nud_audio_volume.Enabled = false;
this.nud_audio_volume.Location = new System.Drawing.Point(209, 84);
this.nud_audio_volume.Name = "nud_audio_volume";
this.nud_audio_volume.Size = new System.Drawing.Size(60, 26);
this.nud_audio_volume.TabIndex = 10;
this.nud_audio_volume.Value = new decimal(new int[] {
100,
0,
0,
0});
//
// btn_rescan_audio // btn_rescan_audio
// //
this.btn_rescan_audio.Enabled = false; this.btn_rescan_audio.Enabled = false;
@ -1209,65 +1273,6 @@ namespace DisplayMagician.UIForms
this.cb_autosuggest.UseVisualStyleBackColor = true; this.cb_autosuggest.UseVisualStyleBackColor = true;
this.cb_autosuggest.CheckedChanged += new System.EventHandler(this.cb_autosuggest_CheckedChanged); this.cb_autosuggest.CheckedChanged += new System.EventHandler(this.cb_autosuggest_CheckedChanged);
// //
// gb_audio_volume
//
this.gb_audio_volume.Controls.Add(this.rb_set_audio_volume);
this.gb_audio_volume.Controls.Add(this.rb_keep_audio_volume);
this.gb_audio_volume.Controls.Add(this.lbl_audio_volume);
this.gb_audio_volume.Controls.Add(this.nud_audio_volume);
this.gb_audio_volume.Location = new System.Drawing.Point(392, 240);
this.gb_audio_volume.Name = "gb_audio_volume";
this.gb_audio_volume.Size = new System.Drawing.Size(506, 147);
this.gb_audio_volume.TabIndex = 10;
this.gb_audio_volume.TabStop = false;
this.gb_audio_volume.Visible = false;
//
// rb_set_audio_volume
//
this.rb_set_audio_volume.AutoSize = true;
this.rb_set_audio_volume.ForeColor = System.Drawing.Color.White;
this.rb_set_audio_volume.Location = new System.Drawing.Point(38, 84);
this.rb_set_audio_volume.Name = "rb_set_audio_volume";
this.rb_set_audio_volume.Size = new System.Drawing.Size(167, 24);
this.rb_set_audio_volume.TabIndex = 13;
this.rb_set_audio_volume.Text = "Set audio volume at";
this.rb_set_audio_volume.UseVisualStyleBackColor = true;
//
// rb_keep_audio_volume
//
this.rb_keep_audio_volume.AutoSize = true;
this.rb_keep_audio_volume.Checked = true;
this.rb_keep_audio_volume.ForeColor = System.Drawing.Color.White;
this.rb_keep_audio_volume.Location = new System.Drawing.Point(38, 36);
this.rb_keep_audio_volume.Name = "rb_keep_audio_volume";
this.rb_keep_audio_volume.Size = new System.Drawing.Size(203, 24);
this.rb_keep_audio_volume.TabIndex = 12;
this.rb_keep_audio_volume.TabStop = true;
this.rb_keep_audio_volume.Text = "Leave audio volume as is";
this.rb_keep_audio_volume.UseVisualStyleBackColor = true;
//
// lbl_audio_volume
//
this.lbl_audio_volume.AutoSize = true;
this.lbl_audio_volume.ForeColor = System.Drawing.Color.White;
this.lbl_audio_volume.Location = new System.Drawing.Point(275, 86);
this.lbl_audio_volume.Name = "lbl_audio_volume";
this.lbl_audio_volume.Size = new System.Drawing.Size(63, 20);
this.lbl_audio_volume.TabIndex = 11;
this.lbl_audio_volume.Text = "percent";
//
// nud_audio_volume
//
this.nud_audio_volume.Location = new System.Drawing.Point(209, 84);
this.nud_audio_volume.Name = "nud_audio_volume";
this.nud_audio_volume.Size = new System.Drawing.Size(60, 26);
this.nud_audio_volume.TabIndex = 10;
this.nud_audio_volume.Value = new decimal(new int[] {
100,
0,
0,
0});
//
// ShortcutForm // ShortcutForm
// //
this.AcceptButton = this.btn_save; this.AcceptButton = this.btn_save;
@ -1298,6 +1303,9 @@ namespace DisplayMagician.UIForms
this.tabp_display.PerformLayout(); this.tabp_display.PerformLayout();
this.tabp_audio.ResumeLayout(false); this.tabp_audio.ResumeLayout(false);
this.tabp_audio.PerformLayout(); this.tabp_audio.PerformLayout();
this.gb_audio_volume.ResumeLayout(false);
this.gb_audio_volume.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nud_audio_volume)).EndInit();
this.tabp_before.ResumeLayout(false); this.tabp_before.ResumeLayout(false);
this.pnl_start_program4.ResumeLayout(false); this.pnl_start_program4.ResumeLayout(false);
this.pnl_start_program4.PerformLayout(); this.pnl_start_program4.PerformLayout();
@ -1320,9 +1328,6 @@ namespace DisplayMagician.UIForms
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
this.gb_display_after.ResumeLayout(false); this.gb_display_after.ResumeLayout(false);
this.gb_display_after.PerformLayout(); this.gb_display_after.PerformLayout();
this.gb_audio_volume.ResumeLayout(false);
this.gb_audio_volume.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nud_audio_volume)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();

View File

@ -40,6 +40,9 @@ namespace DisplayMagician.UIForms
private uint _gameId = 0; private uint _gameId = 0;
private string _uuid = ""; private string _uuid = "";
private CoreAudioController audioController = new CoreAudioController(); private CoreAudioController audioController = new CoreAudioController();
private List<CoreAudioDevice> audioDevices = null;
private CoreAudioDevice selectedAudioDevice = null;
private bool audioVolumeSetToDefault = true;
public ShortcutForm(ShortcutItem shortcutToEdit) public ShortcutForm(ShortcutItem shortcutToEdit)
{ {
@ -366,7 +369,11 @@ namespace DisplayMagician.UIForms
_audioDevice = cb_audio_device.Text; _audioDevice = cb_audio_device.Text;
} }
else else
{
_changeAudioDevice = false; _changeAudioDevice = false;
_audioDevice = "";
}
if (rb_set_audio_volume.Checked) if (rb_set_audio_volume.Checked)
{ {
@ -700,8 +707,63 @@ namespace DisplayMagician.UIForms
ProfileItem chosenProfile = null; ProfileItem chosenProfile = null;
// Populate all the Audio devices in the audio devices list. // Populate all the Audio devices in the audio devices list.
// Set the Audio device to the shortcut audio device only if
// the Change Audio radiobutton is set
rb_change_audio.Checked = _shortcutToEdit.ChangeAudioDevice;
cb_audio_device.Items.Clear(); cb_audio_device.Items.Clear();
List<CoreAudioDevice> audioDevices = audioController.GetPlaybackDevices().ToList(); audioDevices = audioController.GetPlaybackDevices().ToList();
// If the shortcut is to change the audio device
if (_shortcutToEdit.ChangeAudioDevice)
{
// Then we need to populate the list
bool foundAudioDevice = false;
foreach (CoreAudioDevice audioDevice in audioDevices)
{
if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active)
{
int index = cb_audio_device.Items.Add(audioDevice.FullName);
// Set the audio device to the default device by default
if (audioDevice.FullName.Equals(_shortcutToEdit.AudioDevice))
{
foundAudioDevice = true;
selectedAudioDevice = audioDevice;
cb_audio_device.SelectedIndex = index;
if (_shortcutToEdit.SetAudioVolume && _shortcutToEdit.AudioVolume >= 0 && _shortcutToEdit.AudioVolume <= 100)
nud_audio_volume.Value = _shortcutToEdit.AudioVolume;
else
nud_audio_volume.Value = Convert.ToDecimal(audioDevice.Volume);
}
}
}
// We need to handle the edgecase where the selected audio device
// isn't currently plugged in. We don't want to break the shortcut
// as it could be plugged in when it comes time to actually run
// the shortcut, so we need to just add it to the list to not break
// the UI.
if (!foundAudioDevice)
{
int index = cb_audio_device.Items.Add(_shortcutToEdit.AudioDevice);
cb_audio_device.SelectedIndex = index;
selectedAudioDevice = null;
if (_shortcutToEdit.SetAudioVolume && _shortcutToEdit.AudioVolume >= 0 && _shortcutToEdit.AudioVolume <= 100)
{
rb_set_audio_volume.Checked = true;
nud_audio_volume.Value = _shortcutToEdit.AudioVolume;
}
else
{
rb_keep_audio_volume.Checked = true;
nud_audio_volume.Value = 50;
}
}
}
else
{
audioVolumeSetToDefault = true;
// Then we need to populate the list
foreach (CoreAudioDevice audioDevice in audioDevices) foreach (CoreAudioDevice audioDevice in audioDevices)
{ {
if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active) if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active)
@ -709,9 +771,15 @@ namespace DisplayMagician.UIForms
int index = cb_audio_device.Items.Add(audioDevice.FullName); int index = cb_audio_device.Items.Add(audioDevice.FullName);
// Set the audio device to the default device by default // Set the audio device to the default device by default
if (audioDevice.IsDefaultDevice) if (audioDevice.IsDefaultDevice)
{
selectedAudioDevice = audioDevice;
cb_audio_device.SelectedIndex = index; cb_audio_device.SelectedIndex = index;
nud_audio_volume.Value = Convert.ToDecimal(audioDevice.Volume);
} }
} }
}
rb_keep_audio_volume.Checked = true;
}
// Populate a full list of games // Populate a full list of games
// Start with the Steam Games // Start with the Steam Games
@ -852,61 +920,6 @@ namespace DisplayMagician.UIForms
break; break;
} }
// Set the Audio device to the shortcut audio device only if
// the Change Audio radiobutton is set
rb_change_audio.Checked = _shortcutToEdit.ChangeAudioDevice;
if (_shortcutToEdit.ChangeAudioDevice)
{
bool foundAudioDevice = false;
for (int i = 0; i < cb_audio_device.Items.Count; i++)
{
if (cb_audio_device.Items[i].Equals(_shortcutToEdit.AudioDevice))
{
cb_audio_device.SelectedIndex = i;
foundAudioDevice = true;
break;
}
}
// If we have a saved Audio device which isn't plugged in
// or isn't turned on right now, we don't want to lose the
// information, as the user has specifically set that audio device
// and they may plug it in when it comes time to use the shortcut
// So we add the audiodevice as an extra selection in this case.
if (!foundAudioDevice)
{
int index = cb_audio_device.Items.Add(_shortcutToEdit.AudioDevice);
cb_audio_device.SelectedIndex = index;
}
}
if (_shortcutToEdit.SetAudioVolume)
{
if (_shortcutToEdit.AudioVolume >= 0 && _shortcutToEdit.AudioVolume <= 100)
{
nud_audio_volume.Value = _shortcutToEdit.AudioVolume;
rb_set_audio_volume.Checked = true;
}
else
{
bool foundVolumeDevice = false;
foreach (CoreAudioDevice audioDevice in audioDevices)
{
if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active &&
audioDevice.FullName.Equals(_shortcutToEdit.AudioDevice))
{
nud_audio_volume.Value = Convert.ToDecimal(audioDevice.Volume);
foundVolumeDevice = true;
}
}
if (foundVolumeDevice)
nud_audio_volume.Value = _shortcutToEdit.AudioVolume;
else
nud_audio_volume.Value = 100;
rb_set_audio_volume.Checked = false;
}
}
// Set the launcher items if we have them // Set the launcher items if we have them
txt_game_launcher.Text = _shortcutToEdit.GameLibrary.ToString(); txt_game_launcher.Text = _shortcutToEdit.GameLibrary.ToString();
txt_game_name.Text = _shortcutToEdit.GameName; txt_game_name.Text = _shortcutToEdit.GameName;
@ -1535,43 +1548,141 @@ namespace DisplayMagician.UIForms
{ {
if (_loadedShortcut) if (_loadedShortcut)
_isUnsaved = true; _isUnsaved = true;
// Populate all the Audio devices in the audio devices list.
// Set the Audio device to the shortcut audio device only if
// the Change Audio radiobutton is set
audioDevices = audioController.GetPlaybackDevices().ToList();
// If the shortcut is to change the audio device
if (_shortcutToEdit.ChangeAudioDevice)
{
// Then we need to populate the list
bool foundAudioDevice = false;
foreach (CoreAudioDevice audioDevice in audioDevices)
{
if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active)
{
// Set the audio device to the default device by default
if (audioDevice.FullName.Equals(cb_audio_device.SelectedItem.ToString()))
{
foundAudioDevice = true;
selectedAudioDevice = audioDevice;
nud_audio_volume.Value = Convert.ToDecimal(audioDevice.Volume);
}
}
} }
private void btn_rescan_audio_Click(object sender, EventArgs e) // We need to handle the edgecase where the selected audio device
// isn't currently plugged in. We don't want to break the shortcut
// as it could be plugged in when it comes time to actually run
// the shortcut, so we need to just add it to the list to not break
// the UI.
if (!foundAudioDevice)
{ {
// Populate all the Audio devices in the audio devices list. selectedAudioDevice = null;
cb_audio_device.Items.Clear(); nud_audio_volume.Value = _shortcutToEdit.AudioVolume;
List<CoreAudioDevice> audioDevices = audioController.GetPlaybackDevices().ToList(); }
}
else
{
audioVolumeSetToDefault = true;
// Then we need to populate the list
foreach (CoreAudioDevice audioDevice in audioDevices) foreach (CoreAudioDevice audioDevice in audioDevices)
{ {
if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active) if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active)
{ {
int index = cb_audio_device.Items.Add(audioDevice.FullName); int index = cb_audio_device.Items.Add(audioDevice.FullName);
// Set the audio device to the default device by default
if (audioDevice.IsDefaultDevice) if (audioDevice.IsDefaultDevice)
{
selectedAudioDevice = audioDevice;
cb_audio_device.SelectedIndex = index; cb_audio_device.SelectedIndex = index;
nud_audio_volume.Value = Convert.ToDecimal(audioDevice.Volume);
}
}
}
rb_keep_audio_volume.Checked = true;
} }
} }
private void btn_rescan_audio_Click(object sender, EventArgs e)
{
// Populate all the Audio devices in the audio devices list.
// Set the Audio device to the shortcut audio device only if
// the Change Audio radiobutton is set
rb_change_audio.Checked = _shortcutToEdit.ChangeAudioDevice;
cb_audio_device.Items.Clear();
audioDevices = audioController.GetPlaybackDevices().ToList();
// If the shortcut is to change the audio device
if (_shortcutToEdit.ChangeAudioDevice)
{
// Then we need to populate the list
bool foundAudioDevice = false; bool foundAudioDevice = false;
for (int i = 0; i < cb_audio_device.Items.Count; i++) foreach (CoreAudioDevice audioDevice in audioDevices)
{ {
if (cb_audio_device.Items[i].Equals(_shortcutToEdit.AudioDevice)) if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active)
{
int index = cb_audio_device.Items.Add(audioDevice.FullName);
// Set the audio device to the default device by default
if (audioDevice.FullName.Equals(_shortcutToEdit.AudioDevice))
{ {
cb_audio_device.SelectedIndex = i;
foundAudioDevice = true; foundAudioDevice = true;
break; selectedAudioDevice = audioDevice;
cb_audio_device.SelectedIndex = index;
if (_shortcutToEdit.SetAudioVolume && _shortcutToEdit.AudioVolume >= 0 && _shortcutToEdit.AudioVolume <= 100)
nud_audio_volume.Value = _shortcutToEdit.AudioVolume;
else
nud_audio_volume.Value = Convert.ToDecimal(audioDevice.Volume);
}
}
} }
} // We need to handle the edgecase where the selected audio device
// If we have a saved Audio device which isn't plugged in // isn't currently plugged in. We don't want to break the shortcut
// or isn't turned on right now, we don't want to lose the // as it could be plugged in when it comes time to actually run
// information, as the user has specifically set that audio device // the shortcut, so we need to just add it to the list to not break
// and they may plug it in when it comes time to use the shortcut // the UI.
// So we add the audiodevice as an extra selection in this case.
if (!foundAudioDevice) if (!foundAudioDevice)
{ {
int index = cb_audio_device.Items.Add(_shortcutToEdit.AudioDevice); int index = cb_audio_device.Items.Add(_shortcutToEdit.AudioDevice);
cb_audio_device.SelectedIndex = index; cb_audio_device.SelectedIndex = index;
selectedAudioDevice = null;
if (_shortcutToEdit.SetAudioVolume && _shortcutToEdit.AudioVolume >= 0 && _shortcutToEdit.AudioVolume <= 100)
{
rb_set_audio_volume.Checked = true;
nud_audio_volume.Value = _shortcutToEdit.AudioVolume;
}
else
{
rb_keep_audio_volume.Checked = true;
nud_audio_volume.Value = 50;
}
}
}
else
{
audioVolumeSetToDefault = true;
// Then we need to populate the list
foreach (CoreAudioDevice audioDevice in audioDevices)
{
if (audioDevice.State == AudioSwitcher.AudioApi.DeviceState.Active)
{
int index = cb_audio_device.Items.Add(audioDevice.FullName);
// Set the audio device to the default device by default
if (audioDevice.IsDefaultDevice)
{
selectedAudioDevice = audioDevice;
cb_audio_device.SelectedIndex = index;
nud_audio_volume.Value = Convert.ToDecimal(audioDevice.Volume);
}
}
}
rb_keep_audio_volume.Checked = true;
} }
} }
@ -1580,6 +1691,7 @@ namespace DisplayMagician.UIForms
{ {
if (_loadedShortcut) if (_loadedShortcut)
_isUnsaved = true; _isUnsaved = true;
if (rb_set_audio_volume.Checked)
nud_audio_volume.Enabled = false; nud_audio_volume.Enabled = false;
} }
@ -1588,7 +1700,9 @@ namespace DisplayMagician.UIForms
{ {
if (_loadedShortcut) if (_loadedShortcut)
_isUnsaved = true; _isUnsaved = true;
if (rb_set_audio_volume.Checked)
nud_audio_volume.Enabled = true; nud_audio_volume.Enabled = true;
} }
} }
} }