ardour
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Attributes | Static Private Attributes | Friends | List of all members
ARDOUR::SessionEvent Class Reference

#include <session_event.h>

Public Types

enum  Type {
  SetTransportSpeed, SetTrackSpeed, Locate, LocateRoll,
  LocateRollLocate, SetLoop, PunchIn, PunchOut,
  RangeStop, RangeLocate, Overwrite, SetSyncSource,
  Audition, InputConfigurationChange, SetPlayAudioRange, CancelPlayAudioRange,
  RealTimeOperation, AdjustPlaybackBuffering, AdjustCaptureBuffering, SetTimecodeTransmission,
  Skip, StopOnce, AutoLoop, AutoLoopDeclick
}
 
enum  Action { Add, Remove, Replace, Clear }
 
typedef boost::function< void(SessionEvent *)> RTeventCallback
 

Public Member Functions

 SessionEvent (Type t, Action a, framepos_t when, framepos_t where, double spd, bool yn=false, bool yn2=false, bool yn3=false)
 
void set_ptr (void *p)
 
bool before (const SessionEvent &other) const
 
bool after (const SessionEvent &other) const
 
void * operator new (size_t)
 
void operator delete (void *ptr, size_t)
 
CrossThreadPoolevent_pool () const
 

Static Public Member Functions

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

Public Attributes

Type type
 
Action action
 
framepos_t action_frame
 
framepos_t target_frame
 
double speed
 
union {
   void *   ptr
 
   bool   yes_or_no
 
   framepos_t   target2_frame
 
   Slave *   slave
 
   Route *   route
 
}; 
 
union {
   bool   second_yes_or_no
 
}; 
 
union {
   bool   third_yes_or_no
 
}; 
 
boost::shared_ptr< RouteListroutes
 
boost::function< void(void)> rt_slot
 
RTeventCallback rt_return
 
PBD::EventLoopevent_loop
 
std::list< AudioRangeaudio_range
 
std::list< MusicRangemusic_range
 
boost::shared_ptr< Regionregion
 

Static Public Attributes

static const framepos_t Immediate = -1
 

Private Attributes

CrossThreadPoolown_pool
 

Static Private Attributes

static PerThreadPoolpool
 

Friends

class Butler
 

Detailed Description

Definition at line 39 of file session_event.h.

Member Typedef Documentation

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

Definition at line 102 of file session_event.h.

Member Enumeration Documentation

Enumerator
Add 
Remove 
Replace 
Clear 

Definition at line 71 of file session_event.h.

Enumerator
SetTransportSpeed 
SetTrackSpeed 
Locate 
LocateRoll 
LocateRollLocate 
SetLoop 
PunchIn 
PunchOut 
RangeStop 
RangeLocate 
Overwrite 
SetSyncSource 
Audition 
InputConfigurationChange 
SetPlayAudioRange 
CancelPlayAudioRange 
RealTimeOperation 
AdjustPlaybackBuffering 
AdjustCaptureBuffering 
SetTimecodeTransmission 
Skip 
StopOnce 
AutoLoop 
AutoLoopDeclick 

Definition at line 41 of file session_event.h.

Constructor & Destructor Documentation

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

Definition at line 55 of file session_events.cc.

Member Function Documentation

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

Definition at line 124 of file session_event.h.

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

Definition at line 120 of file session_event.h.

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

Definition at line 128 of file session_event.h.

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

Definition at line 46 of file session_events.cc.

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

Definition at line 140 of file session_event.h.

void SessionEvent::init_event_pool ( )
static

Definition at line 40 of file session_events.cc.

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

Definition at line 87 of file session_events.cc.

void * SessionEvent::operator new ( size_t  )

Definition at line 70 of file session_events.cc.

void ARDOUR::SessionEvent::set_ptr ( void *  p)
inline

Definition at line 116 of file session_event.h.

Friends And Related Function Documentation

friend class Butler
friend

Definition at line 146 of file session_event.h.

Member Data Documentation

union { ... }
union { ... }
union { ... }
Action ARDOUR::SessionEvent::action

Definition at line 79 of file session_event.h.

framepos_t ARDOUR::SessionEvent::action_frame

Definition at line 80 of file session_event.h.

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

Definition at line 109 of file session_event.h.

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

Definition at line 107 of file session_event.h.

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

Definition at line 135 of file session_event.h.

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

Definition at line 110 of file session_event.h.

CrossThreadPool* ARDOUR::SessionEvent::own_pool
private

Definition at line 144 of file session_event.h.

PerThreadPool * SessionEvent::pool
staticprivate

Definition at line 143 of file session_event.h.

void* ARDOUR::SessionEvent::ptr

Definition at line 85 of file session_event.h.

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

Definition at line 112 of file session_event.h.

Route* ARDOUR::SessionEvent::route

Definition at line 89 of file session_event.h.

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

Definition at line 104 of file session_event.h.

RTeventCallback ARDOUR::SessionEvent::rt_return

Definition at line 106 of file session_event.h.

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

Definition at line 105 of file session_event.h.

bool ARDOUR::SessionEvent::second_yes_or_no

Definition at line 93 of file session_event.h.

Slave* ARDOUR::SessionEvent::slave

Definition at line 88 of file session_event.h.

double ARDOUR::SessionEvent::speed

Definition at line 82 of file session_event.h.

framepos_t ARDOUR::SessionEvent::target2_frame

Definition at line 87 of file session_event.h.

framepos_t ARDOUR::SessionEvent::target_frame

Definition at line 81 of file session_event.h.

bool ARDOUR::SessionEvent::third_yes_or_no

Definition at line 97 of file session_event.h.

Type ARDOUR::SessionEvent::type

Definition at line 78 of file session_event.h.

bool ARDOUR::SessionEvent::yes_or_no

Definition at line 86 of file session_event.h.


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