summaryrefslogtreecommitdiff
path: root/gtk2_ardour/location_ui.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-11-23 21:22:02 +0000
committerCarl Hetherington <carl@carlh.net>2011-11-23 21:22:02 +0000
commitd9c9d0e8a8220b0749ac6f1a134c4758052ce9f6 (patch)
tree928f855eaa0cfe96cc86ef7e026a980333d9160b /gtk2_ardour/location_ui.cc
parent8b07828f0b2c84fd081bd7d4e89a83efef39f2d9 (diff)
Save location UI clock mode in Session instant.xml (#4507).
git-svn-id: svn://localhost/ardour2/branches/3.0@10813 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/location_ui.cc')
-rw-r--r--gtk2_ardour/location_ui.cc27
1 files changed, 25 insertions, 2 deletions
diff --git a/gtk2_ardour/location_ui.cc b/gtk2_ardour/location_ui.cc
index 5797cd66ee..fe91100d7a 100644
--- a/gtk2_ardour/location_ui.cc
+++ b/gtk2_ardour/location_ui.cc
@@ -201,7 +201,6 @@ LocationEditRow::set_session (Session *sess)
start_clock.set_session (_session);
end_clock.set_session (_session);
length_clock.set_session (_session);
-
}
void
@@ -717,7 +716,6 @@ LocationUI::LocationUI ()
i_am_the_modifier = 0;
_clock_group = new ClockGroup;
- _clock_group->set_clock_mode (AudioClock::Frames);
VBox* vbox = manage (new VBox);
@@ -1066,6 +1064,7 @@ LocationUI::set_session(ARDOUR::Session* s)
_session->locations()->StateChanged.connect (_session_connections, invalidator (*this), boost::bind (&LocationUI::refresh_location_list, this), gui_context());
_session->locations()->added.connect (_session_connections, invalidator (*this), ui_bind (&LocationUI::location_added, this, _1), gui_context());
_session->locations()->removed.connect (_session_connections, invalidator (*this), ui_bind (&LocationUI::location_removed, this, _1), gui_context());
+ _clock_group->set_clock_mode (clock_mode_from_session_instant_xml ());
}
loop_edit_row.set_session (s);
@@ -1106,6 +1105,30 @@ LocationUI::session_going_away()
SessionHandlePtr::session_going_away ();
}
+XMLNode &
+LocationUI::get_state () const
+{
+ XMLNode* node = new XMLNode (X_("LocationUI"));
+ node->add_property (X_("clock-mode"), enum_2_string (_clock_group->clock_mode ()));
+ return *node;
+}
+
+AudioClock::Mode
+LocationUI::clock_mode_from_session_instant_xml () const
+{
+ XMLNode* node = _session->instant_xml (X_("LocationUI"));
+ if (!node) {
+ return AudioClock::Frames;
+ }
+
+ XMLProperty* p = node->property (X_("clock-mode"));
+ if (!p) {
+ return AudioClock::Frames;
+ }
+
+ return (AudioClock::Mode) string_2_enum (p->value (), AudioClock::Mode);
+}
+
/*------------------------*/