fix startup order (ARDOUR::init() vs. AudioEngine creation); start work on clock state saving
git-svn-id: svn://localhost/ardour2/trunk@1281 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
27e84e85f2
commit
b46af2167f
@ -110,6 +110,7 @@ color_manager.cc
|
||||
crossfade_edit.cc
|
||||
crossfade_view.cc
|
||||
curvetest.cc
|
||||
enums.cc
|
||||
editing.cc
|
||||
editor.cc
|
||||
editor_actions.cc
|
||||
|
@ -1,3 +1,3 @@
|
||||
#!/bin/sh
|
||||
. `dirname "$0"`/ardev_common.sh
|
||||
exec $EXECUTABLE $*
|
||||
exec $EXECUTABLE "$*"
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -32,4 +32,6 @@ struct SelectionRect {
|
||||
uint32_t id;
|
||||
};
|
||||
|
||||
extern void setup_gtk_ardour_enums ();
|
||||
|
||||
#endif /* __ardour_gtk_enums_h__ */
|
||||
|
@ -48,6 +48,7 @@
|
||||
#include "version.h"
|
||||
#include "ardour_ui.h"
|
||||
#include "opts.h"
|
||||
#include "enums.h"
|
||||
|
||||
#include "i18n.h"
|
||||
|
||||
@ -429,6 +430,10 @@ int main (int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
@ -438,11 +443,8 @@ int main (int argc, char *argv[])
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
ARDOUR::init (use_vst, try_hw_optimization);
|
||||
Config->set_current_owner (ConfigVariableBase::Interface);
|
||||
ui->set_engine (*engine);
|
||||
|
||||
} catch (failed_constructor& err) {
|
||||
error << _("could not initialize Ardour.") << endmsg;
|
||||
return -1;
|
||||
|
Loading…
Reference in New Issue
Block a user