OSC: jog mode and jog mode name should be sent at refresh
This commit is contained in:
@@ -2184,6 +2184,40 @@ OSC::global_feedback (OSCSurface* sur)
|
||||
// create a new Global Observer for this surface
|
||||
OSCGlobalObserver* o = new OSCGlobalObserver (*this, *session, sur);
|
||||
sur->global_obs = o;
|
||||
uint32_t mode = sur->jogmode;
|
||||
lo_address addr = lo_address_new_from_url (sur->remote_url.c_str());
|
||||
|
||||
switch(mode)
|
||||
{
|
||||
case JOG :
|
||||
text_message ("/jog/mode/name", "Jog", addr);
|
||||
break;
|
||||
case SCRUB:
|
||||
text_message ("/jog/mode/name", "Scrub", addr);
|
||||
break;
|
||||
case SHUTTLE:
|
||||
text_message ("/jog/mode/name", "Shuttle", addr);
|
||||
break;
|
||||
case SCROLL:
|
||||
text_message ("/jog/mode/name", "Scroll", addr);
|
||||
break;
|
||||
case TRACK:
|
||||
text_message ("/jog/mode/name", "Track", addr);
|
||||
break;
|
||||
case BANK:
|
||||
text_message ("/jog/mode/name", "Bank", addr);
|
||||
break;
|
||||
case NUDGE:
|
||||
text_message ("/jog/mode/name", "Nudge", addr);
|
||||
break;
|
||||
case MARKER:
|
||||
text_message ("/jog/mode/name", "Marker", addr);
|
||||
break;
|
||||
default:
|
||||
PBD::warning << "Jog Mode: " << mode << " is not valid." << endmsg;
|
||||
break;
|
||||
}
|
||||
int_message ("/jog/mode", mode, addr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5992,6 +6026,20 @@ OSC::float_message_with_id (std::string path, uint32_t ssid, float value, bool i
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
OSC::int_message (string path, int val, lo_address addr)
|
||||
{
|
||||
|
||||
lo_message reply;
|
||||
reply = lo_message_new ();
|
||||
lo_message_add_int32 (reply, (float) val);
|
||||
|
||||
lo_send_message (addr, path.c_str(), reply);
|
||||
lo_message_free (reply);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
OSC::int_message_with_id (std::string path, uint32_t ssid, int value, bool in_line, lo_address addr)
|
||||
{
|
||||
|
||||
@@ -90,6 +90,7 @@ class OSC : public ARDOUR::ControlProtocol, public AbstractUI<OSCUIRequest>
|
||||
// generic osc send
|
||||
|
||||
int float_message (std::string, float value, lo_address addr);
|
||||
int int_message (std::string, int value, lo_address addr);
|
||||
int text_message (std::string path, std::string val, lo_address addr);
|
||||
int float_message_with_id (std::string, uint32_t ssid, float value, bool in_line, lo_address addr);
|
||||
int int_message_with_id (std::string, uint32_t ssid, int value, bool in_line, lo_address addr);
|
||||
|
||||
Reference in New Issue
Block a user