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/debug.cc | |
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/debug.cc')
-rw-r--r-- | libs/ardour/debug.cc | 112 |
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; +} |