/* This file is part of Evoral.
- * Copyright (C) 2008 Dave Robillard <http://drobilla.net>
+ * Copyright (C) 2008 David Robillard <http://drobilla.net>
* Copyright (C) 2000-2008 Paul Davis
*
* Evoral is free software; you can redistribute it and/or modify it under the
{
DEBUG_TRACE (DEBUG::Sequence, string_compose ("Created Iterator @ %1 (is end: %2)\n)", t, _is_end));
- if (!_is_end) {
- _lock = seq.read_lock();
- } else {
+ if (_is_end) {
return;
}
- typename Sequence<Time>::ReadLock lock(seq.read_lock());
+ _lock = seq.read_lock();
// Find first note which begins at or after t
_note_iter = seq.note_lower_bound(t);
_force_discrete = other._force_discrete;
_active_patch_change_message = other._active_patch_change_message;
- if (other._lock)
+ if (other._lock) {
_lock = _seq->read_lock();
- else
+ } else {
_lock.reset();
+ }
if (other._control_iter == other._control_iters.end()) {
_control_iter = _control_iters.end();
++tmp;
if (*j == note) {
- DEBUG_TRACE (DEBUG::Sequence, string_compose ("%1\terasing pitch %2 @ %3\n", this, (int)(*i)->note(), (*i)->time()));
+ DEBUG_TRACE (DEBUG::Sequence, string_compose ("%1\terasing pitch %2 @ %3\n", this, (int)(*j)->note(), (*j)->time()));
p.erase (j);
}
} else if (ev.is_cc() && (ev.cc_number() == MIDI_CTL_MSB_BANK || ev.cc_number() == MIDI_CTL_LSB_BANK)) {
/* note bank numbers in our _bank[] array, so that we can write an event when the program change arrives */
if (ev.cc_number() == MIDI_CTL_MSB_BANK) {
- _bank[ev.channel()] &= (0x7f << 7);
+ _bank[ev.channel()] &= ~(0x7f << 7);
_bank[ev.channel()] |= ev.cc_value() << 7;
} else {
- _bank[ev.channel()] &= 0x7f;
+ _bank[ev.channel()] &= ~0x7f;
_bank[ev.channel()] |= ev.cc_value();
}
} else if (ev.is_cc()) {