13
0

OSC: Change jog mode should not stop transport

unless started by scrub or shuttle.
This commit is contained in:
Len Ovens 2017-08-27 14:15:05 -07:00
parent 7d553eea80
commit e07bb07899

View File

@ -2250,7 +2250,7 @@ OSC::scrub (float delta, lo_message msg)
if (speed == 1) { if (speed == 1) {
session->request_transport_speed (.5); session->request_transport_speed (.5);
} else { } else {
session->request_transport_speed (1); session->request_transport_speed (9.9);
} }
} else if (speed < 0) { } else if (speed < 0) {
if (speed == -1) { if (speed == -1) {
@ -2289,7 +2289,7 @@ OSC::jog (float delta, lo_message msg)
text_message (path, "Shuttle", get_address (msg)); text_message (path, "Shuttle", get_address (msg));
if (delta) { if (delta) {
double speed = get_transport_speed (); double speed = get_transport_speed ();
set_transport_speed (speed + (delta / 8)); set_transport_speed (speed + (delta / 8.1));
} else { } else {
set_transport_speed (0); set_transport_speed (0);
} }
@ -2348,31 +2348,42 @@ OSC::jog_mode (float mode, lo_message msg)
if (!session) return -1; if (!session) return -1;
OSCSurface *s = get_surface(get_address (msg)); OSCSurface *s = get_surface(get_address (msg));
if (get_transport_speed () != 1.0) {
set_transport_speed (0);
}
switch((uint32_t)mode) switch((uint32_t)mode)
{ {
case JOG : case JOG :
text_message ("/jog/mode/name", "Jog", get_address (msg));
s->jogmode = JOG; s->jogmode = JOG;
break; break;
case SCRUB: case SCRUB:
text_message ("/jog/mode/name", "Scrub", get_address (msg));
s->jogmode = SCRUB; s->jogmode = SCRUB;
break; break;
case SHUTTLE: case SHUTTLE:
text_message ("/jog/mode/name", "Shuttle", get_address (msg));
s->jogmode = SHUTTLE; s->jogmode = SHUTTLE;
break; break;
case SCROLL: case SCROLL:
text_message ("/jog/mode/name", "Scroll", get_address (msg));
s->jogmode = SCROLL; s->jogmode = SCROLL;
break; break;
case TRACK: case TRACK:
text_message ("/jog/mode/name", "Track", get_address (msg));
s->jogmode = TRACK; s->jogmode = TRACK;
break; break;
case BANK: case BANK:
text_message ("/jog/mode/name", "Bank", get_address (msg));
s->jogmode = BANK; s->jogmode = BANK;
break; break;
case NUDGE: case NUDGE:
text_message ("/jog/mode/name", "Nudge", get_address (msg));
s->jogmode = NUDGE; s->jogmode = NUDGE;
break; break;
case MARKER: case MARKER:
text_message ("/jog/mode/name", "Marker", get_address (msg));
s->jogmode = MARKER; s->jogmode = MARKER;
break; break;
default: default:
@ -2384,7 +2395,6 @@ OSC::jog_mode (float mode, lo_message msg)
lo_message_free (reply); lo_message_free (reply);
} }
jog (0, msg);
return 0; return 0;
} }