mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
eventhandler: Add SceneItemSelected event
So I didn't think anyone actually used this, but I was wrong. So I'm adding it again.
This commit is contained in:
parent
96a2fd8c25
commit
3e2984fd7a
@ -157,6 +157,7 @@ void EventHandler::ConnectSourceSignals(obs_source_t *source) // Applies to inpu
|
||||
signal_handler_connect(sh, "reorder", HandleSceneItemListReindexed, this);
|
||||
signal_handler_connect(sh, "item_visible", HandleSceneItemEnableStateChanged, this);
|
||||
signal_handler_connect(sh, "item_locked", HandleSceneItemLockStateChanged, this);
|
||||
signal_handler_connect(sh, "item_select", HandleSceneItemSelected, this);
|
||||
signal_handler_connect(sh, "item_transform", HandleSceneItemTransformChanged, this);
|
||||
}
|
||||
}
|
||||
@ -194,6 +195,7 @@ void EventHandler::DisconnectSourceSignals(obs_source_t *source)
|
||||
signal_handler_disconnect(sh, "reorder", HandleSceneItemListReindexed, this);
|
||||
signal_handler_disconnect(sh, "item_visible", HandleSceneItemEnableStateChanged, this);
|
||||
signal_handler_disconnect(sh, "item_locked", HandleSceneItemLockStateChanged, this);
|
||||
signal_handler_disconnect(sh, "item_select", HandleSceneItemSelected, this);
|
||||
signal_handler_disconnect(sh, "item_transform", HandleSceneItemTransformChanged, this);
|
||||
}
|
||||
|
||||
|
@ -125,6 +125,7 @@ class EventHandler
|
||||
static void HandleSceneItemListReindexed(void *param, calldata_t *data); // Direct callback
|
||||
static void HandleSceneItemEnableStateChanged(void *param, calldata_t *data); // Direct callback
|
||||
static void HandleSceneItemLockStateChanged(void *param, calldata_t *data); // Direct callback
|
||||
static void HandleSceneItemSelected(void *param, calldata_t *data); // Direct callback
|
||||
static void HandleSceneItemTransformChanged(void *param, calldata_t *data); // Direct callback
|
||||
|
||||
// Media Inputs
|
||||
|
@ -191,6 +191,38 @@ void EventHandler::HandleSceneItemLockStateChanged(void *param, calldata_t *data
|
||||
eventHandler->BroadcastEvent(EventSubscription::SceneItems, "SceneItemLockStateChanged", eventData);
|
||||
}
|
||||
|
||||
/**
|
||||
* A scene item has been selected in the Ui.
|
||||
*
|
||||
* @dataField sceneName | String | Name of the scene the item is in
|
||||
* @dataField sceneItemId | Number | Numeric ID of the scene item
|
||||
*
|
||||
* @eventType SceneItemSelected
|
||||
* @eventSubscription SceneItems
|
||||
* @complexity 2
|
||||
* @rpcVersion -1
|
||||
* @initialVersion 5.0.0
|
||||
* @api events
|
||||
* @category scene items
|
||||
*/
|
||||
void EventHandler::HandleSceneItemSelected(void *param, calldata_t *data)
|
||||
{
|
||||
auto eventHandler = static_cast<EventHandler*>(param);
|
||||
|
||||
obs_scene_t *scene = GetCalldataPointer<obs_scene_t>(data, "scene");
|
||||
if (!scene)
|
||||
return;
|
||||
|
||||
obs_sceneitem_t *sceneItem = GetCalldataPointer<obs_sceneitem_t>(data, "item");
|
||||
if (!sceneItem)
|
||||
return;
|
||||
|
||||
json eventData;
|
||||
eventData["sceneName"] = obs_source_get_name(obs_scene_get_source(scene));
|
||||
eventData["sceneItemId"] = obs_sceneitem_get_id(sceneItem);
|
||||
eventHandler->BroadcastEvent(EventSubscription::SceneItems, "SceneItemSelected", eventData);
|
||||
}
|
||||
|
||||
/**
|
||||
* The transform/crop of a scene item has changed.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user