//create a serializable object that can be saved to a json file public ProgramGroupData generateProgramGroupData() { ProgramGroupData outPGdata = new ProgramGroupData(); //add audio sessions for programs that were running when THIS program started running foreach(AudioSession aSession in loadedAudioSessions.Distinct()){ outPGdata.audioSessions.Add(aSession.Process.ProcessName); outPGdata.numOfSessions++; } //add audio sessions for programs that were not running when THIS program started running foreach (string aSession in nonLoadedAudioSessions) { outPGdata.audioSessions.Add(aSession); outPGdata.numOfSessions++; } outPGdata.volAsPercent = volAsPercent; outPGdata.groupName = groupName; outPGdata.audioSessions = outPGdata.audioSessions.Distinct().ToList(); outPGdata.numOfSessions = outPGdata.audioSessions.Count(); //hotkey saveData outPGdata.hasHotkey = hasHotkey; outPGdata.mods = this.mods; outPGdata.volumeUp = this.volumeUp; outPGdata.volumeDown = this.volumeDown; return outPGdata; }