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

#include <session_event.h>

Public Types

enum  Type {
  SetTransportSpeed , SetDefaultPlaySpeed , Locate , LocateRoll ,
  LocateRollLocate , SetLoop , PunchIn , PunchOut ,
  RangeStop , RangeLocate , Overwrite , OverwriteAll ,
  Audition , SetPlayAudioRange , CancelPlayAudioRange , RealTimeOperation ,
  AdjustPlaybackBuffering , AdjustCaptureBuffering , SetTimecodeTransmission , Skip ,
  SetTransportMaster , StartRoll , EndRoll , TransportStateChange ,
  SyncCues , AutoLoop
}
 
enum  Action { Add , Remove , Replace , Clear }
 
typedef std::function< void(SessionEvent *)> RTeventCallback
 

Public Member Functions

 SessionEvent (Type t, Action a, samplepos_t when, samplepos_t where, double spd, bool yn=false, bool yn2=false, bool yn3=false)
 
void set_track (std::shared_ptr< Track > t)
 
bool before (const SessionEvent &other) const
 
bool after (const SessionEvent &other) const
 
void * operator new (size_t)
 
void operator delete (void *ptr, size_t)
 
PBD::CrossThreadPoolevent_pool () const
 

Static Public Member Functions

static bool compare (const SessionEvent *e1, const SessionEvent *e2)
 
static bool has_per_thread_pool ()
 
static void create_per_thread_pool (const std::string &n, uint32_t nitems)
 
static void init_event_pool ()
 
static guint pool_available ()
 

Public Attributes

Type type
 
Action action
 
samplepos_t action_sample
 
samplepos_t target_sample
 
double speed
 
union {
   bool   yes_or_no
 
   samplepos_t   target2_sample
 
   OverwriteReason   overwrite
 
   int32_t   scene
 
}; 
 
std::weak_ptr< Tracktrack
 
union {
   bool   second_yes_or_no
 
   double   control_value
 
   LocateTransportDisposition   locate_transport_disposition
 
}; 
 
union {
   bool   third_yes_or_no
 
}; 
 
std::shared_ptr< AutomationControlListcontrols
 
std::shared_ptr< RouteListroutes
 
std::function< void(void)> rt_slot
 
RTeventCallback rt_return
 
PBD::EventLoopevent_loop
 
std::list< TimelineRangeaudio_range
 
std::list< TimelineRangemusic_range
 
std::shared_ptr< Regionregion
 
std::shared_ptr< TransportMastertransport_master
 

Static Public Attributes

static const samplepos_t Immediate = -1
 

Private Attributes

PBD::CrossThreadPoolown_pool
 

Static Private Attributes

static PBD::PerThreadPoolpool
 

Friends

class Butler
 

Detailed Description

Definition at line 41 of file session_event.h.

Member Typedef Documentation

◆ RTeventCallback

typedef std::function<void (SessionEvent*)> ARDOUR::SessionEvent::RTeventCallback

Definition at line 109 of file session_event.h.

Member Enumeration Documentation

◆ Action

Enumerator
Add 
Remove 
Replace 
Clear 

Definition at line 75 of file session_event.h.

◆ Type

Enumerator
SetTransportSpeed 
SetDefaultPlaySpeed 
Locate 
LocateRoll 
LocateRollLocate 
SetLoop 
PunchIn 
PunchOut 
RangeStop 
RangeLocate 
Overwrite 
OverwriteAll 
Audition 
SetPlayAudioRange 
CancelPlayAudioRange 
RealTimeOperation 
AdjustPlaybackBuffering 
AdjustCaptureBuffering 
SetTimecodeTransmission 
Skip 
SetTransportMaster 
StartRoll 
EndRoll 
TransportStateChange 
SyncCues 
AutoLoop 

Definition at line 43 of file session_event.h.

Constructor & Destructor Documentation

◆ SessionEvent()

ARDOUR::SessionEvent::SessionEvent ( Type  t,
Action  a,
samplepos_t  when,
samplepos_t  where,
double  spd,
bool  yn = false,
bool  yn2 = false,
bool  yn3 = false 
)

Member Function Documentation

◆ after()

bool ARDOUR::SessionEvent::after ( const SessionEvent other) const
inline

Definition at line 133 of file session_event.h.

◆ before()

bool ARDOUR::SessionEvent::before ( const SessionEvent other) const
inline

Definition at line 129 of file session_event.h.

◆ compare()

static bool ARDOUR::SessionEvent::compare ( const SessionEvent e1,
const SessionEvent e2 
)
inlinestatic

Definition at line 137 of file session_event.h.

