mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
eventhandler: Add SceneTransitionEnded
This commit is contained in:
parent
a7698a732f
commit
9ac7c5890e
@ -176,6 +176,7 @@ void EventHandler::ConnectSourceSignals(obs_source_t *source) // Applies to inpu
|
||||
// Transitions
|
||||
if (sourceType == OBS_SOURCE_TYPE_TRANSITION) {
|
||||
signal_handler_connect(sh, "transition_start", HandleSceneTransitionStarted, this);
|
||||
signal_handler_connect(sh, "transition_stop", HandleSceneTransitionEnded, this);
|
||||
}
|
||||
|
||||
// Filters
|
||||
@ -243,6 +244,7 @@ void EventHandler::DisconnectSourceSignals(obs_source_t *source)
|
||||
// Transitions
|
||||
if (sourceType == OBS_SOURCE_TYPE_TRANSITION) {
|
||||
signal_handler_disconnect(sh, "transition_start", HandleSceneTransitionStarted, this);
|
||||
signal_handler_disconnect(sh, "transition_stop", HandleSceneTransitionEnded, this);
|
||||
}
|
||||
|
||||
// Filters
|
||||
|
@ -116,6 +116,7 @@ class EventHandler
|
||||
void HandleCurrentSceneTransitionChanged();
|
||||
void HandleCurrentSceneTransitionDurationChanged();
|
||||
static void HandleSceneTransitionStarted(void *param, calldata_t *data); // Direct callback
|
||||
static void HandleSceneTransitionEnded(void *param, calldata_t *data); // Direct callback
|
||||
|
||||
// Filters
|
||||
static void FilterAddMultiHandler(void *param, calldata_t *data); // Direct callback
|
||||
|
@ -86,3 +86,31 @@ void EventHandler::HandleSceneTransitionStarted(void *param, calldata_t *data)
|
||||
eventData["transitionName"] = obs_source_get_name(source);
|
||||
eventHandler->BroadcastEvent(EventSubscription::Transitions, "SceneTransitionStarted", eventData);
|
||||
}
|
||||
|
||||
/**
|
||||
* A scene transition has completed fully.
|
||||
*
|
||||
* Note: Does not appear to trigger when the transition is interrupted by the user.
|
||||
*
|
||||
* @dataField transitionName | String | Scene transition name
|
||||
*
|
||||
* @eventType SceneTransitionEnded
|
||||
* @eventSubscription Transitions
|
||||
* @complexity 2
|
||||
* @rpcVersion -1
|
||||
* @initialVersion 5.0.0
|
||||
* @api events
|
||||
* @category transitions
|
||||
*/
|
||||
void EventHandler::HandleSceneTransitionEnded(void *param, calldata_t *data)
|
||||
{
|
||||
auto eventHandler = static_cast<EventHandler*>(param);
|
||||
|
||||
obs_source_t *source = GetCalldataPointer<obs_source_t>(data, "source");
|
||||
if (!source)
|
||||
return;
|
||||
|
||||
json eventData;
|
||||
eventData["transitionName"] = obs_source_get_name(source);
|
||||
eventHandler->BroadcastEvent(EventSubscription::Transitions, "SceneTransitionEnded", eventData);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user