From c1160ffc8a5dfb38891b0faa6373c9eecdd8e4c9 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sat, 22 Sep 2007 23:51:00 +0000 Subject: Type oblivious set_port_value interface. git-svn-id: http://svn.drobilla.net/lad/ingen@765 a436a847-0d15-0410-975c-d299462d15a1 --- src/libs/engine/MidiBuffer.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/libs/engine/MidiBuffer.cpp') diff --git a/src/libs/engine/MidiBuffer.cpp b/src/libs/engine/MidiBuffer.cpp index 5a8dbc4e..0e10a44e 100644 --- a/src/libs/engine/MidiBuffer.cpp +++ b/src/libs/engine/MidiBuffer.cpp @@ -30,6 +30,7 @@ namespace Ingen { */ MidiBuffer::MidiBuffer(size_t capacity) : Buffer(DataType(DataType::MIDI), capacity) + , _latest_stamp(0) , _joined_buf(NULL) { if (capacity > UINT32_MAX) { @@ -167,7 +168,7 @@ MidiBuffer::increment() const /** Append a MIDI event to the buffer. * - * \a timestamp must be > the latest event in the buffer, + * \a timestamp must be >= the latest event in the buffer, * and < this_nframes() * * \return true on success @@ -182,6 +183,7 @@ MidiBuffer::append(double timestamp, assert(size > 0); assert(data[0] >= 0x80); + assert(timestamp >= _latest_stamp); *(double*)(_buf->data + _buf->size) = timestamp; _buf->size += sizeof(double); @@ -191,6 +193,7 @@ MidiBuffer::append(double timestamp, _buf->size += size; ++_buf->event_count; + _latest_stamp = timestamp; return true; } -- cgit v1.2.1