◆ create_per_thread_pool()

static void ARDOUR::SessionEvent::create_per_thread_pool ( const std::string &  n,
uint32_t  nitems 
)
static

◆ event_pool()

PBD::CrossThreadPool* ARDOUR::SessionEvent::event_pool ( ) const
inline

Definition at line 151 of file session_event.h.

◆ has_per_thread_pool()

static bool ARDOUR::SessionEvent::has_per_thread_pool ( )
static

◆ init_event_pool()

static void ARDOUR::SessionEvent::init_event_pool ( )
static

◆ operator delete()

void ARDOUR::SessionEvent::operator delete ( void *  ptr,
size_t   
)

◆ operator new()

void* ARDOUR::SessionEvent::operator new ( size_t  )

◆ pool_available()

static guint ARDOUR::SessionEvent::pool_available ( )
static

◆ set_track()

void ARDOUR::SessionEvent::set_track ( std::shared_ptr< Track t)
inline

Definition at line 125 of file session_event.h.

Friends And Related Function Documentation

◆ Butler

friend class Butler
friend

Definition at line 157 of file session_event.h.

Member Data Documentation

◆ 

union { ... }

◆ 

union { ... }

◆ 

union { ... }

◆ action

Action ARDOUR::SessionEvent::action

Definition at line 83 of file session_event.h.

◆ action_sample

samplepos_t ARDOUR::SessionEvent::action_sample

Definition at line 84 of file session_event.h.

◆ audio_range

std::list<TimelineRange> ARDOUR::SessionEvent::audio_range

Definition at line 117 of file session_event.h.

◆ control_value

double ARDOUR::SessionEvent::control_value

Definition at line 99 of file session_event.h.

◆ controls

std::shared_ptr<AutomationControlList> ARDOUR::SessionEvent::controls

Definition at line 111 of file session_event.h.

◆ event_loop

PBD::EventLoop* ARDOUR::SessionEvent::event_loop

Definition at line 115 of file session_event.h.

◆ Immediate

const samplepos_t ARDOUR::SessionEvent::Immediate = -1
static

Definition at line 144 of file session_event.h.

◆ locate_transport_disposition

LocateTransportDisposition ARDOUR::SessionEvent::locate_transport_disposition

Definition at line 100 of file session_event.h.

◆ music_range

std::list<TimelineRange> ARDOUR::SessionEvent::music_range

Definition at line 118 of file session_event.h.

◆ overwrite

OverwriteReason ARDOUR::SessionEvent::overwrite

Definition at line 91 of file session_event.h.

◆ own_pool

PBD::CrossThreadPool* ARDOUR::SessionEvent::own_pool
private

Definition at line 155 of file session_event.h.

◆ pool

PBD::PerThreadPool* ARDOUR::SessionEvent::pool
staticprivate

Definition at line 154 of file session_event.h.

◆ region

std::shared_ptr<Region> ARDOUR::SessionEvent::region

Definition at line 120 of file session_event.h.

◆ routes

std::shared_ptr<RouteList> ARDOUR::SessionEvent::routes

Definition at line 112 of file session_event.h.

◆ rt_return

RTeventCallback ARDOUR::SessionEvent::rt_return

Definition at line 114 of file session_event.h.

◆ rt_slot

std::function<void (void)> ARDOUR::SessionEvent::rt_slot

Definition at line 113 of file session_event.h.

◆ scene

int32_t ARDOUR::SessionEvent::scene

Definition at line 92 of file session_event.h.

◆ second_yes_or_no

bool ARDOUR::SessionEvent::second_yes_or_no

Definition at line 98 of file session_event.h.

◆ speed

double ARDOUR::SessionEvent::speed

Definition at line 86 of file session_event.h.

◆ target2_sample

samplepos_t ARDOUR::SessionEvent::target2_sample

Definition at line 90 of file session_event.h.

◆ target_sample

samplepos_t ARDOUR::SessionEvent::target_sample

Definition at line 85 of file session_event.h.

◆ third_yes_or_no

bool ARDOUR::SessionEvent::third_yes_or_no

Definition at line 104 of file session_event.h.

◆ track

std::weak_ptr<Track> ARDOUR::SessionEvent::track

Definition at line 95 of file session_event.h.

◆ transport_master

std::shared_ptr<TransportMaster> ARDOUR::SessionEvent::transport_master

Definition at line 121 of file session_event.h.

◆ type

Type ARDOUR::SessionEvent::type

Definition at line 82 of file session_event.h.

◆ yes_or_no

bool ARDOUR::SessionEvent::yes_or_no

Definition at line 89 of file session_event.h.


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