cue events: some basic handling framework for syncing cue markers with session events that implement them
This doesn't actually do anything yet
This commit is contained in:
parent
5783664b9e
commit
93b30976e5
@ -2299,6 +2299,8 @@ private:
|
|||||||
GATOMIC_QUAL gint _update_pretty_names;
|
GATOMIC_QUAL gint _update_pretty_names;
|
||||||
|
|
||||||
void setup_thread_local_variables ();
|
void setup_thread_local_variables ();
|
||||||
|
void cue_marker_change (Location*);
|
||||||
|
void sync_cues ();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -68,6 +68,7 @@ public:
|
|||||||
EndRoll,
|
EndRoll,
|
||||||
TransportStateChange,
|
TransportStateChange,
|
||||||
TriggerSceneChange,
|
TriggerSceneChange,
|
||||||
|
SyncCues,
|
||||||
|
|
||||||
/* only one of each of these events can be queued at any one time */
|
/* only one of each of these events can be queued at any one time */
|
||||||
|
|
||||||
|
@ -483,6 +483,8 @@ Session::Session (AudioEngine &eng,
|
|||||||
|
|
||||||
Controllable::ControlTouched.connect_same_thread (*this, boost::bind (&Session::controllable_touched, this, _1));
|
Controllable::ControlTouched.connect_same_thread (*this, boost::bind (&Session::controllable_touched, this, _1));
|
||||||
|
|
||||||
|
Location::cue_change.connect_same_thread (*this, boost::bind (&Session::cue_marker_change, this, _1));
|
||||||
|
|
||||||
emit_thread_start ();
|
emit_thread_start ();
|
||||||
auto_connect_thread_start ();
|
auto_connect_thread_start ();
|
||||||
|
|
||||||
@ -7366,3 +7368,10 @@ Session::had_destructive_tracks() const
|
|||||||
{
|
{
|
||||||
return _had_destructive_tracks;
|
return _had_destructive_tracks;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Session::cue_marker_change (Location* loc)
|
||||||
|
{
|
||||||
|
SessionEvent* ev = new SessionEvent (SessionEvent::SyncCues, SessionEvent::Add, SessionEvent::Immediate, 0, 0.0);
|
||||||
|
queue_event (ev);
|
||||||
|
}
|
||||||
|
@ -1047,6 +1047,10 @@ Session::process_event (SessionEvent* ev)
|
|||||||
g_atomic_int_set (&_suspend_timecode_transmission, ev->yes_or_no ? 0 : 1);
|
g_atomic_int_set (&_suspend_timecode_transmission, ev->yes_or_no ? 0 : 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SessionEvent::SyncCues:
|
||||||
|
sync_cues ();
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
fatal << string_compose(_("Programming error: illegal event type in process_event (%1)"), ev->type) << endmsg;
|
fatal << string_compose(_("Programming error: illegal event type in process_event (%1)"), ev->type) << endmsg;
|
||||||
abort(); /*NOTREACHED*/
|
abort(); /*NOTREACHED*/
|
||||||
@ -1580,3 +1584,9 @@ Session::implement_master_strategy ()
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Session::sync_cues ()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user