summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-28 00:39:03 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-28 00:39:03 +0000
commite9c1fe206d6eb2c7452d82cc633d359a8a0b73b8 (patch)
tree99a942e73aef16fb7f1be452b9622d3f0ecb46cb /libs
parente5b6e06f837d8b0d3fdb89621d3a3703dc5a29a3 (diff)
MMC related fixes
git-svn-id: svn://localhost/ardour2/branches/3.0@6192 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/session_midi.cc4
-rw-r--r--libs/ardour/session_process.cc1
-rw-r--r--libs/ardour/session_transport.cc4
3 files changed, 6 insertions, 3 deletions
diff --git a/libs/ardour/session_midi.cc b/libs/ardour/session_midi.cc
index 1fe360e397..2e8915cdb5 100644
--- a/libs/ardour/session_midi.cc
+++ b/libs/ardour/session_midi.cc
@@ -494,7 +494,7 @@ Session::setup_midi_control ()
void
Session::spp_start (Parser &, nframes_t /*timestamp*/)
{
- if (Config->get_mmc_control() && (config.get_external_sync() && config.get_sync_source() != MTC)) {
+ if (Config->get_mmc_control() && (!config.get_external_sync() || config.get_sync_source() != JACK)) {
request_transport_speed (1.0);
}
}
@@ -539,7 +539,7 @@ Session::midi_clock_stop (Parser& ignored, nframes_t timestamp)
void
Session::mmc_deferred_play (MIDI::MachineControl &/*mmc*/)
{
- if (Config->get_mmc_control() && (config.get_external_sync() && (config.get_sync_source() != MTC))) {
+ if (Config->get_mmc_control() && (!config.get_external_sync() || (config.get_sync_source() != JACK))) {
request_transport_speed (1.0);
}
}
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index a79a2e4cd8..6182927404 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -311,6 +311,7 @@ Session::process_with_events (nframes_t nframes)
*/
if (_send_timecode_update) {
send_full_time_code(nframes);
+ deliver_mmc (MIDI::MachineControl::cmdLocate, _transport_frame);
}
if (!process_can_proceed()) {
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc
index b7377d7dc6..0eaf8125a4 100644
--- a/libs/ardour/session_transport.cc
+++ b/libs/ardour/session_transport.cc
@@ -946,7 +946,9 @@ Session::set_transport_speed (double speed, bool abort, bool clear_state)
} else {
- if (!get_record_enabled() && Config->get_stop_at_session_end() && _transport_frame >= current_end_frame()) {
+ /* if not recording, don't roll forward past end if told to stop there */
+
+ if (!get_record_enabled() && (speed > 0.0 && Config->get_stop_at_session_end() && _transport_frame >= current_end_frame())) {
return;
}