mirror of
https://github.com/terrymacdonald/DisplayMagician.git
synced 2024-08-30 18:32:20 +00:00
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:
parent
a87d6397fa
commit
09b9e185e3
143
DisplayMagician/UIForms/ShortcutForm.Designer.cs
generated
143
DisplayMagician/UIForms/ShortcutForm.Designer.cs
generated
@ -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();
|
||||||
|
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user