* disabled some debugging output
authorHans Baier <hansfbaier@googlemail.com>
Sun, 11 May 2008 21:03:27 +0000 (21:03 +0000)
committerHans Baier <hansfbaier@googlemail.com>
Sun, 11 May 2008 21:03:27 +0000 (21:03 +0000)
* fixed (my) bugs in MidiRingBuffer: aborted reading on corrupted events and event does not match channel mask

git-svn-id: svn://localhost/ardour2/branches/3.0@3333 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/midi_ring_buffer.h
libs/ardour/midi_model.cc

index aaad5769a32a20f3182f2ce4f2359696acd131da..680e2a7b61fbfcb5c304fb241cfbe87233fdfc7c 100644 (file)
@@ -393,7 +393,7 @@ MidiRingBuffer::read(MidiBuffer& dst, nframes_t start, nframes_t end, nframes_t
                if(is_channel_event(first_event_byte) && (g_atomic_int_get(&_force_channel) < 0)) {
                        Byte channel_nr = first_event_byte & 0x0F;
                        if( !(g_atomic_int_get(&_channel_mask) & (1L << channel_nr)) )  {
-                               return 0;
+                               continue;
                        }
                }
 
@@ -403,7 +403,7 @@ MidiRingBuffer::read(MidiBuffer& dst, nframes_t start, nframes_t end, nframes_t
                        if(!ev.buffer()) {
                                std::cerr << "MidiRingBuffer::read WARNING: Skipping MIDI Event with NULL buffer pointer " 
                                     << " and length " << int(ev.size()) << std::endl; 
-                               return 0;
+                               continue;
                        }
                        
                        Byte* write_loc = dst.reserve(ev.time(), ev.size());
index 8a62eba8a6a532d33fe262822b46984177967321..01f0ecc4366e1465ed57554c0f88e6aecb28e063 100644 (file)
@@ -316,14 +316,12 @@ size_t MidiModel::read(MidiRingBuffer& dst, nframes_t start, nframes_t nframes,
                dst.write(_read_iter->time() + stamp_offset - negative_stamp_offset,
                                _read_iter->size(), _read_iter->buffer());
 
-               
-                cerr << this << " MidiModel::read event @ " << _read_iter->time()  
-                << " type: " << hex << int(_read_iter->type()) << dec 
+                //cerr << this << " MidiModel::read event @ " << _read_iter->time()  
+                //<< " type: " << hex << int(_read_iter->type()) << dec 
                 //<< " note: " << int(_read_iter->note()) 
                 //<< " velocity: " << int(_read_iter->velocity()) 
-                << endl;
+                //<< endl;
                 
-
                ++_read_iter;
                ++read_events;
        }