diff options
-rw-r--r-- | gtk2_ardour/opts.cc | 70 | ||||
-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 |
5 files changed, 118 insertions, 82 deletions
diff --git a/gtk2_ardour/opts.cc b/gtk2_ardour/opts.cc index 0af659af08..b5075daa2f 100644 --- a/gtk2_ardour/opts.cc +++ b/gtk2_ardour/opts.cc @@ -74,74 +74,6 @@ print_help (const char *execname) } -static void -list_debug_options () -{ - cerr << _("The following debug options are available. Separate multipe options with commas.\nNames are case-insensitive and can be abbreviated.") << "\n\n"; - cerr << "\tMidiSourceIO\n"; - cerr << "\tMidiPlaylistIO\n"; - cerr << "\tMidiDiskstreamIO\n"; - cerr << "\tSnapBBT\n"; - cerr << "\tConfiguration\n"; - cerr << "\tLatency\n"; - cerr << "\tGraph\n"; - cerr << "\tDestruction\n"; -} - -static int -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; - } - - p = strtok_r (0, ",", &sp); - } - - free (copy); - ARDOUR::set_debug_bits (bits); - return 0; -} - - int ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[]) { @@ -207,7 +139,7 @@ ARDOUR_COMMAND_LINE::parse_opts (int argc, char *argv[]) break; case 'D': - if (parse_debug_options (optarg)) { + if (ARDOUR::parse_debug_options (optarg)) { exit (0); } break; 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', |