debug flag for MTC; make ardour/timecode.h simply include the "authoritative" one in libs/surfaces/control_protocol
git-svn-id: svn://localhost/ardour2/branches/3.0@6209 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
@@ -129,6 +129,8 @@ parse_debug_options (const char* str)
|
||||
bits |= ARDOUR::DEBUG::Graph;
|
||||
} else if (strncasecmp (p, "destruction", strlen (p)) == 0) {
|
||||
bits |= ARDOUR::DEBUG::Destruction;
|
||||
} else if (strncasecmp (p, "mtc", strlen (p)) == 0) {
|
||||
bits |= ARDOUR::DEBUG::MTC;
|
||||
}
|
||||
|
||||
p = strtok_r (0, ",", &sp);
|
||||
|
||||
@@ -43,7 +43,8 @@ namespace ARDOUR {
|
||||
Latency = 0x20,
|
||||
Processors = 0x40,
|
||||
Graph = 0x80,
|
||||
Destruction = 0x100
|
||||
Destruction = 0x100,
|
||||
MTC = 0x200
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,79 +1,24 @@
|
||||
/* Copyright (C) 2006 Paul Davis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
/*
|
||||
Copyright (C) 2006 Paul Davis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Lesser General Public License as published
|
||||
by the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef __ardour_timecode_h__
|
||||
#define __ardour_timecode_h__
|
||||
#ifndef __libardour_timecode_h__
|
||||
#define __libardour_timecode_h__
|
||||
|
||||
#include <inttypes.h>
|
||||
#include "control_protocol/timecode.h"
|
||||
|
||||
namespace Timecode {
|
||||
|
||||
enum Wrap {
|
||||
NONE = 0,
|
||||
FRAMES,
|
||||
SECONDS,
|
||||
MINUTES,
|
||||
HOURS
|
||||
};
|
||||
|
||||
/** Timecode frame rate (in frames per second).
|
||||
*
|
||||
* This should be eliminated in favour of a float to support arbitrary rates.
|
||||
*/
|
||||
enum FPS {
|
||||
MTC_24_FPS = 0,
|
||||
MTC_25_FPS = 1,
|
||||
MTC_30_FPS_DROP = 2,
|
||||
MTC_30_FPS = 3
|
||||
};
|
||||
|
||||
struct Time {
|
||||
bool negative;
|
||||
uint32_t hours;
|
||||
uint32_t minutes;
|
||||
uint32_t seconds;
|
||||
uint32_t frames; ///< Timecode frames (not audio samples)
|
||||
uint32_t subframes; ///< Typically unused
|
||||
FPS rate; ///< Frame rate of this Time
|
||||
static FPS default_rate; ///< Rate to use for default constructor
|
||||
|
||||
Time(FPS a_rate = default_rate) {
|
||||
negative = false;
|
||||
hours = 0;
|
||||
minutes = 0;
|
||||
seconds = 0;
|
||||
frames = 0;
|
||||
subframes = 0;
|
||||
rate = a_rate;
|
||||
}
|
||||
};
|
||||
|
||||
Wrap increment( Time& timecode );
|
||||
Wrap decrement( Time& timecode );
|
||||
Wrap increment_subframes( Time& timecode );
|
||||
Wrap decrement_subframes( Time& timecode );
|
||||
Wrap increment_seconds( Time& timecode );
|
||||
Wrap increment_minutes( Time& timecode );
|
||||
Wrap increment_hours( Time& timecode );
|
||||
void frames_floor( Time& timecode );
|
||||
void seconds_floor( Time& timecode );
|
||||
void minutes_floor( Time& timecode );
|
||||
void hours_floor( Time& timecode );
|
||||
|
||||
} // namespace Timecode
|
||||
|
||||
#endif // __ardour_timecode_h__
|
||||
#endif // __libardour_timecode_h__
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#include "pbd/pthread_utils.h"
|
||||
|
||||
#include "midi++/port.h"
|
||||
#include "ardour/debug.h"
|
||||
#include "ardour/slave.h"
|
||||
#include "ardour/session.h"
|
||||
#include "ardour/audioengine.h"
|
||||
@@ -136,6 +137,8 @@ MTC_Slave::update_mtc_time (const byte *msg, bool was_full)
|
||||
|
||||
session.timecode_to_sample (timecode, mtc_frame, true, false);
|
||||
|
||||
DEBUG_TRACE (DEBUG::MTC, string_compose ("MTC time now %1 = frame %2 (from full message ? %3)\n", timecode, mtc_frame, was_full));
|
||||
|
||||
if (was_full) {
|
||||
|
||||
current.guard1++;
|
||||
|
||||
Reference in New Issue
Block a user