OSC: Change jog mode should not stop transport
unless started by scrub or shuttle.
This commit is contained in:
parent
7d553eea80
commit
e07bb07899
|
@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user