From cc543280d9869d4a7b800d547c53e38b13d02cea Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 12 Jun 2015 18:14:09 -0400 Subject: We were 2 more debug "bits" away from overflow, so recast PBD::DEBUG mechanism away from a 64bit integer and toward std::bitset. Clean up a few minor related PBD::DEBUG issues along the way --- libs/ardour/ardour/cycle_timer.h | 4 +- libs/ardour/ardour/debug.h | 80 ++++++++++++++++++++-------------------- libs/ardour/debug.cc | 80 ++++++++++++++++++++-------------------- libs/ardour/midi_buffer.cc | 2 +- libs/ardour/midi_diskstream.cc | 2 +- libs/ardour/midi_port.cc | 24 ++++++------ libs/ardour/midi_ring_buffer.cc | 2 +- libs/ardour/session_events.cc | 11 ------ 8 files changed, 97 insertions(+), 108 deletions(-) (limited to 'libs/ardour') diff --git a/libs/ardour/ardour/cycle_timer.h b/libs/ardour/ardour/cycle_timer.h index cab389ee69..ac19abda1e 100644 --- a/libs/ardour/ardour/cycle_timer.h +++ b/libs/ardour/ardour/cycle_timer.h @@ -42,7 +42,7 @@ class LIBARDOUR_API CycleTimer { public: CycleTimer(const std::string& name) { #ifndef NDEBUG - if (PBD::debug_bits & PBD::DEBUG::CycleTimers) { + if (DEBUG_ENABLED (PBD::DEBUG::CycleTimers)) { _name = name; if (cycles_per_usec == 0) { cycles_per_usec = get_mhz (); @@ -56,7 +56,7 @@ class LIBARDOUR_API CycleTimer { ~CycleTimer() { #ifndef NDEBUG - if (PBD::debug_bits & PBD::DEBUG::CycleTimers) { + if (DEBUG_ENABLED (PBD::DEBUG::CycleTimers)) { _exit = get_cycles(); std::cerr << _name << ": " << (float) (_exit - _entry) / cycles_per_usec << " (" << _entry << ", " << _exit << ')' << std::endl; } diff --git a/libs/ardour/ardour/debug.h b/libs/ardour/ardour/debug.h index 8f4b562905..1c19d855bc 100644 --- a/libs/ardour/ardour/debug.h +++ b/libs/ardour/ardour/debug.h @@ -29,46 +29,46 @@ namespace PBD { namespace DEBUG { - LIBARDOUR_API extern uint64_t MidiSourceIO; - LIBARDOUR_API extern uint64_t MidiPlaylistIO; - LIBARDOUR_API extern uint64_t MidiDiskstreamIO; - LIBARDOUR_API extern uint64_t SnapBBT; - LIBARDOUR_API extern uint64_t Latency; - LIBARDOUR_API extern uint64_t LatencyCompensation; - LIBARDOUR_API extern uint64_t Peaks; - LIBARDOUR_API extern uint64_t Processors; - LIBARDOUR_API extern uint64_t ProcessThreads; - LIBARDOUR_API extern uint64_t Graph; - LIBARDOUR_API extern uint64_t Destruction; - LIBARDOUR_API extern uint64_t MTC; - LIBARDOUR_API extern uint64_t LTC; - LIBARDOUR_API extern uint64_t Transport; - LIBARDOUR_API extern uint64_t Slave; - LIBARDOUR_API extern uint64_t SessionEvents; - LIBARDOUR_API extern uint64_t MidiIO; - LIBARDOUR_API extern uint64_t MackieControl; - LIBARDOUR_API extern uint64_t MidiClock; - LIBARDOUR_API extern uint64_t Monitor; - LIBARDOUR_API extern uint64_t Solo; - LIBARDOUR_API extern uint64_t AudioPlayback; - LIBARDOUR_API extern uint64_t Panning; - LIBARDOUR_API extern uint64_t LV2; - LIBARDOUR_API extern uint64_t CaptureAlignment; - LIBARDOUR_API extern uint64_t PluginManager; - LIBARDOUR_API extern uint64_t AudioUnits; - LIBARDOUR_API extern uint64_t ControlProtocols; - LIBARDOUR_API extern uint64_t CycleTimers; - LIBARDOUR_API extern uint64_t MidiTrackers; - LIBARDOUR_API extern uint64_t Layering; - LIBARDOUR_API extern uint64_t TempoMath; - LIBARDOUR_API extern uint64_t TempoMap; - LIBARDOUR_API extern uint64_t OrderKeys; - LIBARDOUR_API extern uint64_t Automation; - LIBARDOUR_API extern uint64_t WiimoteControl; - LIBARDOUR_API extern uint64_t Ports; - LIBARDOUR_API extern uint64_t AudioEngine; - LIBARDOUR_API extern uint64_t Soundcloud; - LIBARDOUR_API extern uint64_t Butler; + LIBARDOUR_API extern DebugBits MidiSourceIO; + LIBARDOUR_API extern DebugBits MidiPlaylistIO; + LIBARDOUR_API extern DebugBits MidiDiskstreamIO; + LIBARDOUR_API extern DebugBits SnapBBT; + LIBARDOUR_API extern DebugBits Latency; + LIBARDOUR_API extern DebugBits LatencyCompensation; + LIBARDOUR_API extern DebugBits Peaks; + LIBARDOUR_API extern DebugBits Processors; + LIBARDOUR_API extern DebugBits ProcessThreads; + LIBARDOUR_API extern DebugBits Graph; + LIBARDOUR_API extern DebugBits Destruction; + LIBARDOUR_API extern DebugBits MTC; + LIBARDOUR_API extern DebugBits LTC; + LIBARDOUR_API extern DebugBits Transport; + LIBARDOUR_API extern DebugBits Slave; + LIBARDOUR_API extern DebugBits SessionEvents; + LIBARDOUR_API extern DebugBits MidiIO; + LIBARDOUR_API extern DebugBits MackieControl; + LIBARDOUR_API extern DebugBits MidiClock; + LIBARDOUR_API extern DebugBits Monitor; + LIBARDOUR_API extern DebugBits Solo; + LIBARDOUR_API extern DebugBits AudioPlayback; + LIBARDOUR_API extern DebugBits Panning; + LIBARDOUR_API extern DebugBits LV2; + LIBARDOUR_API extern DebugBits CaptureAlignment; + LIBARDOUR_API extern DebugBits PluginManager; + LIBARDOUR_API extern DebugBits AudioUnits; + LIBARDOUR_API extern DebugBits ControlProtocols; + LIBARDOUR_API extern DebugBits CycleTimers; + LIBARDOUR_API extern DebugBits MidiTrackers; + LIBARDOUR_API extern DebugBits Layering; + LIBARDOUR_API extern DebugBits TempoMath; + LIBARDOUR_API extern DebugBits TempoMap; + LIBARDOUR_API extern DebugBits OrderKeys; + LIBARDOUR_API extern DebugBits Automation; + LIBARDOUR_API extern DebugBits WiimoteControl; + LIBARDOUR_API extern DebugBits Ports; + LIBARDOUR_API extern DebugBits AudioEngine; + LIBARDOUR_API extern DebugBits Soundcloud; + LIBARDOUR_API extern DebugBits Butler; } } diff --git a/libs/ardour/debug.cc b/libs/ardour/debug.cc index c0993e9da6..0a00e896d9 100644 --- a/libs/ardour/debug.cc +++ b/libs/ardour/debug.cc @@ -25,45 +25,45 @@ using namespace std; -uint64_t PBD::DEBUG::MidiSourceIO = PBD::new_debug_bit ("midisourceio"); -uint64_t PBD::DEBUG::MidiPlaylistIO = PBD::new_debug_bit ("midiplaylistio"); -uint64_t PBD::DEBUG::MidiDiskstreamIO = PBD::new_debug_bit ("mididiskstreamio"); -uint64_t PBD::DEBUG::SnapBBT = PBD::new_debug_bit ("snapbbt"); -uint64_t PBD::DEBUG::Latency = PBD::new_debug_bit ("latency"); -uint64_t PBD::DEBUG::LatencyCompensation = PBD::new_debug_bit ("latencycompensation"); -uint64_t PBD::DEBUG::Peaks = PBD::new_debug_bit ("peaks"); -uint64_t PBD::DEBUG::Processors = PBD::new_debug_bit ("processors"); -uint64_t PBD::DEBUG::ProcessThreads = PBD::new_debug_bit ("processthreads"); -uint64_t PBD::DEBUG::Graph = PBD::new_debug_bit ("graph"); -uint64_t PBD::DEBUG::Destruction = PBD::new_debug_bit ("destruction"); -uint64_t PBD::DEBUG::MTC = PBD::new_debug_bit ("mtc"); -uint64_t PBD::DEBUG::LTC = PBD::new_debug_bit ("ltc"); -uint64_t PBD::DEBUG::Transport = PBD::new_debug_bit ("transport"); -uint64_t PBD::DEBUG::Slave = PBD::new_debug_bit ("slave"); -uint64_t PBD::DEBUG::SessionEvents = PBD::new_debug_bit ("sessionevents"); -uint64_t PBD::DEBUG::MidiIO = PBD::new_debug_bit ("midiio"); -uint64_t PBD::DEBUG::MackieControl = PBD::new_debug_bit ("mackiecontrol"); -uint64_t PBD::DEBUG::MidiClock = PBD::new_debug_bit ("midiclock"); -uint64_t PBD::DEBUG::Monitor = PBD::new_debug_bit ("monitor"); -uint64_t PBD::DEBUG::Solo = PBD::new_debug_bit ("solo"); -uint64_t PBD::DEBUG::AudioPlayback = PBD::new_debug_bit ("audioplayback"); -uint64_t PBD::DEBUG::Panning = PBD::new_debug_bit ("panning"); -uint64_t PBD::DEBUG::LV2 = PBD::new_debug_bit ("lv2"); -uint64_t PBD::DEBUG::CaptureAlignment = PBD::new_debug_bit ("capturealignment"); -uint64_t PBD::DEBUG::PluginManager = PBD::new_debug_bit ("pluginmanager"); -uint64_t PBD::DEBUG::AudioUnits = PBD::new_debug_bit ("audiounits"); -uint64_t PBD::DEBUG::ControlProtocols = PBD::new_debug_bit ("controlprotocols"); -uint64_t PBD::DEBUG::CycleTimers = PBD::new_debug_bit ("cycletimers"); -uint64_t PBD::DEBUG::MidiTrackers = PBD::new_debug_bit ("miditrackers"); -uint64_t PBD::DEBUG::Layering = PBD::new_debug_bit ("layering"); -uint64_t PBD::DEBUG::TempoMath = PBD::new_debug_bit ("tempomath"); -uint64_t PBD::DEBUG::TempoMap = PBD::new_debug_bit ("tempomap"); -uint64_t PBD::DEBUG::OrderKeys = PBD::new_debug_bit ("orderkeys"); -uint64_t PBD::DEBUG::Automation = PBD::new_debug_bit ("automation"); -uint64_t PBD::DEBUG::WiimoteControl = PBD::new_debug_bit ("wiimotecontrol"); -uint64_t PBD::DEBUG::Ports = PBD::new_debug_bit ("Ports"); -uint64_t PBD::DEBUG::AudioEngine = PBD::new_debug_bit ("AudioEngine"); -uint64_t PBD::DEBUG::Soundcloud = PBD::new_debug_bit ("Soundcloud"); -uint64_t PBD::DEBUG::Butler = PBD::new_debug_bit ("Butler"); +PBD::DebugBits PBD::DEBUG::MidiSourceIO = PBD::new_debug_bit ("midisourceio"); +PBD::DebugBits PBD::DEBUG::MidiPlaylistIO = PBD::new_debug_bit ("midiplaylistio"); +PBD::DebugBits PBD::DEBUG::MidiDiskstreamIO = PBD::new_debug_bit ("mididiskstreamio"); +PBD::DebugBits PBD::DEBUG::SnapBBT = PBD::new_debug_bit ("snapbbt"); +PBD::DebugBits PBD::DEBUG::Latency = PBD::new_debug_bit ("latency"); +PBD::DebugBits PBD::DEBUG::LatencyCompensation = PBD::new_debug_bit ("latencycompensation"); +PBD::DebugBits PBD::DEBUG::Peaks = PBD::new_debug_bit ("peaks"); +PBD::DebugBits PBD::DEBUG::Processors = PBD::new_debug_bit ("processors"); +PBD::DebugBits PBD::DEBUG::ProcessThreads = PBD::new_debug_bit ("processthreads"); +PBD::DebugBits PBD::DEBUG::Graph = PBD::new_debug_bit ("graph"); +PBD::DebugBits PBD::DEBUG::Destruction = PBD::new_debug_bit ("destruction"); +PBD::DebugBits PBD::DEBUG::MTC = PBD::new_debug_bit ("mtc"); +PBD::DebugBits PBD::DEBUG::LTC = PBD::new_debug_bit ("ltc"); +PBD::DebugBits PBD::DEBUG::Transport = PBD::new_debug_bit ("transport"); +PBD::DebugBits PBD::DEBUG::Slave = PBD::new_debug_bit ("slave"); +PBD::DebugBits PBD::DEBUG::SessionEvents = PBD::new_debug_bit ("sessionevents"); +PBD::DebugBits PBD::DEBUG::MidiIO = PBD::new_debug_bit ("midiio"); +PBD::DebugBits PBD::DEBUG::MackieControl = PBD::new_debug_bit ("mackiecontrol"); +PBD::DebugBits PBD::DEBUG::MidiClock = PBD::new_debug_bit ("midiclock"); +PBD::DebugBits PBD::DEBUG::Monitor = PBD::new_debug_bit ("monitor"); +PBD::DebugBits PBD::DEBUG::Solo = PBD::new_debug_bit ("solo"); +PBD::DebugBits PBD::DEBUG::AudioPlayback = PBD::new_debug_bit ("audioplayback"); +PBD::DebugBits PBD::DEBUG::Panning = PBD::new_debug_bit ("panning"); +PBD::DebugBits PBD::DEBUG::LV2 = PBD::new_debug_bit ("lv2"); +PBD::DebugBits PBD::DEBUG::CaptureAlignment = PBD::new_debug_bit ("capturealignment"); +PBD::DebugBits PBD::DEBUG::PluginManager = PBD::new_debug_bit ("pluginmanager"); +PBD::DebugBits PBD::DEBUG::AudioUnits = PBD::new_debug_bit ("audiounits"); +PBD::DebugBits PBD::DEBUG::ControlProtocols = PBD::new_debug_bit ("controlprotocols"); +PBD::DebugBits PBD::DEBUG::CycleTimers = PBD::new_debug_bit ("cycletimers"); +PBD::DebugBits PBD::DEBUG::MidiTrackers = PBD::new_debug_bit ("miditrackers"); +PBD::DebugBits PBD::DEBUG::Layering = PBD::new_debug_bit ("layering"); +PBD::DebugBits PBD::DEBUG::TempoMath = PBD::new_debug_bit ("tempomath"); +PBD::DebugBits PBD::DEBUG::TempoMap = PBD::new_debug_bit ("tempomap"); +PBD::DebugBits PBD::DEBUG::OrderKeys = PBD::new_debug_bit ("orderkeys"); +PBD::DebugBits PBD::DEBUG::Automation = PBD::new_debug_bit ("automation"); +PBD::DebugBits PBD::DEBUG::WiimoteControl = PBD::new_debug_bit ("wiimotecontrol"); +PBD::DebugBits PBD::DEBUG::Ports = PBD::new_debug_bit ("Ports"); +PBD::DebugBits PBD::DEBUG::AudioEngine = PBD::new_debug_bit ("AudioEngine"); +PBD::DebugBits PBD::DEBUG::Soundcloud = PBD::new_debug_bit ("Soundcloud"); +PBD::DebugBits PBD::DEBUG::Butler = PBD::new_debug_bit ("Butler"); diff --git a/libs/ardour/midi_buffer.cc b/libs/ardour/midi_buffer.cc index ee6bd13d51..b1b09e4c98 100644 --- a/libs/ardour/midi_buffer.cc +++ b/libs/ardour/midi_buffer.cc @@ -163,7 +163,7 @@ MidiBuffer::push_back(TimeType time, size_t size, const uint8_t* data) const size_t stamp_size = sizeof(TimeType); #ifndef NDEBUG - if (DEBUG::MidiIO & PBD::debug_bits) { + if (DEBUG_ENABLED(DEBUG::MidiIO)) { DEBUG_STR_DECL(a); DEBUG_STR_APPEND(a, string_compose ("midibuffer %1 push event @ %2 sz %3 ", this, time, size)); for (size_t i=0; i < size; ++i) { diff --git a/libs/ardour/midi_diskstream.cc b/libs/ardour/midi_diskstream.cc index e8b23b3431..f17b38d7ea 100644 --- a/libs/ardour/midi_diskstream.cc +++ b/libs/ardour/midi_diskstream.cc @@ -414,7 +414,7 @@ MidiDiskstream::process (BufferSet& bufs, framepos_t transport_frame, pframes_t break; } #ifndef NDEBUG - if (DEBUG::MidiIO & PBD::debug_bits) { + if (DEBUG_ENABLED(DEBUG::MidiIO)) { const uint8_t* __data = ev.buffer(); DEBUG_STR_DECL(a); DEBUG_STR_APPEND(a, string_compose ("mididiskstream %1 capture event @ %2 + %3 sz %4 ", this, ev.time(), transport_frame, ev.size())); diff --git a/libs/ardour/midi_port.cc b/libs/ardour/midi_port.cc index 615abede1c..f7a0d0fadb 100644 --- a/libs/ardour/midi_port.cc +++ b/libs/ardour/midi_port.cc @@ -231,18 +231,18 @@ MidiPort::flush_buffers (pframes_t nframes) // event times are in frames, relative to cycle start #ifndef NDEBUG - if (DEBUG::MidiIO & PBD::debug_bits) { - DEBUG_STR_DECL(a); - DEBUG_STR_APPEND(a, string_compose ("MidiPort %1 pop event @ %2 sz %3 ", _buffer, ev.time(), ev.size())); - for (size_t i=0; i < ev.size(); ++i) { - DEBUG_STR_APPEND(a,hex); - DEBUG_STR_APPEND(a,"0x"); - DEBUG_STR_APPEND(a,(int)(ev.buffer()[i])); - DEBUG_STR_APPEND(a,' '); - } - DEBUG_STR_APPEND(a,'\n'); - DEBUG_TRACE (DEBUG::MidiIO, DEBUG_STR(a).str()); - } + if (DEBUG_ENABLED (DEBUG::MidiIO)) { + DEBUG_STR_DECL(a); + DEBUG_STR_APPEND(a, string_compose ("MidiPort %1 pop event @ %2 sz %3 ", _buffer, ev.time(), ev.size())); + for (size_t i=0; i < ev.size(); ++i) { + DEBUG_STR_APPEND(a,hex); + DEBUG_STR_APPEND(a,"0x"); + DEBUG_STR_APPEND(a,(int)(ev.buffer()[i])); + DEBUG_STR_APPEND(a,' '); + } + DEBUG_STR_APPEND(a,'\n'); + DEBUG_TRACE (DEBUG::MidiIO, DEBUG_STR(a).str()); + } #endif assert (ev.time() < (nframes + _global_port_buffer_offset + _port_buffer_offset)); diff --git a/libs/ardour/midi_ring_buffer.cc b/libs/ardour/midi_ring_buffer.cc index 7e88f5ff45..3923e5306a 100644 --- a/libs/ardour/midi_ring_buffer.cc +++ b/libs/ardour/midi_ring_buffer.cc @@ -103,7 +103,7 @@ MidiRingBuffer::read(MidiBuffer& dst, framepos_t start, framepos_t end, frame bool success = read_contents (ev_size, write_loc); #ifndef NDEBUG - if (DEBUG::MidiDiskstreamIO && PBD::debug_bits) { + if (DEBUG_ENABLED (DEBUG::MidiDiskstreamIO)) { DEBUG_STR_DECL(a); DEBUG_STR_APPEND(a, string_compose ("wrote MidiEvent to Buffer (time=%1, start=%2 offset=%3)", ev_time, start, offset)); for (size_t i=0; i < ev_size; ++i) { diff --git a/libs/ardour/session_events.cc b/libs/ardour/session_events.cc index d41b9c5002..53a26363b0 100644 --- a/libs/ardour/session_events.cc +++ b/libs/ardour/session_events.cc @@ -74,11 +74,6 @@ SessionEvent::operator new (size_t) DEBUG_TRACE (DEBUG::SessionEvents, string_compose ("%1 Allocating SessionEvent from %2 ev @ %3 pool size %4 free %5 used %6\n", pthread_name(), p->name(), ev, p->total(), p->available(), p->used())); -#ifndef NDEBUG - if (DEBUG::SessionEvents & PBD::debug_bits) { - // stacktrace (cerr, 40); - } -#endif ev->own_pool = p; return ev; } @@ -94,12 +89,6 @@ SessionEvent::operator delete (void *ptr, size_t /*size*/) pthread_name(), ev, enum_2_string (ev->type), enum_2_string (ev->action), p->name(), ev->own_pool->name(), ev->own_pool->total(), ev->own_pool->available(), ev->own_pool->used() )); -#ifndef NDEBUG - if (DEBUG::SessionEvents & PBD::debug_bits) { - // stacktrace (cerr, 40); - } -#endif - if (p && p == ev->own_pool) { p->release (ptr); } else { -- cgit v1.2.3