diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-05-02 18:44:04 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-05-02 18:44:04 -0400 |
commit | 6ffd8a954363475fb4b0aa15320fbb10ed3acb71 (patch) | |
tree | ebcf031d4a4843e7389c3ca4ca862205b3ffd553 /libs/ardour/ardour | |
parent | 27cff1dc01c11c6ffb8b602fb50ffafddb19fbf0 (diff) |
a variety of changes to finalize (?) (MIDI) SceneChange functionality
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/midi_scene_change.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/midi_scene_changer.h | 6 | ||||
-rw-r--r-- | libs/ardour/ardour/scene_change.h | 8 | ||||
-rw-r--r-- | libs/ardour/ardour/scene_changer.h | 1 |
4 files changed, 8 insertions, 9 deletions
diff --git a/libs/ardour/ardour/midi_scene_change.h b/libs/ardour/ardour/midi_scene_change.h index 86793c57fb..1a27446367 100644 --- a/libs/ardour/ardour/midi_scene_change.h +++ b/libs/ardour/ardour/midi_scene_change.h @@ -32,7 +32,7 @@ class MidiPort; class MIDISceneChange : public SceneChange { public: - MIDISceneChange (framepos_t time, int channel, int bank = -1, int program = -1); + MIDISceneChange (int channel, int bank = -1, int program = -1); MIDISceneChange (const XMLNode&, int version); ~MIDISceneChange (); diff --git a/libs/ardour/ardour/midi_scene_changer.h b/libs/ardour/ardour/midi_scene_changer.h index 369e47d9ea..e2c62a2656 100644 --- a/libs/ardour/ardour/midi_scene_changer.h +++ b/libs/ardour/ardour/midi_scene_changer.h @@ -20,6 +20,8 @@ #ifndef __libardour_midi_scene_changer_h__ #define __libardour_midi_scene_changer_h__ +#include <glibmm/threads.h> + #include "ardour/scene_changer.h" namespace ARDOUR @@ -46,6 +48,7 @@ class MIDISceneChanger : public SceneChanger MIDI::Port* input_port; boost::shared_ptr<MidiPort> output_port; + Glib::Threads::RWLock scene_lock; Scenes scenes; bool _recording; framepos_t last_bank_message_time; @@ -57,7 +60,8 @@ class MIDISceneChanger : public SceneChanger void gather (); bool recording () const; void jump_to (int bank, int program); - void deliver (MidiBuffer&, framepos_t, boost::shared_ptr<MIDISceneChange>); + void rt_deliver (MidiBuffer&, framepos_t, boost::shared_ptr<MIDISceneChange>); + void non_rt_deliver (boost::shared_ptr<MIDISceneChange>); void bank_change_input (MIDI::Parser&, unsigned short, int channel); void program_change_input (MIDI::Parser&, MIDI::byte, int channel); diff --git a/libs/ardour/ardour/scene_change.h b/libs/ardour/ardour/scene_change.h index b81766b0ea..1f856beedf 100644 --- a/libs/ardour/ardour/scene_change.h +++ b/libs/ardour/ardour/scene_change.h @@ -30,17 +30,11 @@ namespace ARDOUR class SceneChange : public PBD::Stateful { public: - SceneChange (framepos_t t) : _time (t) {}; + SceneChange () {}; virtual ~SceneChange () {}; - void set_time (framepos_t); - framepos_t time() const { return _time; } - static boost::shared_ptr<SceneChange> factory (const XMLNode&, int version); static std::string xml_node_name; - - private: - framepos_t _time; }; } /* namespace */ diff --git a/libs/ardour/ardour/scene_changer.h b/libs/ardour/ardour/scene_changer.h index d5ba984e92..e171a23094 100644 --- a/libs/ardour/ardour/scene_changer.h +++ b/libs/ardour/ardour/scene_changer.h @@ -48,6 +48,7 @@ class SceneChanger : public SessionHandleRef virtual ~SceneChanger () {}; virtual void run (framepos_t start, framepos_t end) = 0; + virtual void locate (framepos_t where) = 0; }; } /* namespace */ |