* Quick Fix: assertion converted into warning in MidiModel::write_to
git-svn-id: svn://localhost/ardour2/branches/3.0@3337 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
d467245152
commit
277bfa35d5
@ -879,8 +879,8 @@ XMLNode& MidiModel::DeltaCommand::get_state()
|
||||
|
||||
struct EventTimeComparator {
|
||||
typedef const MIDI::Event* value_type;
|
||||
inline bool operator()(const MIDI::Event* a, const MIDI::Event* b) const {
|
||||
return a->time() >= b->time();
|
||||
inline bool operator()(const MIDI::Event& a, const MIDI::Event& b) const {
|
||||
return a.time() >= b.time();
|
||||
}
|
||||
};
|
||||
|
||||
@ -893,14 +893,34 @@ struct EventTimeComparator {
|
||||
*/
|
||||
bool MidiModel::write_to(boost::shared_ptr<MidiSource> source)
|
||||
{
|
||||
/*
|
||||
EventTimeComparator comp;
|
||||
typedef std::priority_queue<
|
||||
const MIDI::Event*,
|
||||
std::deque<MIDI::Event>,
|
||||
EventTimeComparator> MidiEvents;
|
||||
|
||||
MidiEvents events(comp);
|
||||
*/
|
||||
|
||||
read_lock();
|
||||
|
||||
const NoteMode old_note_mode = _note_mode;
|
||||
_note_mode = Sustained;
|
||||
|
||||
for (const_iterator i = begin(); i != end(); ++i) {
|
||||
//events.push(*i);
|
||||
source->append_event_unlocked(Frames, *i);
|
||||
}
|
||||
|
||||
/*
|
||||
// TODO: As of now, this is still necessary, because there are some events appended whose
|
||||
// times are earlier than the preceding events
|
||||
while(!events.empty()) {
|
||||
source->append_event_unlocked(Frames, events.top());
|
||||
events.pop();
|
||||
}
|
||||
*/
|
||||
|
||||
_note_mode = old_note_mode;
|
||||
|
||||
|
@ -507,7 +507,11 @@ SMFSource::append_event_unlocked(EventTimeUnit unit, const MIDI::Event& ev)
|
||||
printf("\n");
|
||||
|
||||
assert(ev.time() >= 0);
|
||||
assert(ev.time() >= _last_ev_time);
|
||||
|
||||
if (ev.time() < _last_ev_time) {
|
||||
cerr << "SMFSource: Warning: Skipping event with ev.time() < _last_ev_time" << endl;
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t delta_time = 0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user