use playback filter when rendering MIDI; respond to changes in filter by re-rendering
This commit is contained in:
parent
ee67d2d749
commit
9a6350b9c9
|
@ -522,9 +522,14 @@ DiskReader::overwrite_existing_buffers ()
|
|||
RTMidiBuffer* mbuf = rt_midibuffer ();
|
||||
|
||||
if (mbuf) {
|
||||
boost::shared_ptr<MidiTrack> mt = boost::dynamic_pointer_cast<MidiTrack>(_track);
|
||||
MidiChannelFilter* filter = mt ? &mt->playback_filter() : 0;
|
||||
|
||||
PBD::Timing minsert;
|
||||
minsert.start();
|
||||
midi_playlist()->render (0);
|
||||
|
||||
midi_playlist()->render (filter);
|
||||
|
||||
minsert.update();
|
||||
assert (midi_playlist()->rendered());
|
||||
// cerr << "Reading " << name() << " took " << minsert.elapsed() << " microseconds, final size = " << midi_playlist()->rendered()->size() << endl;
|
||||
|
|
|
@ -86,6 +86,9 @@ MidiTrack::MidiTrack (Session& sess, string name, TrackMode mode)
|
|||
, _input_active (true)
|
||||
{
|
||||
_session.SessionLoaded.connect_same_thread (*this, boost::bind (&MidiTrack::restore_controls, this));
|
||||
|
||||
_playback_filter.ChannelModeChanged.connect_same_thread (*this, boost::bind (&Track::playlist_modified, this));
|
||||
_playback_filter.ChannelMaskChanged.connect_same_thread (*this, boost::bind (&Track::playlist_modified, this));
|
||||
}
|
||||
|
||||
MidiTrack::~MidiTrack ()
|
||||
|
|
Loading…
Reference in New Issue
Block a user