public static UserSettings set() { UserSettings tempDefaults = new UserSettings(); tempDefaults.theme = "BaseDark"; tempDefaults.accent = "Red"; #region Library window settings tempDefaults.libraryHeight = 380; tempDefaults.libraryWidth = 1000; tempDefaults.libraryTop = 20; tempDefaults.libraryLeft = 380; #endregion #region Player window settings // Player window position tempDefaults.playerLeft = 20; tempDefaults.playerTop = 20; // Volume tempDefaults.volumeValue = 0.5; // Shuffle tempDefaults.shuffleEnabled = false; #endregion return tempDefaults; }
// Serializes settings to file. public static void SerializeSettings(UserSettings settingsToSerialize) { serializer.NullValueHandling = NullValueHandling.Ignore; using (StreamWriter sw = new StreamWriter(ConfigClass.settingsFile)) using (JsonWriter writer = new JsonTextWriter(sw)) { serializer.Serialize(writer, settingsToSerialize); } }
// Deserializes settings from file into a UserSettings object. public static UserSettings DeserializeSettings() { UserSettings tempSettings = new UserSettings(); using (StreamReader sr = System.IO.File.OpenText(ConfigClass.settingsFile)) using (JsonTextReader jsonTR = new JsonTextReader(sr)) { tempSettings = serializer.Deserialize<UserSettings>(jsonTR); } return tempSettings; }
// Checks for existing settings file, if none exists generate a new one using the defaults. private void DoGetSettings() { bool isEmpty = !File.Exists(ConfigClass.settingsFile); // Check if file exists // If file doesn't exist, generate one from the DefaultSettings class. if (isEmpty) { UserSettings tempSettings = new UserSettings(); tempSettings = DefaultSettings.set(); MainWindow.currentSettings = tempSettings; JSON.SerializeSettings(tempSettings); } // If file does exist, deserialise the file and load the object up into the "currentSettings" object - If the object is unusable, prompts the user and creates settings from default. else { try { UserSettings tempSettings = JSON.DeserializeSettings(); MainWindow.currentSettings = tempSettings; } catch { MusickError errorWin = new MusickError(); errorWin.Owner = this; errorWin.lblError.Content = "Settings file corrupted - Using default settings"; if (errorWin.ShowDialog() == true) { UserSettings tempSettings = new UserSettings(); tempSettings = DefaultSettings.set(); MainWindow.currentSettings = tempSettings; JSON.SerializeSettings(tempSettings); } } } }