summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/session_event.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-07 23:51:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-07 23:51:46 +0000
commit8faf95b9bdf8985b25e839419acffc495c8107e3 (patch)
tree1cd0870bf3f7654fca846abbc12c684eea50296d /libs/ardour/ardour/session_event.h
parent9686f8097d45c306168d1a5220d9c8bf225edb8c (diff)
better, cleaner, more generic version of real-time ping pong, still just for one case of rec-enable but more coming soon
git-svn-id: svn://localhost/ardour2/branches/3.0@6325 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/session_event.h')
-rw-r--r--libs/ardour/ardour/session_event.h11
1 files changed, 5 insertions, 6 deletions
diff --git a/libs/ardour/ardour/session_event.h b/libs/ardour/ardour/session_event.h
index a903e3cd4f..7775f4b1ad 100644
--- a/libs/ardour/ardour/session_event.h
+++ b/libs/ardour/ardour/session_event.h
@@ -32,7 +32,6 @@ struct SessionEvent {
Audition,
InputConfigurationChange,
SetPlayAudioRange,
- SetRecordEnable,
RealTimeOperation,
/* only one of each of these events can be queued at any one time */
@@ -64,9 +63,9 @@ struct SessionEvent {
union {
bool second_yes_or_no;
- RouteList* routes;
};
+ boost::shared_ptr<RouteList> routes;
sigc::slot<void> rt_slot; /* what to call in RT context */
sigc::slot<void,SessionEvent*> rt_return; /* called after rt_slot, with this event as an argument */
@@ -118,10 +117,8 @@ class SessionEventManager {
SessionEventManager () : pending_events (2048){}
virtual ~SessionEventManager() {}
- void add_event (nframes64_t action_frame, SessionEvent::Type type, nframes64_t target_frame = 0);
- void remove_event (nframes64_t frame, SessionEvent::Type type);
+ virtual void queue_event (SessionEvent *ev) = 0;
void clear_events (SessionEvent::Type type);
-
protected:
RingBuffer<SessionEvent*> pending_events;
@@ -143,8 +140,10 @@ class SessionEventManager {
bool _remove_event (SessionEvent *);
void _clear_event_type (SessionEvent::Type);
+ void add_event (nframes64_t action_frame, SessionEvent::Type type, nframes64_t target_frame = 0);
+ void remove_event (nframes64_t frame, SessionEvent::Type type);
+
virtual void process_event(SessionEvent*) = 0;
- virtual void queue_event (SessionEvent *ev) = 0;
virtual void set_next_event () = 0;
};