#include "utils.h"
#include "window_proxy.h"
#include "global_port_matrix.h"
+#include "location_ui.h"
#include <gtkmm2ext/application.h>
if (_session) {
_session->add_instant_xml (enode);
_session->add_instant_xml (mnode);
+ _session->add_instant_xml (location_ui->get()->ui().get_state ());
} else {
Config->add_instant_xml (enode);
Config->add_instant_xml (mnode);
+ Config->add_instant_xml (location_ui->get()->ui().get_state ());
}
Keyboard::save_keybindings ();
start_clock.set_session (_session);
end_clock.set_session (_session);
length_clock.set_session (_session);
-
}
void
i_am_the_modifier = 0;
_clock_group = new ClockGroup;
- _clock_group->set_clock_mode (AudioClock::Frames);
VBox* vbox = manage (new VBox);
_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);
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);
+}
+
/*------------------------*/
void refresh_location_list ();
+ XMLNode & get_state () const;
+
private:
ARDOUR::LocationStack* locations;
ARDOUR::Location *newest_location;
void map_locations (ARDOUR::Locations::LocationList&);
ClockGroup* _clock_group;
+ AudioClock::Mode clock_mode_from_session_instant_xml () const;
};
class LocationUIWindow : public ArdourWindow