diff options
author | Len Ovens <len@ovenwerks.net> | 2018-02-01 22:03:04 -0800 |
---|---|---|
committer | Len Ovens <len@ovenwerks.net> | 2018-02-01 22:03:04 -0800 |
commit | 16a5e3ce55be272ec8934996a474e9beb6b8c9f2 (patch) | |
tree | f385b0ba64137c29d5336232031a400af7e186e6 /libs/surfaces/osc/osc.cc | |
parent | ae3d9deefb4e88c85111f818eb909763561e0d60 (diff) |
OSC: jog mode and jog mode name should be sent at refresh
Diffstat (limited to 'libs/surfaces/osc/osc.cc')
-rw-r--r-- | libs/surfaces/osc/osc.cc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/libs/surfaces/osc/osc.cc b/libs/surfaces/osc/osc.cc index 4d67b86864..37151bbc70 100644 --- a/libs/surfaces/osc/osc.cc +++ b/libs/surfaces/osc/osc.cc @@ -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); } } @@ -5993,6 +6027,20 @@ OSC::float_message_with_id (std::string path, uint32_t ssid, float value, bool i } 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) { lo_message msg = lo_message_new (); |