remove debug output
[ardour.git] / gtk2_ardour / ardour_ui.cc
index c6fdd4f87a5939ed882af70cf12343885b1ab793..dce3fbfac88d66b355f41bd3448c70106c945539 100644 (file)
@@ -287,7 +287,6 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
        , _was_dirty (false)
        , _mixer_on_top (false)
        , _initial_verbose_plugin_scan (false)
-       , first_time_engine_run (true)
        , secondary_clock_spacer (0)
        , auto_input_button (ArdourButton::led_default_elements)
        , time_info_box (0)
@@ -376,6 +375,32 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
        xmlSetGenericErrorFunc (this, libxml_generic_error_func);
        xmlSetStructuredErrorFunc (this, libxml_structured_error_func);
 
+       /* Set this up early */
+
+       ActionManager::init ();
+
+       /* we like keyboards */
+
+       keyboard = new ArdourKeyboard(*this);
+
+       XMLNode* node = ARDOUR_UI::instance()->keyboard_settings();
+       if (node) {
+               keyboard->set_state (*node, Stateful::loading_state_version);
+       }
+
+       /* actions do not need to be defined when we load keybindings. They
+        * will be lazily discovered. But bindings do need to exist when we
+        * create windows/tabs with their own binding sets.
+        */
+
+       keyboard->setup_keybindings ();
+
+       if ((global_bindings = Bindings::get_bindings (X_("Global"))) == 0) {
+               error << _("Global keybindings are missing") << endmsg;
+       }
+
+       install_actions ();
+
        UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &ARDOUR_UI::parameter_changed));
        boost::function<void (string)> pc (boost::bind (&ARDOUR_UI::parameter_changed, this, _1));
        UIConfiguration::instance().map_parameters (pc);
@@ -439,23 +464,10 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
 
        SessionEvent::create_per_thread_pool ("GUI", 4096);
 
-       /* we like keyboards */
-
-       keyboard = new ArdourKeyboard(*this);
-
-       XMLNode* node = ARDOUR_UI::instance()->keyboard_settings();
-       if (node) {
-               keyboard->set_state (*node, Stateful::loading_state_version);
-       }
-
        UIConfiguration::instance().reset_dpi ();
 
        TimeAxisViewItem::set_constant_heights ();
 
-       /* Set this up so that our window proxies can register actions */
-
-       ActionManager::init ();
-
        /* The following must happen after ARDOUR::init() so that Config is set up */
 
        const XMLNode* ui_xml = Config->extra_xml (X_("UI"));
@@ -534,11 +546,12 @@ release software. So, a few guidelines:\n\
    though it may be so, depending on your workflow.\n\
 2) Please wait for a helpful writeup of new features.\n\
 3) <b>Please do NOT use the forums at ardour.org to report issues</b>.\n\
-4) Please <b>DO</b> use the bugtracker at http://tracker.ardour.org/ to report issues\n\
-   making sure to note the product version number as 6.0-pre.\n\
-5) Please <b>DO</b> use the ardour-users mailing list to discuss ideas and pass on comments.\n\
-6) Please <b>DO</b> join us on IRC for real time discussions about %1 %2. You\n\
+4) <b>Please do NOT file bugs for this alpha-development versions at this point in time</b>.\n\
+   There is no bug triaging before the initial development concludes and\n\
+   reporting issue for incomplete, ongoing work-in-progress is mostly useless.\n\
+5) Please <b>DO</b> join us on IRC for real time discussions about %1 %2. You\n\
    can get there directly from within the program via the Help->Chat menu option.\n\
+6) Please <b>DO</b> submit patches for issues after discussing them on IRC.\n\
 \n\
 Full information on all the above can be found on the support page at\n\
 \n\
@@ -564,7 +577,7 @@ ARDOUR_UI::create_global_port_matrix (ARDOUR::DataType type)
 void
 ARDOUR_UI::attach_to_engine ()
 {
-       AudioEngine::instance()->Running.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::engine_running, this), gui_context());
+       AudioEngine::instance()->Running.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::engine_running, this, _1), gui_context());
        ARDOUR::Port::set_connecting_blocked (ARDOUR_COMMAND_LINE::no_connect_ports);
 }
 
@@ -579,12 +592,10 @@ ARDOUR_UI::engine_stopped ()
 }
 
 void
-ARDOUR_UI::engine_running ()
+ARDOUR_UI::engine_running (uint32_t cnt)
 {
-       ENSURE_GUI_THREAD (*this, &ARDOUR_UI::engine_running)
-       if (first_time_engine_run) {
+       if (cnt == 0) {
                post_engine();
-               first_time_engine_run = false;
        }
 
        if (_session) {
@@ -656,8 +667,6 @@ ARDOUR_UI::post_engine ()
        }
 #endif
 
-       ARDOUR::init_post_engine ();
-
        /* connect to important signals */
 
        AudioEngine::instance()->Stopped.connect (forever_connections, MISSING_INVALIDATOR, boost::bind (&ARDOUR_UI::engine_stopped, this), gui_context());
@@ -5856,7 +5865,7 @@ ARDOUR_UI::key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey
                        }
                }
 
-               DEBUG_TRACE (DEBUG::Accelerators, "\tnot yet handled, try global bindings\n");
+               DEBUG_TRACE (DEBUG::Accelerators, string_compose ("\tnot yet handled, try global bindings (%1)\n", global_bindings));
 
                if (global_bindings && global_bindings->activate (k, Bindings::Press)) {
                        DEBUG_TRACE (DEBUG::Accelerators, "\t\thandled\n");
@@ -5906,7 +5915,7 @@ ARDOUR_UI::key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey
                        }
                }
 
-               DEBUG_TRACE (DEBUG::Accelerators, "\tnot yet handled, try global bindings\n");
+               DEBUG_TRACE (DEBUG::Accelerators, string_compose ("\tnot yet handled, try global bindings (%1)\n", global_bindings));
 
                if (global_bindings && global_bindings->activate (k, Bindings::Press)) {
                        DEBUG_TRACE (DEBUG::Accelerators, "\t\thandled\n");
@@ -5918,14 +5927,6 @@ ARDOUR_UI::key_press_focus_accelerator_handler (Gtk::Window& window, GdkEventKey
        return true;
 }
 
-void
-ARDOUR_UI::load_bindings ()
-{
-       if ((global_bindings = Bindings::get_bindings (X_("Global"))) == 0) {
-               error << _("Global keybindings are missing") << endmsg;
-       }
-}
-
 void
 ARDOUR_UI::cancel_solo ()
 {
@@ -5995,9 +5996,8 @@ ARDOUR_UI::monitor_dim_all ()
        }
        boost::shared_ptr<ARDOUR::MonitorProcessor> _monitor = mon->monitor_control ();
 
-       Glib::RefPtr<Action> act = ActionManager::get_action (X_("Monitor"), "monitor-dim-all");
-       assert (act);  Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
-       assert (tact); _monitor->set_dim_all (tact->get_active());
+       Glib::RefPtr<ToggleAction> tact = ActionManager::get_toggle_action (X_("Monitor"), "monitor-dim-all");
+       _monitor->set_dim_all (tact->get_active());
 }
 
 void
@@ -6009,9 +6009,8 @@ ARDOUR_UI::monitor_cut_all ()
        }
        boost::shared_ptr<ARDOUR::MonitorProcessor> _monitor = mon->monitor_control ();
 
-       Glib::RefPtr<Action> act = ActionManager::get_action (X_("Monitor"), "monitor-cut-all");
-       assert (act);  Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
-       assert (tact); _monitor->set_cut_all (tact->get_active());
+       Glib::RefPtr<ToggleAction> tact = ActionManager::get_toggle_action (X_("Monitor"), "monitor-cut-all");
+       _monitor->set_cut_all (tact->get_active());
 }
 
 void
@@ -6023,7 +6022,6 @@ ARDOUR_UI::monitor_mono ()
        }
        boost::shared_ptr<ARDOUR::MonitorProcessor> _monitor = mon->monitor_control ();
 
-       Glib::RefPtr<Action> act = ActionManager::get_action (X_("Monitor"), "monitor-mono");
-       assert (act);  Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
-       assert (tact);_monitor->set_mono (tact->get_active());
+       Glib::RefPtr<ToggleAction> tact = ActionManager::get_toggle_action (X_("Monitor"), "monitor-mono");
+       _monitor->set_mono (tact->get_active());
 }