summaryrefslogtreecommitdiff
path: root/libs/ardour/debug.cc
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/debug.cc
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/debug.cc')
-rw-r--r--libs/ardour/debug.cc112
1 files changed, 112 insertions, 0 deletions
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;
+}