mirror of
https://github.com/Palakis/obs-websocket.git
synced 2024-08-30 18:12:16 +00:00
Added update type SceneItemVisibilityChanged
This commit is contained in:
parent
dcafaedaa8
commit
228708eec4
@ -14,6 +14,7 @@ The protocol in general is based on the OBS Remote protocol created by Bill Hami
|
||||
- ["SourceOrderChanged"](#sourceorderchanged)
|
||||
- ["SceneItemAdded"](#sceneitemadded)
|
||||
- ["SceneItemRemoved"](#sceneitemremoved)
|
||||
- ["SceneItemVisibilityChanged"](#sceneitemvisibilitychanged)
|
||||
- ["SceneCollectionChanged"](#scenecollectionchanged)
|
||||
- ["SceneCollectionListChanged"](#scenecollectionlistchanged)
|
||||
- ["SwitchTransition"](#switchtransition)
|
||||
@ -103,6 +104,14 @@ An item has been removed from the current scene.
|
||||
|
||||
---
|
||||
|
||||
#### "SceneItemVisibilityChanged"
|
||||
An item's visibility has been toggled.
|
||||
- **"scene-name"** (string) : name of the scene
|
||||
- **"item-name"** (string) : name of the item in **scene-name**
|
||||
- **"item-visible"** (bool) : new visibility of item **item-name**
|
||||
|
||||
---
|
||||
|
||||
#### "SceneCollectionChanged"
|
||||
Triggered when switching to another scene collection or when renaming the current scene collection.
|
||||
|
||||
|
28
WSEvents.cpp
28
WSEvents.cpp
@ -191,12 +191,14 @@ void WSEvents::connectSceneSignals(obs_source_t* scene)
|
||||
signal_handler_disconnect(scene_handler, "reorder", OnSceneReordered, this);
|
||||
signal_handler_disconnect(scene_handler, "item_add", OnSceneItemAdd, this);
|
||||
signal_handler_disconnect(scene_handler, "item_remove", OnSceneItemDelete, this);
|
||||
signal_handler_disconnect(scene_handler, "item_visible", OnSceneItemVisibilityChanged, this);
|
||||
}
|
||||
|
||||
scene_handler = obs_source_get_signal_handler(scene);
|
||||
signal_handler_connect(scene_handler, "reorder", OnSceneReordered, this);
|
||||
signal_handler_connect(scene_handler, "item_add", OnSceneItemAdd, this);
|
||||
signal_handler_connect(scene_handler, "item_remove", OnSceneItemDelete, this);
|
||||
signal_handler_connect(scene_handler, "item_visible", OnSceneItemVisibilityChanged, this);
|
||||
}
|
||||
|
||||
void WSEvents::OnSceneChange()
|
||||
@ -464,5 +466,31 @@ void WSEvents::OnSceneItemDelete(void *param, calldata_t *data)
|
||||
|
||||
instance->broadcastUpdate("SceneItemRemoved", fields);
|
||||
|
||||
obs_data_release(fields);
|
||||
}
|
||||
|
||||
void WSEvents::OnSceneItemVisibilityChanged(void *param, calldata_t *data)
|
||||
{
|
||||
WSEvents* instance = static_cast<WSEvents*>(param);
|
||||
|
||||
obs_scene_t* scene = nullptr;
|
||||
calldata_get_ptr(data, "scene", &scene);
|
||||
|
||||
obs_sceneitem_t* scene_item = nullptr;
|
||||
calldata_get_ptr(data, "item", &scene_item);
|
||||
|
||||
bool visible = false;
|
||||
calldata_get_bool(data, "visible", &visible);
|
||||
|
||||
const char* scene_name = obs_source_get_name(obs_scene_get_source(scene));
|
||||
const char* sceneitem_name = obs_source_get_name(obs_sceneitem_get_source(scene_item));
|
||||
|
||||
obs_data_t* fields = obs_data_create();
|
||||
obs_data_set_string(fields, "scene-name", scene_name);
|
||||
obs_data_set_string(fields, "item-name", sceneitem_name);
|
||||
obs_data_set_bool(fields, "item-visible", visible);
|
||||
|
||||
instance->broadcastUpdate("SceneItemVisibilityChanged", fields);
|
||||
|
||||
obs_data_release(fields);
|
||||
}
|
@ -78,6 +78,7 @@ class WSEvents : public QObject
|
||||
static void OnSceneReordered(void *param, calldata_t *data);
|
||||
static void OnSceneItemAdd(void *param, calldata_t *data);
|
||||
static void OnSceneItemDelete(void *param, calldata_t *data);
|
||||
static void OnSceneItemVisibilityChanged(void *param, calldata_t *data);
|
||||
};
|
||||
|
||||
#endif // WSEVENTS_H
|
Loading…
x
Reference in New Issue
Block a user