Fix various MMC commands, set request-source
This commit is contained in:
parent
8bf8e67545
commit
dad725688d
|
@ -167,7 +167,7 @@ void
|
||||||
Session::mmc_record_exit (MIDI::MachineControl &/*mmc*/)
|
Session::mmc_record_exit (MIDI::MachineControl &/*mmc*/)
|
||||||
{
|
{
|
||||||
if (Config->get_mmc_control ()) {
|
if (Config->get_mmc_control ()) {
|
||||||
disable_record (false);
|
disable_record (false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,7 +175,8 @@ void
|
||||||
Session::mmc_stop (MIDI::MachineControl &/*mmc*/)
|
Session::mmc_stop (MIDI::MachineControl &/*mmc*/)
|
||||||
{
|
{
|
||||||
if (Config->get_mmc_control ()) {
|
if (Config->get_mmc_control ()) {
|
||||||
request_stop ();
|
request_transport_speed (1.0, TRS_MMC);
|
||||||
|
request_stop (false, true, TRS_MMC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -192,7 +193,7 @@ Session::mmc_pause (MIDI::MachineControl &/*mmc*/)
|
||||||
if (actively_recording()) {
|
if (actively_recording()) {
|
||||||
maybe_enable_record ();
|
maybe_enable_record ();
|
||||||
} else {
|
} else {
|
||||||
request_stop ();
|
request_stop (false, false, TRS_MMC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -258,7 +259,7 @@ void
|
||||||
Session::mmc_rewind (MIDI::MachineControl &/*mmc*/)
|
Session::mmc_rewind (MIDI::MachineControl &/*mmc*/)
|
||||||
{
|
{
|
||||||
if (Config->get_mmc_control ()) {
|
if (Config->get_mmc_control ()) {
|
||||||
request_transport_speed(-8.0f);
|
request_transport_speed(-Config->get_max_transport_speed());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,7 +267,7 @@ void
|
||||||
Session::mmc_fast_forward (MIDI::MachineControl &/*mmc*/)
|
Session::mmc_fast_forward (MIDI::MachineControl &/*mmc*/)
|
||||||
{
|
{
|
||||||
if (Config->get_mmc_control ()) {
|
if (Config->get_mmc_control ()) {
|
||||||
request_transport_speed(8.0f);
|
request_transport_speed (Config->get_max_transport_speed());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,12 +303,12 @@ Session::mmc_locate (MIDI::MachineControl &/*mmc*/, const MIDI::byte* mmc_tc)
|
||||||
|
|
||||||
std::shared_ptr<MTC_TransportMaster> mtcs = std::dynamic_pointer_cast<MTC_TransportMaster> (transport_master());
|
std::shared_ptr<MTC_TransportMaster> mtcs = std::dynamic_pointer_cast<MTC_TransportMaster> (transport_master());
|
||||||
|
|
||||||
if (mtcs) {
|
if (mtcs && config.get_external_sync ()) {
|
||||||
// cerr << "Locate *with* MTC slave\n";
|
// cerr << "Locate *with* MTC slave\n";
|
||||||
mtcs->handle_locate (mmc_tc);
|
mtcs->handle_locate (mmc_tc);
|
||||||
} else {
|
} else {
|
||||||
// cerr << "Locate without MTC slave\n";
|
// cerr << "Locate without MTC slave\n";
|
||||||
request_locate (target_sample, false, MustStop);
|
request_locate (target_sample, false, MustStop, TRS_MMC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -323,9 +324,9 @@ Session::mmc_shuttle (MIDI::MachineControl &/*mmc*/, float speed, bool forw)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (forw) {
|
if (forw) {
|
||||||
request_transport_speed_nonzero (speed);
|
request_transport_speed (speed, TRS_MMC);
|
||||||
} else {
|
} else {
|
||||||
request_transport_speed_nonzero (-speed);
|
request_transport_speed (-speed, TRS_MMC);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -610,7 +610,7 @@ MachineControl::do_step (MIDI::byte *msg, size_t /*msglen*/)
|
||||||
int
|
int
|
||||||
MachineControl::do_shuttle (MIDI::byte *msg, size_t /*msglen*/)
|
MachineControl::do_shuttle (MIDI::byte *msg, size_t /*msglen*/)
|
||||||
{
|
{
|
||||||
size_t forward;
|
bool forward;
|
||||||
byte sh = msg[2];
|
byte sh = msg[2];
|
||||||
byte sm = msg[3];
|
byte sm = msg[3];
|
||||||
byte sl = msg[4];
|
byte sl = msg[4];
|
||||||
|
|
Loading…
Reference in New Issue