20 #ifndef __ardour_session_event_h__
21 #define __ardour_session_event_h__
24 #include <boost/function.hpp>
25 #include <boost/shared_ptr.hpp>
132 void*
operator new (size_t);
133 void operator delete (
void *ptr,
size_t );
137 static void create_per_thread_pool (
const std::string& n, uint32_t nitems);
138 static void init_event_pool ();
161 typedef std::list<SessionEvent *>
Events;
void clear_events(SessionEvent::Type type)
PBD::EventLoop * event_loop
boost::function< void(SessionEvent *)> RTeventCallback
CrossThreadPool * event_pool() const
RingBuffer< SessionEvent * > pending_events
boost::function< void(void)> rt_slot
void merge_event(SessionEvent *)
RTeventCallback rt_return
std::list< MusicRange > music_range
void _clear_event_type(SessionEvent::Type)
std::list< AudioRange > audio_range
std::list< SessionEvent * > Events
CrossThreadPool * own_pool
bool _replace_event(SessionEvent *)
virtual void queue_event(SessionEvent *ev)=0
virtual void set_next_event()=0
bool after(const SessionEvent &other) const
SessionEvent * auto_loop_event
boost::shared_ptr< RouteList > routes
The Slave interface can be used to sync ARDOURs tempo to an external source like MTC, MIDI Clock, etc.
Events::iterator next_event
LIBARDOUR_API uint64_t Slave
boost::shared_ptr< Region > region
SessionEvent * punch_in_event
SessionEvent * punch_out_event
void replace_event(SessionEvent::Type, framepos_t action_frame, framepos_t target=0)
virtual ~SessionEventManager()
bool before(const SessionEvent &other) const
static PerThreadPool * pool
void remove_event(framepos_t frame, SessionEvent::Type type)
static bool compare(const SessionEvent *e1, const SessionEvent *e2)
bool _remove_event(SessionEvent *)
void add_event(framepos_t action_frame, SessionEvent::Type type, framepos_t target_frame=0)
virtual void process_event(SessionEvent *)=0