Defer session_loaded until AFTER lo_server_new.
[ardour.git] / libs / surfaces / osc / osc.cc
index 9dd0bc5144991271f2a1e2d77abe5909c543387b..0565e24f609bab1f0be43f75f9a0ea86e2940e1d 100644 (file)
@@ -88,7 +88,6 @@ OSC::OSC (Session& s, uint32_t port)
 {
        _instance = this;
 
-       session_loaded (s);
        session->Exported.connect (*this, MISSING_INVALIDATOR, boost::bind (&OSC::session_exported, this, _1, _2), this);
 }
 
@@ -227,6 +226,8 @@ OSC::start ()
 
        register_callbacks();
 
+       session_loaded (@session);
+
        // lo_server_thread_add_method(_sthread, NULL, NULL, OSC::_dummy_handler, this);
 
        /* startup the event loop thread */
@@ -359,6 +360,8 @@ OSC::register_callbacks()
                REGISTER_CALLBACK (serv, "/ardour/toggle_punch_out", "", toggle_punch_out);
                REGISTER_CALLBACK (serv, "/ardour/rec_enable_toggle", "", rec_enable_toggle);
                REGISTER_CALLBACK (serv, "/ardour/toggle_all_rec_enables", "", toggle_all_rec_enables);
+               REGISTER_CALLBACK (serv, "/ardour/all_tracks_rec_in", "f", all_tracks_rec_in);
+               REGISTER_CALLBACK (serv, "/ardour/all_tracks_rec_out", "f", all_tracks_rec_out);
                REGISTER_CALLBACK (serv, "/ardour/remove_marker", "", remove_marker_at_playhead);
                REGISTER_CALLBACK (serv, "/ardour/jump_bars", "f", jump_by_bars);
                REGISTER_CALLBACK (serv, "/ardour/jump_seconds", "f", jump_by_seconds);
@@ -385,10 +388,17 @@ OSC::register_callbacks()
                REGISTER_CALLBACK (serv, "/ardour/fit_all_tracks", "", fit_all_tracks);
                REGISTER_CALLBACK (serv, "/ardour/zoom_100_ms", "", zoom_100_ms);
                REGISTER_CALLBACK (serv, "/ardour/zoom_1_sec", "", zoom_1_sec);
+               REGISTER_CALLBACK (serv, "/ardour/zoom_10_sec", "", zoom_10_sec);
                REGISTER_CALLBACK (serv, "/ardour/zoom_1_min", "", zoom_1_min);
                REGISTER_CALLBACK (serv, "/ardour/zoom_5_min", "", zoom_5_min);
                REGISTER_CALLBACK (serv, "/ardour/zoom_10_min", "", zoom_10_min);
                REGISTER_CALLBACK (serv, "/ardour/zoom_to_session", "", zoom_to_session);
+               REGISTER_CALLBACK (serv, "/ardour/temporal_zoom_in", "f", temporal_zoom_in);
+               REGISTER_CALLBACK (serv, "/ardour/temporal_zoom_out", "f", temporal_zoom_out);
+               REGISTER_CALLBACK (serv, "/ardour/scroll_up_1_track", "f", scroll_up_1_track);
+               REGISTER_CALLBACK (serv, "/ardour/scroll_dn_1_track", "f", scroll_dn_1_track);
+               REGISTER_CALLBACK (serv, "/ardour/scroll_up_1_page", "f", scroll_up_1_page);
+               REGISTER_CALLBACK (serv, "/ardour/scroll_dn_1_page", "f", scroll_dn_1_page);
 
 
                /*
@@ -418,6 +428,8 @@ OSC::register_callbacks()
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/toggle_punch_out", "f", toggle_punch_out);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/rec_enable_toggle", "f", rec_enable_toggle);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/toggle_all_rec_enables", "f", toggle_all_rec_enables);
+               REGISTER_CALLBACK (serv, "/ardour/pushbutton/all_tracks_rec_in", "f", all_tracks_rec_in);
+               REGISTER_CALLBACK (serv, "/ardour/pushbutton/all_tracks_rec_out", "f", all_tracks_rec_out);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/remove_marker", "f", remove_marker_at_playhead);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/mark_in", "f", mark_in);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/mark_out", "f", mark_out);
@@ -442,12 +454,17 @@ OSC::register_callbacks()
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/fit_all_tracks", "f", fit_all_tracks);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/zoom_100_ms", "f", zoom_100_ms);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/zoom_1_sec", "f", zoom_1_sec);
+               REGISTER_CALLBACK (serv, "/ardour/pushbutton/zoom_10_sec", "f", zoom_10_sec);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/zoom_1_min", "f", zoom_1_min);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/zoom_5_min", "f", zoom_5_min);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/zoom_10_min", "f", zoom_10_min);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/zoom_to_session", "f", zoom_to_session);
+               REGISTER_CALLBACK (serv, "/ardour/pushbutton/temporal_zoom_in", "f", temporal_zoom_in);
+               REGISTER_CALLBACK (serv, "/ardour/pushbutton/temporal_zoom_out", "f", temporal_zoom_out);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/scroll_up_1_track", "f", scroll_up_1_track);
                REGISTER_CALLBACK (serv, "/ardour/pushbutton/scroll_dn_1_track", "f", scroll_dn_1_track);
+               REGISTER_CALLBACK (serv, "/ardour/pushbutton/scroll_up_1_page", "f", scroll_up_1_page);
+               REGISTER_CALLBACK (serv, "/ardour/pushbutton/scroll_dn_1_page", "f", scroll_dn_1_page);
 
                /* These commands require the route index in addition to the arg; TouchOSC (et al) can't use these  */ 
                REGISTER_CALLBACK (serv, "/ardour/routes/mute", "ii", route_mute);
@@ -1031,7 +1048,7 @@ OSC::route_mute (int rid, int yn)
        boost::shared_ptr<Route> r = session->route_by_remote_id (rid);
 
        if (r) {
-               r->set_mute (yn, this);
+               r->set_mute (yn, PBD::Controllable::NoGroup);
        }
 
        return 0;
@@ -1047,7 +1064,7 @@ OSC::route_solo (int rid, int yn)
        if (r) {
                boost::shared_ptr<RouteList> rl (new RouteList);
                rl->push_back (r);
-               session->set_solo (rl, yn);
+               session->set_solo (rl, yn, Session::rt_cleanup, PBD::Controllable::NoGroup);
        }
 
        return 0;
@@ -1061,7 +1078,7 @@ OSC::route_recenable (int rid, int yn)
        boost::shared_ptr<Route> r = session->route_by_remote_id (rid);
 
        if (r) {
-               r->set_record_enabled (yn, this);
+               r->set_record_enabled (yn, PBD::Controllable::NoGroup);
        }
 
        return 0;
@@ -1096,7 +1113,7 @@ OSC::route_set_trim_abs (int rid, float level)
        boost::shared_ptr<Route> r = session->route_by_remote_id (rid);
 
        if (r) {
-               r->set_trim (level, this);
+               r->set_trim (level, PBD::Controllable::NoGroup);
        }
 
        return 0;