private void save_shared_settings(ConfigNode node)
{
node.AddValue("show_tooltips", show_tooltips);
node.AddValue("main_window_pos", main_window_pos.x + "," + main_window_pos.y);
node.AddValue("hide_all_windows", hide_all_windows);
node.AddValue("skin_index", skin_index);
node.AddValue("active_menu", active_menu);
node.AddValue("remotetech_toggle", remotetech_toggle);
node.AddValue("chatter_freq", chatter_freq);
node.AddValue("chatter_vol_slider", chatter_vol_slider);
node.AddValue("chatter_sel_filter", chatter_sel_filter);
node.AddValue("show_chatter_filter_settings", show_chatter_filter_settings);
node.AddValue("show_sample_selector", show_probe_sample_selector);
node.AddValue("chatter_reverb_preset_index", chatter_reverb_preset_index);
node.AddValue("chatter_filter_settings_window_pos", chatter_filter_settings_window_pos.x + "," + chatter_filter_settings_window_pos.y);
node.AddValue("probe_sample_selector_window_pos", probe_sample_selector_window_pos.x + "," + probe_sample_selector_window_pos.y);
node.AddValue("quindar_toggle", quindar_toggle);
node.AddValue("quindar_vol_slider", quindar_vol_slider);
node.AddValue("sstv_freq", sstv_freq);
node.AddValue("sstv_vol_slider", sstv_vol_slider);
node.AddValue("sel_beep_src", sel_beep_src);
node.AddValue("sel_beep_page", sel_beep_page);
//AAE
if (aae_backgrounds_exist)
{
foreach (BackgroundSource src in backgroundsource_list)
{
ConfigNode _background = new ConfigNode();
_background.name = "AAE_BACKGROUND";
_background.AddValue("volume", src.audiosource.volume);
_background.AddValue("current_clip", src.current_clip);
node.AddNode(_background);
}
}
if (aae_soundscapes_exist)
{
node.AddValue("aae_soundscape_vol", aae_soundscape.volume);
node.AddValue("aae_soundscape_freq", aae_soundscape_freq);
}
if (aae_breathing_exist) node.AddValue("aae_breathing_vol", aae_breathing.volume);
if (aae_wind_exist) node.AddValue("aae_wind_vol", aae_wind_vol_slider);
if (aae_airlock_exist) node.AddValue("aae_airlock_vol", aae_airlock.volume);
//Chatter sets
foreach (ChatterAudioList chatter_set in chatter_array)
{
ConfigNode _set = new ConfigNode();
_set.name = "AUDIOSET";
_set.AddValue("directory", chatter_set.directory);
_set.AddValue("is_active", chatter_set.is_active);
node.AddNode(_set);
}
//filters
ConfigNode _filter;
_filter = new ConfigNode();
_filter.name = "CHORUS";
_filter.AddValue("enabled", chatter_chorus_filter.enabled);
_filter.AddValue("dry_mix", chatter_chorus_filter.dryMix);
_filter.AddValue("wet_mix_1", chatter_chorus_filter.wetMix1);
_filter.AddValue("wet_mix_2", chatter_chorus_filter.wetMix2);
_filter.AddValue("wet_mix_3", chatter_chorus_filter.wetMix3);
_filter.AddValue("delay", chatter_chorus_filter.delay);
_filter.AddValue("rate", chatter_chorus_filter.rate);
_filter.AddValue("depth", chatter_chorus_filter.depth);
//_filter.AddValue("feedback", chatter_chorus_filter.feedback);
node.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "DISTORTION";
_filter.AddValue("enabled", chatter_distortion_filter.enabled);
_filter.AddValue("distortion_level", chatter_distortion_filter.distortionLevel);
node.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "ECHO";
_filter.AddValue("enabled", chatter_echo_filter.enabled);
_filter.AddValue("delay", chatter_echo_filter.delay);
_filter.AddValue("decay_ratio", chatter_echo_filter.decayRatio);
_filter.AddValue("dry_mix", chatter_echo_filter.dryMix);
_filter.AddValue("wet_mix", chatter_echo_filter.wetMix);
node.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "HIGHPASS";
_filter.AddValue("enabled", chatter_highpass_filter.enabled);
_filter.AddValue("cutoff_freq", chatter_highpass_filter.cutoffFrequency);
_filter.AddValue("resonance_q", chatter_highpass_filter.highpassResonaceQ);
node.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "LOWPASS";
_filter.AddValue("enabled", chatter_lowpass_filter.enabled);
_filter.AddValue("cutoff_freq", chatter_lowpass_filter.cutoffFrequency);
_filter.AddValue("resonance_q", chatter_lowpass_filter.lowpassResonaceQ);
node.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "REVERB";
_filter.AddValue("enabled", chatter_reverb_filter.enabled);
_filter.AddValue("reverb_preset", chatter_reverb_filter.reverbPreset);
_filter.AddValue("dry_level", chatter_reverb_filter.dryLevel);
_filter.AddValue("room", chatter_reverb_filter.room);
_filter.AddValue("room_hf", chatter_reverb_filter.roomHF);
_filter.AddValue("room_lf", chatter_reverb_filter.roomLF);
_filter.AddValue("room_rolloff", chatter_reverb_filter.roomRolloff);
_filter.AddValue("decay_time", chatter_reverb_filter.decayTime);
_filter.AddValue("decay_hf_ratio", chatter_reverb_filter.decayHFRatio);
_filter.AddValue("reflections_level", chatter_reverb_filter.reflectionsLevel);
_filter.AddValue("reflections_delay", chatter_reverb_filter.reflectionsDelay);
_filter.AddValue("reverb_level", chatter_reverb_filter.reverbLevel);
_filter.AddValue("reverb_delay", chatter_reverb_filter.reverbDelay);
_filter.AddValue("diffusion", chatter_reverb_filter.diffusion);
_filter.AddValue("density", chatter_reverb_filter.density);
_filter.AddValue("hf_reference", chatter_reverb_filter.hfReference);
_filter.AddValue("lf_reference", chatter_reverb_filter.lFReference);
node.AddNode(_filter);
foreach (BeepSource source in beepsource_list)
{
ConfigNode beep_settings = new ConfigNode();
beep_settings.name = "BEEPSOURCE";
beep_settings.AddValue("precise", source.precise);
beep_settings.AddValue("precise_freq", source.precise_freq);
beep_settings.AddValue("loose_freq", source.loose_freq);
beep_settings.AddValue("volume", source.audiosource.volume);
beep_settings.AddValue("pitch", source.audiosource.pitch);
beep_settings.AddValue("current_clip", source.current_clip);
beep_settings.AddValue("sel_filter", source.sel_filter);
beep_settings.AddValue("show_settings_window", source.show_settings_window);
beep_settings.AddValue("reverb_preset_index", source.reverb_preset_index);
beep_settings.AddValue("settings_window_pos_x", source.settings_window_pos.x);
beep_settings.AddValue("settings_window_pos_y", source.settings_window_pos.y);
//filters
//ConfigNode _filter;
_filter = new ConfigNode();
_filter.name = "CHORUS";
_filter.AddValue("enabled", source.chorus_filter.enabled);
_filter.AddValue("dry_mix", source.chorus_filter.dryMix);
_filter.AddValue("wet_mix_1", source.chorus_filter.wetMix1);
_filter.AddValue("wet_mix_2", source.chorus_filter.wetMix2);
_filter.AddValue("wet_mix_3", source.chorus_filter.wetMix3);
_filter.AddValue("delay", source.chorus_filter.delay);
_filter.AddValue("rate", source.chorus_filter.rate);
_filter.AddValue("depth", source.chorus_filter.depth);
//_filter.AddValue("feedback", source.chorus_filter.feedback);
beep_settings.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "DISTORTION";
_filter.AddValue("enabled", source.distortion_filter.enabled);
_filter.AddValue("distortion_level", source.distortion_filter.distortionLevel);
beep_settings.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "ECHO";
_filter.AddValue("enabled", source.echo_filter.enabled);
_filter.AddValue("delay", source.echo_filter.delay);
_filter.AddValue("decay_ratio", source.echo_filter.decayRatio);
_filter.AddValue("dry_mix", source.echo_filter.dryMix);
_filter.AddValue("wet_mix", source.echo_filter.wetMix);
beep_settings.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "HIGHPASS";
_filter.AddValue("enabled", source.highpass_filter.enabled);
_filter.AddValue("cutoff_freq", source.highpass_filter.cutoffFrequency);
_filter.AddValue("resonance_q", source.highpass_filter.highpassResonaceQ);
beep_settings.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "LOWPASS";
_filter.AddValue("enabled", source.lowpass_filter.enabled);
_filter.AddValue("cutoff_freq", source.lowpass_filter.cutoffFrequency);
_filter.AddValue("resonance_q", source.lowpass_filter.lowpassResonaceQ);
beep_settings.AddNode(_filter);
_filter = new ConfigNode();
_filter.name = "REVERB";
_filter.AddValue("enabled", source.reverb_filter.enabled);
_filter.AddValue("reverb_preset", source.reverb_filter.reverbPreset);
_filter.AddValue("dry_level", source.reverb_filter.dryLevel);
_filter.AddValue("room", source.reverb_filter.room);
_filter.AddValue("room_hf", source.reverb_filter.roomHF);
_filter.AddValue("room_lf", source.reverb_filter.roomLF);
_filter.AddValue("room_rolloff", source.reverb_filter.roomRolloff);
_filter.AddValue("decay_time", source.reverb_filter.decayTime);
_filter.AddValue("decay_hf_ratio", source.reverb_filter.decayHFRatio);
_filter.AddValue("reflections_level", source.reverb_filter.reflectionsLevel);
_filter.AddValue("reflections_delay", source.reverb_filter.reflectionsDelay);
_filter.AddValue("reverb_level", source.reverb_filter.reverbLevel);
_filter.AddValue("reverb_delay", source.reverb_filter.reverbDelay);
_filter.AddValue("diffusion", source.reverb_filter.diffusion);
_filter.AddValue("density", source.reverb_filter.density);
_filter.AddValue("hf_reference", source.reverb_filter.hfReference);
_filter.AddValue("lf_reference", source.reverb_filter.lFReference);
beep_settings.AddNode(_filter);
node.AddNode(beep_settings);
}
}