X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fardour_ui_dependents.cc;h=f81dc8d311bf90302ad5d5827edc22682202f499;hb=f960405614d4b345f45f7e02832d2fb98f3ab647;hp=7464a67ce2c620f443497468a1d442b95944298d;hpb=209d967b1bb80a9735d690d8f4f0455ecb9970ca;p=ardour.git diff --git a/gtk2_ardour/ardour_ui_dependents.cc b/gtk2_ardour/ardour_ui_dependents.cc index 7464a67ce2..f81dc8d311 100644 --- a/gtk2_ardour/ardour_ui_dependents.cc +++ b/gtk2_ardour/ardour_ui_dependents.cc @@ -15,7 +15,6 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id$ */ /* this file exists solely to break compilation dependencies that @@ -23,82 +22,92 @@ */ #include + #include + #include "ardour_ui.h" #include "public_editor.h" #include "mixer_ui.h" -#include "meter_bridge.h" #include "keyboard.h" +#include "splash.h" #include "route_params_ui.h" +#include "opts.h" #include "i18n.h" -using namespace SigC; - +using namespace sigc; +using namespace Gtk; +using namespace PBD; namespace ARDOUR { class Session; class Route; } +using namespace ARDOUR; + void ARDOUR_UI::shutdown () { if (session) { - delete session; + /* we're exiting cleanly, so remove any auto-save data */ + session->remove_pending_capture_state (); session = 0; } + ui_config->save_state(); } void ARDOUR_UI::we_have_dependents () { - setup_keybindings (); -} - -void -ARDOUR_UI::setup_keybindings () -{ - /* install default bindings */ + install_actions (); + ProcessorBox::register_actions (); - KeyboardTarget *defaults = new KeyboardTarget (editor->window(), X_("default")); + Keyboard::setup_keybindings (); - XMLNode* keynode = ARDOUR::Config->get_keys(); - - if (keynode != 0) { - defaults->set_binding_state (*keynode); - editor->set_binding_state (*keynode); - mixer->set_binding_state (*keynode); - meter_bridge->set_binding_state (*keynode); - } else { - error << _("keyboard_target: error setting binding state: invalid node") << endmsg; - } - - /* use the default keyboard target for now */ - - keyboard->set_default_target (defaults); + editor->UpdateAllTransportClocks.connect (mem_fun (*this, &ARDOUR_UI::update_transport_clocks)); } void ARDOUR_UI::connect_dependents_to_session (ARDOUR::Session *s) { + BootMessage (_("Setup Editor")); editor->connect_to_session (s); + BootMessage (_("Setup Mixer")); mixer->connect_to_session (s); - meter_bridge->set_session (s); + /* its safe to do this now */ + + BootMessage (_("Reload Session History")); + s->restore_history (""); +} + +static bool +_hide_splash (gpointer arg) +{ + ((ARDOUR_UI*)arg)->hide_splash(); + return false; } void ARDOUR_UI::goto_editor_window () { + if (splash && splash->is_visible()) { + // in 2 seconds, hide the splash screen + Glib::signal_timeout().connect (bind (sigc::ptr_fun (_hide_splash), this), 2000); + } + editor->show_window (); - editor->window().get_window().raise (); + editor->present (); + flush_pending (); } + void ARDOUR_UI::goto_mixer_window () { mixer->show_window (); - mixer->get_window().raise (); + mixer->present (); + flush_pending (); } gint