summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-30 13:38:38 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-30 13:38:38 +0000
commitd404b9fc58c7fd4d39331f0e2019de452542622c (patch)
tree1a9401353251b15c8fdbacef40fcac77f2ca7202 /libs/ardour
parentacdc88f279760443dc7397290e9c4752af5b23c9 (diff)
move some debug trace support code around to a more sane location
git-svn-id: svn://localhost/ardour2/branches/3.0@6214 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/debug.h5
-rw-r--r--libs/ardour/debug.cc112
-rw-r--r--libs/ardour/globals.cc12
-rw-r--r--libs/ardour/wscript1
4 files changed, 117 insertions, 13 deletions
diff --git a/libs/ardour/ardour/debug.h b/libs/ardour/ardour/debug.h
index 636d026f56..d90c82fcbe 100644
--- a/libs/ardour/ardour/debug.h
+++ b/libs/ardour/ardour/debug.h
@@ -29,6 +29,8 @@ namespace ARDOUR {
extern uint64_t debug_bits;
void debug_print (const char* prefix, std::string str);
void set_debug_bits (uint64_t bits);
+ int parse_debug_options (const char* str);
+ void list_debug_options ();
namespace DEBUG {
@@ -44,7 +46,8 @@ namespace ARDOUR {
Processors = 0x40,
Graph = 0x80,
Destruction = 0x100,
- MTC = 0x200
+ MTC = 0x200,
+ Transport = 0x400
};
}
diff --git a/libs/ardour/debug.cc b/libs/ardour/debug.cc
new file mode 100644
index 0000000000..0e9b7d8182
--- /dev/null
+++ b/libs/ardour/debug.cc
@@ -0,0 +1,112 @@
+/*
+ Copyright (C) 2009 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include <cstring>
+#include <cstdlib>
+#include <iostream>
+
+#include "ardour/debug.h"
+
+#include "i18n.h"
+
+using namespace std;
+
+void
+ARDOUR::debug_print (const char* prefix, string str)
+{
+ cerr << prefix << ": " << str;
+}
+
+void
+ARDOUR::set_debug_bits (uint64_t bits)
+{
+ debug_bits = bits;
+}
+
+int
+ARDOUR::parse_debug_options (const char* str)
+{
+ char* p;
+ char* sp;
+ uint64_t bits = 0;
+ char* copy = strdup (str);
+
+ p = strtok_r (copy, ",", &sp);
+
+ while (p) {
+ if (strcasecmp (p, "list") == 0) {
+ list_debug_options ();
+ free (copy);
+ return 1;
+ }
+
+ if (strcasecmp (p, "all") == 0) {
+ ARDOUR::set_debug_bits (~0ULL);
+ free (copy);
+ return 0;
+ }
+
+ if (strncasecmp (p, "midisourceio", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::MidiSourceIO;
+ } else if (strncasecmp (p, "midiplaylistio", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::MidiPlaylistIO;
+ } else if (strncasecmp (p, "mididiskstreamio", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::MidiDiskstreamIO;
+ } else if (strncasecmp (p, "snapbbt", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::SnapBBT;
+ } else if (strncasecmp (p, "configuration", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::Configuration;
+ } else if (strncasecmp (p, "latency", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::Latency;
+ } else if (strncasecmp (p, "processors", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::Processors;
+ } else if (strncasecmp (p, "graph", strlen (p)) == 0) {
+ 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;
+ } else if (strncasecmp (p, "transport", strlen (p)) == 0) {
+ bits |= ARDOUR::DEBUG::Transport;
+ }
+
+ p = strtok_r (0, ",", &sp);
+ }
+
+ free (copy);
+ ARDOUR::set_debug_bits (bits);
+ return 0;
+}
+
+void
+ARDOUR::list_debug_options ()
+{
+ cerr << _("The following debug options are available. Separate multipe options with commas.\nNames are case-insensitive and can be abbreviated.") << endl << endl;
+ cerr << "\tAll" << endl;
+ cerr << "\tMidiSourceIO" << endl;
+ cerr << "\tMidiPlaylistIO" << endl;
+ cerr << "\tMidiDiskstreamIO" << endl;
+ cerr << "\tSnapBBT" << endl;
+ cerr << "\tConfiguration" << endl;
+ cerr << "\tLatency" << endl;
+ cerr << "\tGraph" << endl;
+ cerr << "\tDestruction" << endl;
+ cerr << "\tMTC" << endl;
+ cerr << "\tTransport" << endl;
+}
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index ac7eb8605d..6e6ae9bf80 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -110,18 +110,6 @@ mix_buffers_no_gain_t ARDOUR::mix_buffers_no_gain = 0;
sigc::signal<void,std::string> ARDOUR::BootMessage;
-void
-ARDOUR::debug_print (const char* prefix, std::string str)
-{
- cerr << prefix << ": " << str;
-}
-
-void
-ARDOUR::set_debug_bits (uint64_t bits)
-{
- debug_bits = bits;
-}
-
int
ARDOUR::setup_midi ()
{
diff --git a/libs/ardour/wscript b/libs/ardour/wscript
index 67e138da38..48cd6ccb6f 100644
--- a/libs/ardour/wscript
+++ b/libs/ardour/wscript
@@ -69,6 +69,7 @@ libardour_sources = [
'crossfade.cc',
'cycle_timer.cc',
'default_click.cc',
+ 'debug.cc',
'delivery.cc',
'directory_names.cc',
'diskstream.cc',