#endif
if (_size + stamp_size + size >= _capacity) {
- cerr << "MidiBuffer::push_back2 failed (buffer is full; _size = " << _size << " capacity "
+ cerr << "MidiBuffer::push_back2 failed (buffer is full; _size = " << _size << " capacity "
<< _capacity << " stamp " << stamp_size << " size = " << size << ")" << endl;
PBD::stacktrace (cerr, 20);
return false;
/* two events at identical times. we need to determine
the order in which they should occur.
-
+
the rule is:
-
+
Controller messages
Program Change
Note Off
* if "sz" is non-zero, there is data to be merged from "other"
* into this buffer before we do anything else, corresponding
* to the events from "other" that we skipped while advancing
- * "them".
+ * "them".
*/
if (bytes_to_merge) {
memcpy (_data + us.offset, other._data + merge_offset, bytes_to_merge);
/* update iterator to our own events. this is a miserable hack */
us.offset += bytes_to_merge;
- }
+ }
/* if we're at the end of the other buffer, we're done */
if ((*us).time() == (*them).time()) {
- DEBUG_TRACE (DEBUG::MidiIO,
+ DEBUG_TRACE (DEBUG::MidiIO,
string_compose ("simultaneous MIDI events discovered during merge, times %1/%2 status %3/%4\n",
(*us).time(), (*them).time(),
(int) *(_data + us.offset + sizeof (TimeType)),
if (them_first) {
/* need to skip the event pointed to by 'us'
since its at the same time as 'them'
- (still), and we'll enter
+ (still), and we'll enter
*/
if (us != end()) {
_size += other._size - them.offset;
assert(_size <= _capacity);
break;
- }
+ }
}
return true;