From 29e8fe16987548d44b6376a38c81da7737efde28 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 16 May 2009 01:22:43 +0000 Subject: Add session preferences dialog. git-svn-id: svn://localhost/ardour2/branches/3.0@5082 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/session_option_editor.cc | 181 +++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 gtk2_ardour/session_option_editor.cc (limited to 'gtk2_ardour/session_option_editor.cc') diff --git a/gtk2_ardour/session_option_editor.cc b/gtk2_ardour/session_option_editor.cc new file mode 100644 index 0000000000..6c05794ed1 --- /dev/null +++ b/gtk2_ardour/session_option_editor.cc @@ -0,0 +1,181 @@ +#include "ardour/session.h" +#include "session_option_editor.h" +#include "i18n.h" + +using namespace sigc; +using namespace ARDOUR; + +SessionOptionEditor::SessionOptionEditor (Session* s) + : OptionEditor (&(s->config), _("Session Preferences")), + _session_config (&(s->config)) +{ + /* FADES */ + + ComboOption* cfm = new ComboOption ( + "xfade-model", + _("Crossfades are created"), + mem_fun (*_session_config, &SessionConfiguration::get_xfade_model), + mem_fun (*_session_config, &SessionConfiguration::set_xfade_model) + ); + + cfm->add (FullCrossfade, _("to span entire overlap")); + cfm->add (ShortCrossfade, _("short")); + + add_option (_("Fades"), cfm); + + add_option (_("Fades"), new SpinOption ( + _("short-xfade-seconds"), + _("Short crossfade length"), + mem_fun (*_session_config, &SessionConfiguration::get_short_xfade_seconds), + mem_fun (*_session_config, &SessionConfiguration::set_short_xfade_seconds), + 0, 1000, 1, 10, + _("ms"), 0.001 + )); + + add_option (_("Fades"), new SpinOption ( + _("destructive-xfade-seconds"), + _("Destructive crossfade length"), + mem_fun (*_session_config, &SessionConfiguration::get_destructive_xfade_msecs), + mem_fun (*_session_config, &SessionConfiguration::set_destructive_xfade_msecs), + 0, 1000, 1, 10, + _("ms") + )); + + add_option (_("Fades"), new BoolOption ( + "auto-xfade", + _("Create crossfades automatically"), + mem_fun (*_session_config, &SessionConfiguration::get_auto_xfade), + mem_fun (*_session_config, &SessionConfiguration::set_auto_xfade) + )); + + add_option (_("Fades"), new BoolOption ( + "xfades-active", + _("Crossfades active"), + mem_fun (*_session_config, &SessionConfiguration::get_xfades_active), + mem_fun (*_session_config, &SessionConfiguration::set_xfades_active) + )); + + add_option (_("Fades"), new BoolOption ( + "xfades-visible", + _("Crossfades visible"), + mem_fun (*_session_config, &SessionConfiguration::get_xfades_visible), + mem_fun (*_session_config, &SessionConfiguration::set_xfades_visible) + )); + + add_option (_("Fades"), new BoolOption ( + "use-region-fades", + _("Region fades active"), + mem_fun (*_session_config, &SessionConfiguration::get_use_region_fades), + mem_fun (*_session_config, &SessionConfiguration::set_use_region_fades) + )); + + add_option (_("Fades"), new BoolOption ( + "show-region-fades", + _("Region fades visible"), + mem_fun (*_session_config, &SessionConfiguration::get_show_region_fades), + mem_fun (*_session_config, &SessionConfiguration::set_show_region_fades) + )); + + /* SYNC */ + + ComboOption* spf = new ComboOption ( + "subframes-per-frame", + _("Subframes per frame"), + mem_fun (*_session_config, &SessionConfiguration::get_subframes_per_frame), + mem_fun (*_session_config, &SessionConfiguration::set_subframes_per_frame) + ); + + spf->add (80, _("80")); + spf->add (100, _("100")); + + add_option (_("Sync"), spf); + + ComboOption* smf = new ComboOption ( + "smpte-format", + _("Timecode frames-per-second"), + mem_fun (*_session_config, &SessionConfiguration::get_smpte_format), + mem_fun (*_session_config, &SessionConfiguration::set_smpte_format) + ); + + smf->add (smpte_23976, _("23.976")); + smf->add (smpte_24, _("24")); + smf->add (smpte_24976, _("24.976")); + smf->add (smpte_25, _("25")); + smf->add (smpte_2997, _("29.97")); + smf->add (smpte_2997drop, _("29.97 drop")); + smf->add (smpte_30, _("30")); + smf->add (smpte_30drop, _("30 drop")); + smf->add (smpte_5994, _("59.94")); + smf->add (smpte_60, _("60")); + + add_option (_("Sync"), smf); + + add_option (_("Sync"), new BoolOption ( + "timecode-source-is-synced", + _("Timecode source is synced"), + mem_fun (*_session_config, &SessionConfiguration::get_timecode_source_is_synced), + mem_fun (*_session_config, &SessionConfiguration::set_timecode_source_is_synced) + )); + + /* MISC */ + + add_option (_("Misc"), new OptionEditorHeading (_("Audio file format"))); + + ComboOption* sf = new ComboOption ( + "native-file-data-format", + _("Sample format"), + mem_fun (*_session_config, &SessionConfiguration::get_native_file_data_format), + mem_fun (*_session_config, &SessionConfiguration::set_native_file_data_format) + ); + + sf->add (FormatFloat, _("32-bit floating point")); + sf->add (FormatInt24, _("24-bit integer")); + sf->add (FormatInt16, _("16-bit integer")); + + add_option (_("Misc"), sf); + + ComboOption* hf = new ComboOption ( + "native-file-header-format", + _("File type"), + mem_fun (*_session_config, &SessionConfiguration::get_native_file_header_format), + mem_fun (*_session_config, &SessionConfiguration::set_native_file_header_format) + ); + + hf->add (BWF, _("Broadcast WAVE")); + hf->add (WAVE, _("WAVE")); + hf->add (WAVE64, _("WAVE-64")); + hf->add (CAF, _("CAF")); + + add_option (_("Misc"), hf); + + add_option (_("Misc"), new OptionEditorHeading (_("Layering"))); + + ComboOption* lm = new ComboOption ( + "layer-model", + _("Layering model"), + mem_fun (*_session_config, &SessionConfiguration::get_layer_model), + mem_fun (*_session_config, &SessionConfiguration::set_layer_model) + ); + + lm->add (LaterHigher, _("later is higher")); + lm->add (MoveAddHigher, _("most recently moved or added is higher")); + lm->add (AddHigher, _("most recently added is higher")); + + add_option (_("Misc"), lm); + + add_option (_("Misc"), new OptionEditorHeading (_("Broadcast WAVE metadata"))); + + add_option (_("Misc"), new EntryOption ( + "bwf-country-code", + _("Country code"), + mem_fun (*_session_config, &SessionConfiguration::get_bwf_country_code), + mem_fun (*_session_config, &SessionConfiguration::set_bwf_country_code) + )); + + add_option (_("Misc"), new EntryOption ( + "bwf-organization-code", + _("Organization code"), + mem_fun (*_session_config, &SessionConfiguration::get_bwf_organization_code), + mem_fun (*_session_config, &SessionConfiguration::set_bwf_organization_code) + )); +} -- cgit v1.2.3