Add support to signal the transport state by OSC
Implement transport_speed in the same style like transport_frame. Up to now transport_speed and record_enabled are implemented.
This commit is contained in:
committed by
Robin Gareus
parent
fe4cc2e0a0
commit
4a429fab0e
@@ -336,7 +336,10 @@ OSC::register_callbacks()
|
||||
REGISTER_CALLBACK (serv, "/ardour/transport_stop", "", transport_stop);
|
||||
REGISTER_CALLBACK (serv, "/ardour/transport_play", "", transport_play);
|
||||
REGISTER_CALLBACK (serv, "/ardour/transport_frame", "", transport_frame);
|
||||
REGISTER_CALLBACK (serv, "/ardour/transport_speed", "", transport_speed);
|
||||
REGISTER_CALLBACK (serv, "/ardour/record_enabled", "", record_enabled);
|
||||
REGISTER_CALLBACK (serv, "/ardour/set_transport_speed", "f", set_transport_speed);
|
||||
|
||||
REGISTER_CALLBACK (serv, "/ardour/locate", "ii", locate);
|
||||
REGISTER_CALLBACK (serv, "/ardour/save_state", "", save_state);
|
||||
REGISTER_CALLBACK (serv, "/ardour/prev_marker", "", prev_marker);
|
||||
@@ -788,6 +791,33 @@ OSC::transport_frame (lo_message msg)
|
||||
lo_message_free (reply);
|
||||
}
|
||||
|
||||
void
|
||||
OSC::transport_speed(lo_message msg)
|
||||
{
|
||||
double ts = session->transport_speed ();
|
||||
|
||||
lo_message reply = lo_message_new ();
|
||||
lo_message_add_double (reply, ts);
|
||||
|
||||
lo_send_message (lo_message_get_source (msg), "/ardour/transport_speed", reply);
|
||||
|
||||
lo_message_free (reply);
|
||||
}
|
||||
|
||||
void
|
||||
OSC::record_enabled(lo_message msg)
|
||||
{
|
||||
int re = (int)session->get_record_enabled ();
|
||||
|
||||
lo_message reply = lo_message_new ();
|
||||
lo_message_add_int32 (reply, re);
|
||||
|
||||
lo_send_message (lo_message_get_source (msg), "/ardour/record_enabled", reply);
|
||||
|
||||
lo_message_free (reply);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
OSC::route_mute (int rid, int yn)
|
||||
{
|
||||
|
||||
@@ -122,6 +122,8 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||
|
||||
void routes_list (lo_message msg);
|
||||
void transport_frame(lo_message msg);
|
||||
void transport_speed(lo_message msg);
|
||||
void record_enabled(lo_message msg);
|
||||
|
||||
#define PATH_CALLBACK_MSG(name) \
|
||||
static int _ ## name (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { \
|
||||
@@ -134,6 +136,8 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||
|
||||
PATH_CALLBACK_MSG(routes_list);
|
||||
PATH_CALLBACK_MSG(transport_frame);
|
||||
PATH_CALLBACK_MSG(transport_speed);
|
||||
PATH_CALLBACK_MSG(record_enabled);
|
||||
|
||||
#define PATH_CALLBACK(name) \
|
||||
static int _ ## name (const char *path, const char *types, lo_arg **argv, int argc, void *data, void *user_data) { \
|
||||
|
||||
Reference in New Issue
Block a user