summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-01-27 03:26:41 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-01-27 03:26:41 +0000
commit4dc34d5fd9f7d400c60f4a3aac14804b0f4c4e20 (patch)
tree4db73592f1de3da66592763903fac5baa57ee20a
parente24148d9d7af6f2c22b6faf49dfc6b89ec67fc6f (diff)
something for chris g. to try when he gets up before me
git-svn-id: svn://localhost/ardour2/branches/3.0@6573 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--libs/ardour/mtc_slave.cc7
-rw-r--r--libs/midi++2/mtc.cc13
2 files changed, 6 insertions, 14 deletions
diff --git a/libs/ardour/mtc_slave.cc b/libs/ardour/mtc_slave.cc
index 8cc54d577d..d3fbbf01d6 100644
--- a/libs/ardour/mtc_slave.cc
+++ b/libs/ardour/mtc_slave.cc
@@ -23,7 +23,6 @@
#include <unistd.h>
#include "pbd/error.h"
-#include "pbd/stacktrace.h"
#include "pbd/enumwriter.h"
#include "pbd/failed_constructor.h"
#include "pbd/pthread_utils.h"
@@ -57,6 +56,7 @@ MTC_Slave::MTC_Slave (Session& s, MIDI::Port& p)
{
can_notify_on_unknown_rate = true;
did_reset_tc_format = false;
+ reset_pending = false;
pic = new PIChaser();
@@ -190,10 +190,7 @@ MTC_Slave::update_mtc_time (const byte *msg, bool was_full, nframes_t now)
session.timecode_to_sample (timecode, mtc_frame, true, false);
session.request_locate (mtc_frame, false);
session.request_transport_speed (0);
- DEBUG_TRACE (DEBUG::MTC, string_compose ("reset MTC status to stopped, outside MTC window (%1 .. %2 vs. %3)\n",
- window_begin, window_end, mtc_frame));
update_mtc_status (MIDI::MTC_Stopped);
- DEBUG_TRACE (DEBUG::MTC, string_compose ("outside, so window root reset to %1\n", mtc_frame));
reset ();
reset_window (mtc_frame);
@@ -506,8 +503,6 @@ void
MTC_Slave::reset ()
{
DEBUG_TRACE (DEBUG::MTC, "*****************\n\n\n MTC SLAVE reset ********************\n\n\n");
- PBD::stacktrace (cerr, 35);
- port->input()->reset_mtc_state ();
last_inbound_frame = 0;
current.guard1++;
diff --git a/libs/midi++2/mtc.cc b/libs/midi++2/mtc.cc
index d7c089eecd..32fb8cf3d6 100644
--- a/libs/midi++2/mtc.cc
+++ b/libs/midi++2/mtc.cc
@@ -185,7 +185,9 @@ Parser::process_mtc_quarter_frame (byte *msg)
true, just ignore this in terms of it being an error.
*/
- if (1) { /* mtc_skipped () */
+ boost::optional<bool> res = mtc_skipped ();
+
+ if (res.get_value_or (false)) {
/* no error, reset next expected frame */
@@ -217,17 +219,12 @@ Parser::process_mtc_quarter_frame (byte *msg)
return;
}
- /* go back to waiting for the first frame */
-
- expected_mtc_quarter_frame_code = 0;
- memset (_qtr_mtc_time, 0, sizeof (_qtr_mtc_time));
-
- _mtc_running = MTC_Stopped;
- _mtc_locked = false;
+ /* skip counts as an error ... go back to waiting for the first frame */
#ifdef DEBUG_MTC
cerr << "Skipped MTC qtr frame, return to stopped state" << endl;
#endif
+ reset_mtc_state ();
mtc_status (MTC_Stopped);
return;