diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-30 13:38:38 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2009-11-30 13:38:38 +0000 |
commit | d404b9fc58c7fd4d39331f0e2019de452542622c (patch) | |
tree | 1a9401353251b15c8fdbacef40fcac77f2ca7202 /libs/ardour | |
parent | acdc88f279760443dc7397290e9c4752af5b23c9 (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.h | 5 | ||||
-rw-r--r-- | libs/ardour/debug.cc | 112 | ||||
-rw-r--r-- | libs/ardour/globals.cc | 12 | ||||
-rw-r--r-- | libs/ardour/wscript | 1 |
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', |