From b7341e0026f868bcfc6b8610d743b668f1d23192 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 29 Nov 2009 22:08:18 +0000 Subject: [PATCH] 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 --- gtk2_ardour/opts.cc | 2 + libs/ardour/ardour/debug.h | 3 +- libs/ardour/ardour/timecode.h | 95 ++++++++--------------------------- libs/ardour/mtc_slave.cc | 3 ++ 4 files changed, 27 insertions(+), 76 deletions(-) diff --git a/gtk2_ardour/opts.cc b/gtk2_ardour/opts.cc index 883d8d5845..0af659af08 100644 --- a/gtk2_ardour/opts.cc +++ b/gtk2_ardour/opts.cc @@ -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); diff --git a/libs/ardour/ardour/debug.h b/libs/ardour/ardour/debug.h index b373e227fd..636d026f56 100644 --- a/libs/ardour/ardour/debug.h +++ b/libs/ardour/ardour/debug.h @@ -43,7 +43,8 @@ namespace ARDOUR { Latency = 0x20, Processors = 0x40, Graph = 0x80, - Destruction = 0x100 + Destruction = 0x100, + MTC = 0x200 }; } diff --git a/libs/ardour/ardour/timecode.h b/libs/ardour/ardour/timecode.h index dd357ea33c..732a728c26 100644 --- a/libs/ardour/ardour/timecode.h +++ b/libs/ardour/ardour/timecode.h @@ -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__ - -#include - -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 ); +#ifndef __libardour_timecode_h__ +#define __libardour_timecode_h__ -} // namespace Timecode +#include "control_protocol/timecode.h" -#endif // __ardour_timecode_h__ +#endif // __libardour_timecode_h__ diff --git a/libs/ardour/mtc_slave.cc b/libs/ardour/mtc_slave.cc index 3619cc4c69..76abafb12b 100644 --- a/libs/ardour/mtc_slave.cc +++ b/libs/ardour/mtc_slave.cc @@ -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++; -- 2.30.2