fix startup order (ARDOUR::init() vs. AudioEngine creation); start work on clock...
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 7 Jan 2007 22:10:36 +0000 (22:10 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 7 Jan 2007 22:10:36 +0000 (22:10 +0000)
git-svn-id: svn://localhost/ardour2/trunk@1281 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/SConscript
gtk2_ardour/ardev
gtk2_ardour/ardour_ui.cc
gtk2_ardour/ardour_ui.h
gtk2_ardour/audio_clock.h
gtk2_ardour/editor_rulers.cc
gtk2_ardour/enums.h
gtk2_ardour/main.cc

index 94e558bbe620b09e5ffdec075a3e313ef87734ba..ee2372b7606b5b3d6978c4c558ed139c3d8ef51c 100644 (file)
@@ -110,6 +110,7 @@ color_manager.cc
 crossfade_edit.cc
 crossfade_view.cc
 curvetest.cc
+enums.cc
 editing.cc
 editor.cc
 editor_actions.cc
index ff68e11fbe1713f42e710163e2f644018b3857ca..3b65b2ec7938180c3f7ca179831ce2171cb71e9b 100755 (executable)
@@ -1,3 +1,3 @@
 #!/bin/sh
 . `dirname "$0"`/ardev_common.sh
-exec $EXECUTABLE $*
+exec $EXECUTABLE "$*"
index 6f4d50aa029864d3c361cb469cc7e6d2c5d512eb..e47acd1e2f98e8e0f6c3d5e3c18156ec895533c4 100644 (file)
@@ -35,6 +35,7 @@
 #include <pbd/compose.h>
 #include <pbd/pathscanner.h>
 #include <pbd/failed_constructor.h>
+#include <pbd/enumwriter.h>
 #include <gtkmm2ext/gtk_ui.h>
 #include <gtkmm2ext/utils.h>
 #include <gtkmm2ext/click_box.h>
@@ -2429,3 +2430,36 @@ ARDOUR_UI::first_idle ()
        can_save_keybindings = true;
        return false;
 }
+
+void
+ARDOUR_UI::store_clock_modes ()
+{
+       XMLNode* node = new XMLNode(X_("ClockModes"));
+
+       node->add_property (X_("primary"), enum_2_string (primary_clock.mode()));
+       node->add_property (X_("secondary"), enum_2_string (secondary_clock.mode()));
+
+       session->add_extra_xml (*node);
+       session->set_dirty ();
+}
+
+void
+ARDOUR_UI::restore_clock_modes ()
+{
+       XMLProperty* prop;
+       XMLNode * node = session->extra_xml (X_("ClockModes"));
+       AudioClock::Mode mode;
+
+       if (node) {
+               if ((prop = node->property ("primary")) != 0) {
+                       mode = AudioClock::Mode (string_2_enum (prop->value(), mode));
+                       primary_clock.set_mode (mode);
+               }
+
+               if ((prop = node->property ("secondary")) != 0) {
+                       mode = AudioClock::Mode (string_2_enum (prop->value(), mode));
+                       secondary_clock.set_mode (mode);
+               }
+       }
+}
+               
index e9fda8617cb9061a158cf4ad9734825f1f06661e..2b83262451953af36e3fb56d3e13c3f55bbd0595 100644 (file)
@@ -184,6 +184,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI
        AudioClock preroll_clock;
        AudioClock postroll_clock;
 
+       void store_clock_modes ();
+       void restore_clock_modes ();
+
        void add_route ();
        
        void session_add_audio_track (int input_channels, int32_t output_channels, ARDOUR::TrackMode mode, uint32_t how_many) {
index 6ac97a5624cf54d7dfe0b8fc1d037648b01457d8..cef5a1b52470a50b525ff7c5fa61d7dbdfddfce5 100644 (file)
@@ -61,7 +61,7 @@ class AudioClock : public Gtk::HBox
   private:
        ARDOUR::Session  *session;
        Mode             _mode;
-       uint32_t      key_entry_state;
+       uint32_t          key_entry_state;
        bool              is_duration;
        bool              editable;
 
index ee0ba1d0249fe319733a7ea08337a9317e3e0e55..8e1a65b85692314f533dfe7bef8f9070f2120ccd 100644 (file)
@@ -467,7 +467,7 @@ Editor::store_ruler_visibility ()
        session->add_extra_xml (*node);
        session->set_dirty ();
 }
+
 void 
 Editor::restore_ruler_visibility ()
 {
index 5b097d059a056bf8d6ce7bae3cfe2480f51383f7..987c49fe06a1c42c6173f3a199d4e96364a0f2a9 100644 (file)
@@ -32,4 +32,6 @@ struct SelectionRect {
     uint32_t id;
 };
 
+extern void setup_gtk_ardour_enums ();
+
 #endif /* __ardour_gtk_enums_h__ */
index 1004de19c2a94df362e2cce80b8b483d4dab1670..78be61231c06d8c310fa9ea84b8c91ffe1006dee 100644 (file)
@@ -48,6 +48,7 @@
 #include "version.h"
 #include "ardour_ui.h"
 #include "opts.h"
+#include "enums.h"
 
 #include "i18n.h"
 
@@ -429,20 +430,21 @@ int main (int argc, char *argv[])
                }
        }
 
-
-       try { 
-               engine = new ARDOUR::AudioEngine (jack_client_name);
-       } catch (AudioEngine::NoBackendAvailable& err) {
-               gui_jack_error ();
-               error << string_compose (_("Could not connect to JACK server as  \"%1\""), jack_client_name) <<  endmsg;
-               return -1;
-       }
-
        try {
                ARDOUR::init (use_vst, try_hw_optimization);
+               setup_gtk_ardour_enums ();
                Config->set_current_owner (ConfigVariableBase::Interface);
+
+               try { 
+                       engine = new ARDOUR::AudioEngine (jack_client_name);
+               } catch (AudioEngine::NoBackendAvailable& err) {
+                       gui_jack_error ();
+                       error << string_compose (_("Could not connect to JACK server as  \"%1\""), jack_client_name) <<  endmsg;
+                       return -1;
+               }
+               
                ui->set_engine (*engine);
+
        } catch (failed_constructor& err) {
                error << _("could not initialize Ardour.") << endmsg;
                return -1;