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
|
// Transitions
|
||||||
if (sourceType == OBS_SOURCE_TYPE_TRANSITION) {
|
if (sourceType == OBS_SOURCE_TYPE_TRANSITION) {
|
||||||
signal_handler_connect(sh, "transition_start", HandleSceneTransitionStarted, this);
|
signal_handler_connect(sh, "transition_start", HandleSceneTransitionStarted, this);
|
||||||
|
signal_handler_connect(sh, "transition_stop", HandleSceneTransitionEnded, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filters
|
// Filters
|
||||||
@ -243,6 +244,7 @@ void EventHandler::DisconnectSourceSignals(obs_source_t *source)
|
|||||||
// Transitions
|
// Transitions
|
||||||
if (sourceType == OBS_SOURCE_TYPE_TRANSITION) {
|
if (sourceType == OBS_SOURCE_TYPE_TRANSITION) {
|
||||||
signal_handler_disconnect(sh, "transition_start", HandleSceneTransitionStarted, this);
|
signal_handler_disconnect(sh, "transition_start", HandleSceneTransitionStarted, this);
|
||||||
|
signal_handler_disconnect(sh, "transition_stop", HandleSceneTransitionEnded, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Filters
|
// Filters
|
||||||
|
@ -116,6 +116,7 @@ class EventHandler
|
|||||||
void HandleCurrentSceneTransitionChanged();
|
void HandleCurrentSceneTransitionChanged();
|
||||||
void HandleCurrentSceneTransitionDurationChanged();
|
void HandleCurrentSceneTransitionDurationChanged();
|
||||||
static void HandleSceneTransitionStarted(void *param, calldata_t *data); // Direct callback
|
static void HandleSceneTransitionStarted(void *param, calldata_t *data); // Direct callback
|
||||||
|
static void HandleSceneTransitionEnded(void *param, calldata_t *data); // Direct callback
|
||||||
|
|
||||||
// Filters
|
// Filters
|
||||||
static void FilterAddMultiHandler(void *param, calldata_t *data); // Direct callback
|
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);
|
eventData["transitionName"] = obs_source_get_name(source);
|
||||||
eventHandler->BroadcastEvent(EventSubscription::Transitions, "SceneTransitionStarted", eventData);
|
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