extend DEBUG_TRACE to waves_midi_event

This commit is contained in:
Paul Davis 2014-10-29 23:17:30 -04:00
parent 2c1c92e8de
commit 2ed2ba28ec

View file

@ -16,10 +16,15 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/ */
#include "pbd/debug.h"
#include "pbd/compose.h"
#include "memory.h" #include "memory.h"
#include "waves_midi_event.h" #include "waves_midi_event.h"
using namespace ARDOUR; using namespace ARDOUR;
using namespace PBD;
WavesMidiEvent::WavesMidiEvent (PmTimestamp timestamp) WavesMidiEvent::WavesMidiEvent (PmTimestamp timestamp)
: _size (0) : _size (0)
@ -37,24 +42,52 @@ WavesMidiEvent::WavesMidiEvent (PmTimestamp timestamp, const uint8_t* data, size
, _data (data && datalen ? new uint8_t[ (datalen < sizeof (PmMessage)) ? sizeof (PmMessage) : datalen] : NULL) , _data (data && datalen ? new uint8_t[ (datalen < sizeof (PmMessage)) ? sizeof (PmMessage) : datalen] : NULL)
, _state (data && datalen ? COMPLETE : BROKEN) , _state (data && datalen ? COMPLETE : BROKEN)
{ {
// COMMENTED DBG LOGS */ std::cout << "WavesMidiEvent::WavesMidiEvent (const WavesMidiEvent& source) : Size=" << _size << "---" << datalen << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, string_compose ( "WavesMidiEvent::WavesMidiEvent (const WavesMidiEvent& source) : Size=%1---%2\n", _size, datalen));
if (_state == COMPLETE) { if (_state == COMPLETE) {
// COMMENTED DBG LOGS */ std::cout << "\t\t\t Allocated Size=" << ((datalen < sizeof (PmMessage)) ? sizeof (PmMessage) : datalen) << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, string_compose ( "\t\t\t Allocated Size=%1\n", ((datalen < sizeof (PmMessage)) ? sizeof (PmMessage) : datalen)));
memcpy (_data, data, datalen); memcpy (_data, data, datalen);
#ifndef NDEBUG
if (DEBUG::WavesMIDI & PBD::debug_bits) {
DEBUG_STR_DECL(a);
for (size_t i=0; i < datalen; ++i) {
DEBUG_STR_APPEND(a,std::hex);
DEBUG_STR_APPEND(a,"0x");
DEBUG_STR_APPEND(a,(int)data[i]);
DEBUG_STR_APPEND(a,' ');
}
DEBUG_STR_APPEND(a,'\n');
DEBUG_TRACE (DEBUG::WavesMIDI, DEBUG_STR(a).str());
}
#endif
} }
} }
WavesMidiEvent::WavesMidiEvent (const WavesMidiEvent& source) WavesMidiEvent::WavesMidiEvent (const WavesMidiEvent& source)
: _size (source.size ()) : _size (source.size ())
, _timestamp (source.timestamp ()) , _timestamp (source.timestamp ())
, _data ((source.size () && source.const_data ()) ? new uint8_t[ (source.size () < sizeof (PmMessage)) ? sizeof (PmMessage) : source.size ()] : NULL) , _data ((source.size () && source.const_data ()) ? new uint8_t[ (source.size () < sizeof (PmMessage)) ? sizeof (PmMessage) : source.size ()] : NULL)
, _state (source.state () ) , _state (source.state () )
{ {
// COMMENTED DBG LOGS */ std::cout << "WavesMidiEvent::WavesMidiEvent (const WavesMidiEvent& source) : Size=" << _size << "---" << source.size () << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, string_compose ( "WavesMidiEvent::WavesMidiEvent (const WavesMidiEvent& source) : Size=%1---%2\n", _size, source.size ()));
// COMMENTED DBG LOGS */ std::cout << "\t\t\t Allocated Size=" << ((source.size () < sizeof (PmMessage)) ? sizeof (PmMessage) : source.size ()) << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, string_compose ( "\t\t\t Allocated Size=%1\n", ((source.size () < sizeof (PmMessage)) ? sizeof (PmMessage) : source.size ())));
if (_data && source.const_data ()) { if (_data && source.const_data ()) {
memcpy (_data, source.const_data (), source.size ()); memcpy (_data, source.const_data (), source.size ());
#ifndef NDEBUG
if (DEBUG::WavesMIDI & PBD::debug_bits) {
DEBUG_STR_DECL(a);
for (size_t i=0; i < source.size(); ++i) {
DEBUG_STR_APPEND(a,std::hex);
DEBUG_STR_APPEND(a,"0x");
DEBUG_STR_APPEND(a,(int)source.const_data()[i]);
DEBUG_STR_APPEND(a,' ');
}
DEBUG_STR_APPEND(a,'\n');
DEBUG_TRACE (DEBUG::WavesMIDI, DEBUG_STR(a).str());
}
#endif
} }
} }
@ -71,7 +104,7 @@ WavesMidiEvent *WavesMidiEvent::append_data (const PmEvent &midi_event)
case INCOMPLETE: case INCOMPLETE:
break; break;
default: default:
// COMMENTED DBG LOGS */ std::cout << "WavesMidiEvent::append_data (): NO case INCOMPLETE" << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, "WavesMidiEvent::append_data (): NO case INCOMPLETE\n");
_state = BROKEN; _state = BROKEN;
return NULL; return NULL;
} }
@ -84,25 +117,29 @@ WavesMidiEvent *WavesMidiEvent::append_data (const PmEvent &midi_event)
_data = new unsigned char [sysex ? PM_DEFAULT_SYSEX_BUFFER_SIZE : sizeof (PmMessage)]; _data = new unsigned char [sysex ? PM_DEFAULT_SYSEX_BUFFER_SIZE : sizeof (PmMessage)];
if (!sysex) if (!sysex)
{ {
// COMMENTED DBG LOGS */ std::cout << "WavesMidiEvent::append_data (): SHORT MSG" << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, "WavesMidiEvent::append_data (): SHORT MSG\n");
* (PmMessage*)_data = 0; * (PmMessage*)_data = 0;
switch (message_size) { switch (message_size) {
case 1: case 1:
case 3: case 3:
_size = message_size; _size = message_size;
// COMMENTED DBG LOGS */ std::cout << "WavesMidiEvent::append_data (): size = " << _size << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, string_compose ( "WavesMidiEvent::append_data (): size = %1\n", _size));
break; break;
default: default:
// COMMENTED DBG LOGS */ std::cout << "WavesMidiEvent::append_data (): WRONG MESSAGE SIZE (" << message_size << ") in the message: "; DEBUG_TRACE (DEBUG::WavesMIDI, string_compose ( "WavesMidiEvent::append_data (): WRONG MESSAGE SIZE (%1 not %2) %3 [%4 %5 %6 %7] %8\n",
// COMMENTED DBG LOGS */ std::cout << std::hex << (int) ((unsigned char*)&midi_event)[0] << " " << (int) ((unsigned char*)&midi_event)[1] << " " << (int) ((unsigned char*)&midi_event)[2] << " " << (int) ((unsigned char*)&midi_event)[3] << std::dec << std::endl; message_size,
std::hex,
(int) ((unsigned char*)&midi_event)[0],
(int) ((unsigned char*)&midi_event)[1],
(int) ((unsigned char*)&midi_event)[2],
(int) ((unsigned char*)&midi_event)[3],
std::dec));
_state = BROKEN; _state = BROKEN;
return NULL; return NULL;
} }
// COMMENTED DBG LOGS */ std::cout << "\t size = " << _size << std::endl;
memcpy (_data, &midi_event.message, _size); memcpy (_data, &midi_event.message, _size);
// COMMENTED DBG LOGS */ std::cout << "\t\t size = " << _size << std::endl;
_state = COMPLETE; _state = COMPLETE;
// COMMENTED DBG LOGS */ std::cout << "\t\t\t size = " << _size << std::endl; DEBUG_TRACE (DEBUG::WavesMIDI, string_compose ( "\t\t\t size = %1\n", _size));
return NULL; return NULL;
} }
} }
@ -134,7 +171,6 @@ WavesMidiEvent *WavesMidiEvent::append_data (const PmEvent &midi_event)
return NULL; return NULL;
} }
size_t WavesMidiEvent::_midi_message_size (PmMessage midi_message) size_t WavesMidiEvent::_midi_message_size (PmMessage midi_message)
{ {
static int high_lengths[] = { static int high_lengths[] = {