22 #include <glibmm/threads.h>
30 class MIDISceneChange;
57 typedef std::multimap<samplepos_t,std::shared_ptr<MIDISceneChange> >
Scenes;
std::list< Location * > LocationList
uint8_t program_at(samplepos_t, uint8_t channel)
std::shared_ptr< MidiPort > input_port
void jump_to(int bank, int program)
void gather(const Locations::LocationList &)
void set_output_port(std::shared_ptr< MidiPort >)
samplepos_t last_program_message_time
std::multimap< samplepos_t, std::shared_ptr< MIDISceneChange > > Scenes
unsigned short current_bank
uint8_t bank_at(samplepos_t, uint8_t channel)
PBD::ScopedConnectionList incoming_connections
void program_change_input(MIDI::Parser &, MIDI::byte, int channel)
void run(samplepos_t start, samplepos_t end)
Glib::Threads::RWLock scene_lock
std::shared_ptr< MidiPort > output_port
PBD::Signal< void()> MIDIOutputActivity
void non_rt_deliver(std::shared_ptr< MIDISceneChange >)
void rt_deliver(MidiBuffer &, samplepos_t, std::shared_ptr< MIDISceneChange >)
bool have_seen_bank_changes
void set_input_port(std::shared_ptr< MidiPort >)
int last_delivered_program
void bank_change_input(MIDI::Parser &, unsigned short, int channel)
PBD::Signal< void()> MIDIInputActivity
MIDISceneChanger(Session &)
PBD::PropertyDescriptor< timepos_t > start
Temporal::samplepos_t samplepos_t