Ardour  9.0-pre0-582-g084a23a80d
ARDOUR::MIDISceneChanger Class Reference

#include <midi_scene_changer.h>

Inheritance diagram for ARDOUR::MIDISceneChanger:
[legend]

Public Member Functions

 MIDISceneChanger (Session &)
 
 ~MIDISceneChanger ()
 
void run (samplepos_t start, samplepos_t end)
 
void set_input_port (std::shared_ptr< MidiPort >)
 
void set_output_port (std::shared_ptr< MidiPort >)
 
uint8_t bank_at (samplepos_t, uint8_t channel)
 
uint8_t program_at (samplepos_t, uint8_t channel)
 
void set_recording (bool)
 
void locate (samplepos_t)
 
- Public Member Functions inherited from ARDOUR::SceneChanger
 SceneChanger (Session &s)
 
virtual ~SceneChanger ()
 
- Public Member Functions inherited from ARDOUR::SessionHandleRef
 SessionHandleRef (ARDOUR::Session &s)
 
virtual ~SessionHandleRef ()
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 

Public Attributes

PBD::Signal< void()> MIDIInputActivity
 
PBD::Signal< void()> MIDIOutputActivity
 

Private Types

typedef std::multimap< samplepos_t, std::shared_ptr< MIDISceneChange > > Scenes
 

Private Member Functions

void gather (const Locations::LocationList &)
 
bool recording () const
 
void jump_to (int bank, int program)
 
void rt_deliver (MidiBuffer &, samplepos_t, std::shared_ptr< MIDISceneChange >)
 
void non_rt_deliver (std::shared_ptr< MIDISceneChange >)
 
void bank_change_input (MIDI::Parser &, unsigned short, int channel)
 
void program_change_input (MIDI::Parser &, MIDI::byte, int channel)
 
void locations_changed ()
 

Private Attributes

std::shared_ptr< MidiPortinput_port
 
std::shared_ptr< MidiPortoutput_port
 
Glib::Threads::RWLock scene_lock
 
Scenes scenes
 
bool _recording
 
bool have_seen_bank_changes
 
samplepos_t last_program_message_time
 
unsigned short current_bank
 
int last_delivered_program
 
int last_delivered_bank
 
PBD::ScopedConnectionList incoming_connections
 

Additional Inherited Members

- Protected Member Functions inherited from ARDOUR::SessionHandleRef
virtual void session_going_away ()
 
virtual void insanity_check ()
 
- Protected Attributes inherited from ARDOUR::SessionHandleRef
ARDOUR::Session_session
 

Detailed Description

Definition at line 32 of file midi_scene_changer.h.

Member Typedef Documentation

◆ Scenes

typedef std::multimap<samplepos_t,std::shared_ptr<MIDISceneChange> > ARDOUR::MIDISceneChanger::Scenes
private

Definition at line 57 of file midi_scene_changer.h.

Constructor & Destructor Documentation

◆ MIDISceneChanger()

ARDOUR::MIDISceneChanger::MIDISceneChanger ( Session )

◆ ~MIDISceneChanger()

ARDOUR::MIDISceneChanger::~MIDISceneChanger ( )

Member Function Documentation

◆ bank_at()

uint8_t ARDOUR::MIDISceneChanger::bank_at ( samplepos_t  ,
uint8_t  channel 
)

◆ bank_change_input()

void ARDOUR::MIDISceneChanger::bank_change_input ( MIDI::Parser ,
unsigned short  ,
int  channel 
)
private

◆ gather()

void ARDOUR::MIDISceneChanger::gather ( const Locations::LocationList )
private

◆ jump_to()

void ARDOUR::MIDISceneChanger::jump_to ( int  bank,
int  program 
)
private

◆ locate()

void ARDOUR::MIDISceneChanger::locate ( samplepos_t  )
virtual

Implements ARDOUR::SceneChanger.

◆ locations_changed()

void ARDOUR::MIDISceneChanger::locations_changed ( )
private

◆ non_rt_deliver()

void ARDOUR::MIDISceneChanger::non_rt_deliver ( std::shared_ptr< MIDISceneChange )
private

◆ program_at()

uint8_t ARDOUR::MIDISceneChanger::program_at ( samplepos_t  ,
uint8_t  channel 
)

◆ program_change_input()

void ARDOUR::MIDISceneChanger::program_change_input ( MIDI::Parser ,
MIDI::byte  ,
int  channel 
)
private

◆ recording()

bool ARDOUR::MIDISceneChanger::recording ( ) const
private

◆ rt_deliver()

void ARDOUR::MIDISceneChanger::rt_deliver ( MidiBuffer ,
samplepos_t  ,
std::shared_ptr< MIDISceneChange  
)
private

◆ run()

void ARDOUR::MIDISceneChanger::run ( samplepos_t  start,
samplepos_t  end 
)
virtual

Implements ARDOUR::SceneChanger.

◆ set_input_port()

void ARDOUR::MIDISceneChanger::set_input_port ( std::shared_ptr< MidiPort )

◆ set_output_port()

void ARDOUR::MIDISceneChanger::set_output_port ( std::shared_ptr< MidiPort )

◆ set_recording()

void ARDOUR::MIDISceneChanger::set_recording ( bool  )

Member Data Documentation

◆ _recording

bool ARDOUR::MIDISceneChanger::_recording
private

Definition at line 63 of file midi_scene_changer.h.

◆ current_bank

unsigned short ARDOUR::MIDISceneChanger::current_bank
private

Definition at line 66 of file midi_scene_changer.h.

◆ have_seen_bank_changes

bool ARDOUR::MIDISceneChanger::have_seen_bank_changes
private

Definition at line 64 of file midi_scene_changer.h.

◆ incoming_connections

PBD::ScopedConnectionList ARDOUR::MIDISceneChanger::incoming_connections
private

Definition at line 80 of file midi_scene_changer.h.

◆ input_port

std::shared_ptr<MidiPort> ARDOUR::MIDISceneChanger::input_port
private

Definition at line 59 of file midi_scene_changer.h.

◆ last_delivered_bank

int ARDOUR::MIDISceneChanger::last_delivered_bank
private

Definition at line 68 of file midi_scene_changer.h.

◆ last_delivered_program

int ARDOUR::MIDISceneChanger::last_delivered_program
private

Definition at line 67 of file midi_scene_changer.h.

◆ last_program_message_time

samplepos_t ARDOUR::MIDISceneChanger::last_program_message_time
private

Definition at line 65 of file midi_scene_changer.h.

◆ MIDIInputActivity

PBD::Signal<void()> ARDOUR::MIDISceneChanger::MIDIInputActivity

Signal emitted whenever any relevant MIDI input is detected.

Definition at line 50 of file midi_scene_changer.h.

◆ MIDIOutputActivity

PBD::Signal<void()> ARDOUR::MIDISceneChanger::MIDIOutputActivity

Signal emitted whenever any relevant MIDI output is sent.

Definition at line 54 of file midi_scene_changer.h.

◆ output_port

std::shared_ptr<MidiPort> ARDOUR::MIDISceneChanger::output_port
private

Definition at line 60 of file midi_scene_changer.h.

◆ scene_lock

Glib::Threads::RWLock ARDOUR::MIDISceneChanger::scene_lock
private

Definition at line 61 of file midi_scene_changer.h.

◆ scenes

Scenes ARDOUR::MIDISceneChanger::scenes
private

Definition at line 62 of file midi_scene_changer.h.


The documentation for this class was generated from the following file: