debug flag for MTC; make ardour/timecode.h simply include the "authoritative" one...
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 29 Nov 2009 22:08:18 +0000 (22:08 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 29 Nov 2009 22:08:18 +0000 (22:08 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@6209 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/opts.cc
libs/ardour/ardour/debug.h
libs/ardour/ardour/timecode.h
libs/ardour/mtc_slave.cc

index 883d8d584555b82de861ddd5504dc003d09fc901..0af659af08b73db79dc0aef990a32f476af02c32 100644 (file)
@@ -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);
index b373e227fd749f552f7d77414fe87b399971c0ff..636d026f562fdef4846966a9084d0aa610c3acd1 100644 (file)
@@ -43,7 +43,8 @@ namespace ARDOUR {
                        Latency = 0x20,
                        Processors = 0x40,
                        Graph = 0x80,
-                       Destruction = 0x100
+                       Destruction = 0x100,
+                       MTC = 0x200
                };
        }
 
index dd357ea33c472a3a7d283774dfb71e02e9e82c79..732a728c26bc84cd32166cefd193588b8ae7d25e 100644 (file)
@@ -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 <inttypes.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 );
+#ifndef __libardour_timecode_h__
+#define __libardour_timecode_h__
 
-} // namespace Timecode
+#include "control_protocol/timecode.h"
 
-#endif  // __ardour_timecode_h__
+#endif  // __libardour_timecode_h__
index 3619cc4c69583ed4077f8e0b4cf0d7895bb01e14..76abafb12b8d92cb19e65fddb925c7ebb2eb049e 100644 (file)
@@ -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++;