internal static void LoadSoundboardSettingsXML() { string filePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\settings.xml"; if (File.Exists(filePath)) { SoundboardSettings settings; try { settings = (SoundboardSettings)ReadXML(typeof(SoundboardSettings), filePath); } catch { soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; return; } if (settings == null) { soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; return; } if (settings.StopSoundKeys == null) { settings.StopSoundKeys = new Keys[] { } } ; if (settings.LoadXMLFiles == null) { settings.LoadXMLFiles = new LoadXMLFile[] { } } ; if (settings.LastPlaybackDevice == null) { settings.LastPlaybackDevice = ""; } if (settings.LastLoopbackDevice == null) { settings.LastLoopbackDevice = ""; } soundboardSettings = settings; } else { WriteXML(DEFAULT_SOUNDBOARD_SETTINGS, filePath); soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; } } } }
internal static object ReadJSON(Type type, string jsonloc) { //IDictionary<int, SoundboardSettings> dict = new Dictionary<int, SoundboardSettings>(); SoundboardSettings settings = new SoundboardSettings(); using (StreamReader r = new StreamReader(jsonloc)) { JsonSerializer serializer = new JsonSerializer(); settings = (SoundboardSettings)serializer.Deserialize(r, typeof(SoundboardSettings)); r.Close(); } return(settings); /* * internal static IDictionary<int,SoundFile> readJSON(string jsonLoc) * { * * IDictionary<int, SoundFile> dict = new Dictionary<int, SoundFile>(); * using (StreamReader r = new StreamReader(jsonLoc)) * { * //string json = r.ReadToEnd(); * JsonSerializer serializer = new JsonSerializer(); * dict = (IDictionary<int, SoundFile>)serializer.Deserialize(r, typeof(IDictionary<int, SoundFile>)); * r.Close(); * //return json; * } * * return dict; * } * * * /* * var serializer = new XmlSerializer(type); * * using (var reader = XmlReader.Create(xmlLoc)) * { * if (serializer.CanDeserialize(reader)) * { * return serializer.Deserialize(reader); * } * else return null; * } */ }
internal static void LoadSoundboardSettingsXML() { string filePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\settings.xml"; if (File.Exists(filePath)) { try { SoundboardSettings settings = (SoundboardSettings)ReadXML(typeof(SoundboardSettings), filePath); bool settingsInvalid = false; //validation start if (settings.StopSoundKeys == null) { settings.StopSoundKeys = new Keyboard.Keys[] { }; settingsInvalid = true; } if (settings.LoadXMLFiles == null) { settings.LoadXMLFiles = new LoadXMLFile[] { }; settingsInvalid = true; } if (settings.AutoPushToTalkWindow == null) { settings.AutoPushToTalkWindow = ""; settingsInvalid = true; } if (settings.LastPlaybackDevice == null) { settings.LastPlaybackDevice = ""; settingsInvalid = true; } if (settings.LastPlaybackDevice2 == null) { settings.LastPlaybackDevice2 = ""; settingsInvalid = true; } if (settings.LastLoopbackDevice == null) { settings.LastLoopbackDevice = ""; settingsInvalid = true; } if (settings.LastXMLFile == null) { settings.LastXMLFile = ""; settingsInvalid = true; } if (settings.SoundVolume < 0) { settings.SoundVolume = 0; settingsInvalid = true; } else if (settings.SoundVolume > 1) { settings.SoundVolume = 1; settingsInvalid = true; } //validation end soundboardSettings = settings; if (settingsInvalid) { //recreate settings.xml with the corrected values SaveSoundboardSettingsXML(); } } catch { MessageBox.Show("Settings file invalid, using default settings"); WriteXML(DEFAULT_SOUNDBOARD_SETTINGS, filePath); soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; } } else { WriteXML(DEFAULT_SOUNDBOARD_SETTINGS, filePath); soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; } }
internal static void LoadSoundboardSettingsXML() { string filePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\AHS-settings.xml"; string oldFilePath = Path.GetDirectoryName(Application.ExecutablePath) + "\\settings.xml"; if (!File.Exists(filePath)) { filePath = oldFilePath; } // try the old file path if the new one doesn't exist if (File.Exists(filePath)) { SoundboardSettings settings; try { settings = (SoundboardSettings)ReadXML(typeof(SoundboardSettings), filePath); } catch { soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; return; } if (settings == null) { soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; return; } if (settings.StopSoundKeys == null) { settings.StopSoundKeys = new Keys[] { Keys.Pause } } ; if (settings.PlaySelectionKeys == null) { settings.PlaySelectionKeys = new Keys[] { Keys.Oemtilde, Keys.LControlKey } } ; if (settings.LoadXMLFiles == null) { settings.LoadXMLFiles = new LoadXMLFile[] { } } ; if (settings.LastPlaybackDevice == null) { settings.LastPlaybackDevice = ""; } if (settings.LastPlaybackDevice2 == null) { settings.LastPlaybackDevice2 = ""; } if (settings.LastLoopbackDevice == null) { settings.LastLoopbackDevice = ""; } if (settings.RememberGainControl) { MainForm.Instance.SetGain(settings.GainValue); if (settings.GoEvenFurtherBeyond) { MainForm.Instance.GoEvenFurtherBeyond(true); } } soundboardSettings = settings; } else { WriteXML(DEFAULT_SOUNDBOARD_SETTINGS, filePath); soundboardSettings = DEFAULT_SOUNDBOARD_SETTINGS; for (int i = 0; i < WaveOut.DeviceCount; i++) { if (WaveOut.GetCapabilities(i).ProductName.Contains("VB-Cable Input") || WaveOut.GetCapabilities(i).ProductName.Contains("CABLE Input") || WaveOut.GetCapabilities(i).ProductName.Contains("VoiceMeeter Input")) { soundboardSettings.LastPlaybackDevice = WaveOut.GetCapabilities(i).ProductName; WriteXML(soundboardSettings, filePath); } } } } } }