From f6d29abfc75c460b9e35717f2907e4e61bf38058 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Mon, 2 Jun 2014 12:19:35 +0200 Subject: [PATCH] DummyBackend: fix midi event mux+sorting --- libs/backends/dummy/dummy_audiobackend.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libs/backends/dummy/dummy_audiobackend.cc b/libs/backends/dummy/dummy_audiobackend.cc index be157f12f0..5af4f3066c 100644 --- a/libs/backends/dummy/dummy_audiobackend.cc +++ b/libs/backends/dummy/dummy_audiobackend.cc @@ -1264,6 +1264,12 @@ DummyMidiPort::DummyMidiPort (DummyAudioBackend &b, const std::string& name, Por DummyMidiPort::~DummyMidiPort () { } +struct MidiEventSorter { + bool operator() (const boost::shared_ptr& a, const boost::shared_ptr& b) { + return *a < *b; + } +}; + void* DummyMidiPort::get_buffer (pframes_t /* nframes */) { if (is_input ()) { @@ -1276,7 +1282,7 @@ void* DummyMidiPort::get_buffer (pframes_t /* nframes */) _buffer.push_back (boost::shared_ptr(new DummyMidiEvent (**it))); } } - std::sort (_buffer.begin (), _buffer.end ()); + std::sort (_buffer.begin (), _buffer.end (), MidiEventSorter()); } else if (is_output () && is_physical () && is_terminal()) { _buffer.clear (); }