and now without typo
[ardour.git] / libs / surfaces / osc / osc.cc
index b6fd8727a0fb61365c443d0f81a24fa31aff2547..533bc558228c3b37363bb0140345252ba162646f 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 */
@@ -250,7 +251,12 @@ OSC::thread_init ()
        }
 
        if (_osc_server) {
+#ifdef PLATFORM_WINDOWS
+               Glib::RefPtr<IOChannel> iochan = Glib::IOChannel::create_from_win32_socket (lo_server_get_socket_fd (_osc_server));
+               Glib::RefPtr<IOSource> src  = IOSource::create (chan, IO_IN|IO_HUP|IO_ERR);
+#else
                Glib::RefPtr<IOSource> src  = IOSource::create (lo_server_get_socket_fd (_osc_server), IO_IN|IO_HUP|IO_ERR);
+#endif
                src->connect (sigc::bind (sigc::mem_fun (*this, &OSC::osc_input_handler), _osc_server));
                src->attach (_main_loop->get_context());
                remote_server = src->gobj();
@@ -359,6 +365,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,6 +393,7 @@ 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);
@@ -424,6 +433,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);
@@ -448,6 +459,7 @@ 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);
@@ -853,8 +865,8 @@ OSC::update_clock ()
 void
 OSC::session_loaded (Session& s)
 {
-       lo_address listener = lo_address_new (NULL, "7770");
-       lo_send (listener, "/session/loaded", "ss", s.path().c_str(), s.name().c_str());
+//     lo_address listener = lo_address_new (NULL, "7770");
+//     lo_send (listener, "/session/loaded", "ss", s.path().c_str(), s.name().c_str());
 }
 
 void
@@ -1041,7 +1053,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;
@@ -1057,7 +1069,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;
@@ -1071,7 +1083,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;
@@ -1106,7 +1118,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;