This commit is contained in:
Stéphane Lepin 2016-11-30 20:04:24 +01:00
parent fca6774d4a
commit 1947a3cfd5
3 changed files with 25 additions and 2 deletions

View File

@ -93,6 +93,28 @@ obs_sceneitem_t* Utils::GetSceneItemFromName(obs_source_t* source, const char* n
return search.result;
}
obs_source_t* Utils::GetTransitionFromName(const char *search_name) {
obs_source_t *found_transition = NULL;
obs_frontend_source_list transition_list = {};
obs_frontend_get_transitions(&transition_list);
for (size_t i = 0; i < transition_list.sources.num; i++) {
obs_source_t *transition = transition_list.sources.array[i];
const char *transition_name = obs_source_get_name(transition);
if (strcmp(transition_name, search_name) == 0) {
found_transition = transition;
obs_source_addref(found_transition);
break;
}
}
obs_frontend_source_list_free(&transition_list);
return found_transition;
}
obs_data_array_t* Utils::GetScenes() {
obs_frontend_source_list sceneList = {};
obs_frontend_get_scenes(&sceneList);

View File

@ -27,7 +27,8 @@ class Utils
public:
static obs_data_array_t* GetSceneItems(obs_source_t *source);
static obs_data_t* GetSceneItemData(obs_scene_item *item);
static obs_sceneitem_t* GetSceneItemFromName(obs_source_t *source, const char* name);
static obs_sceneitem_t* GetSceneItemFromName(obs_source_t *source, const char *name);
static obs_source_t* GetTransitionFromName(const char *search_name);
static obs_data_array_t* GetScenes();
static obs_data_t* GetSceneData(obs_source *source);

View File

@ -329,7 +329,7 @@ void WSRequestHandler::HandleGetCurrentTransition(WSRequestHandler *owner) {
void WSRequestHandler::HandleSetCurrentTransition(WSRequestHandler *owner) {
const char *name = obs_data_get_string(owner->_requestData, "transition-name");
obs_source_t *transition = obs_get_source_by_name(name);
obs_source_t *transition = Utils::GetTransitionFromName(name);
if (transition) {
obs_frontend_set_current_transition(transition);