Fixed some valgrind errors from using uninitialized variables in
[ardour.git] / gtk2_ardour / ardour_ui_options.cc
index 91e2d2e2e8763b47e9696b1ede261f37ba61549e..826823885c1d727ca66b1f869af905a834701580 100644 (file)
@@ -18,6 +18,8 @@
     $Id$
 */
 
+#include <pbd/convert.h>
+
 #include <gtkmm2ext/utils.h>
 
 #include <ardour/configuration.h>
@@ -34,6 +36,31 @@ using namespace Gtk;
 using namespace Gtkmm2ext;
 using namespace ARDOUR;
 
+void
+ARDOUR_UI::setup_config_options ()
+{
+       struct { 
+           char* name;
+           bool (Configuration::*method)(void) const;
+       } options[] = {
+               { "ToggleTimeMaster", &Configuration::get_jack_time_master },
+               { "StopPluginsWithTransport", &Configuration::get_plugins_stop_with_transport },
+               { "LatchedRecordEnable", &Configuration::get_latched_record_enable },
+               { "VerifyRemoveLastCapture", &Configuration::get_verify_remove_last_capture },
+               { "StopRecordingOnXrun", &Configuration::get_stop_recording_on_xrun },
+               { "StopTransportAtEndOfSession", &Configuration::get_stop_at_session_end },
+               { 0, 0 }
+       };
+       
+       for (uint32_t n = 0; options[n].name; ++n) {
+               Glib::RefPtr<Action> act = ActionManager::get_action ("options", options[n].name);
+               if (act) {
+                       Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
+                       tact->set_active ((Config->*(options[n].method))());
+               }
+       }
+}
+
 void
 ARDOUR_UI::toggle_time_master ()
 {
@@ -355,7 +382,7 @@ ARDOUR_UI::mtc_port_changed ()
                        0
                };
                
-               positional_sync_strings = internationalize (psync_strings);
+               positional_sync_strings = PBD::internationalize (psync_strings);
                
        } else {
                const gchar *psync_strings[] = {
@@ -363,14 +390,14 @@ ARDOUR_UI::mtc_port_changed ()
                        N_("JACK"),
                        0
                };
-               positional_sync_strings = internationalize (psync_strings);
+               positional_sync_strings = PBD::internationalize (psync_strings);
        }
        
        set_popdown_strings (sync_option_combo, positional_sync_strings);
 }
 
 void
-ARDOUR_UI::setup_options ()
+ARDOUR_UI::setup_session_options ()
 {
        mtc_port_changed ();
 
@@ -392,7 +419,7 @@ ARDOUR_UI::setup_options ()
        session_control_changed (Session::AutoReturn);
        session_control_changed (Session::AutoInput);
        session_control_changed (Session::Clicking);
-
+       
        session->ControlChanged.connect (mem_fun (*this, &ARDOUR_UI::queue_session_control_changed));
 }