diff options
author | David Robillard <d@drobilla.net> | 2014-12-17 16:05:27 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-12-17 16:07:29 -0500 |
commit | a7067557107fc2f01586a88bb8b0a097914798ea (patch) | |
tree | c23f5f2e0386655c4d5e43ca714718e6bc1b76ac /libs/ardour/ardour/midi_model.h | |
parent | 1fa9edd872bdbfe7651c822698235434ffe59540 (diff) |
Fix various MIDI locking issues.
Attempt to make mistakes much less likely in the future by statically requiring
caller to pass scoped locks where necessary.
Diffstat (limited to 'libs/ardour/ardour/midi_model.h')
-rw-r--r-- | libs/ardour/ardour/midi_model.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/libs/ardour/ardour/midi_model.h b/libs/ardour/ardour/midi_model.h index 4d12839625..1988c1a2d1 100644 --- a/libs/ardour/ardour/midi_model.h +++ b/libs/ardour/ardour/midi_model.h @@ -238,10 +238,15 @@ public: void apply_command (Session& session, Command* cmd); void apply_command_as_subcommand (Session& session, Command* cmd); - bool sync_to_source (); - bool write_to(boost::shared_ptr<MidiSource> source); - bool write_section_to (boost::shared_ptr<MidiSource> source, Evoral::MusicalTime begin = Evoral::MinMusicalTime, - Evoral::MusicalTime end = Evoral::MaxMusicalTime); + bool sync_to_source (const Glib::Threads::Mutex::Lock& source_lock); + + bool write_to(boost::shared_ptr<MidiSource> source, + const Glib::Threads::Mutex::Lock& source_lock); + + bool write_section_to(boost::shared_ptr<MidiSource> source, + const Glib::Threads::Mutex::Lock& source_lock, + Evoral::MusicalTime begin = Evoral::MinMusicalTime, + Evoral::MusicalTime end = Evoral::MaxMusicalTime); // MidiModel doesn't use the normal AutomationList serialisation code // since controller data is stored in the .mid |