Browse Source

libobs: Add obs_scene_create_private function

Creates a scene marked as a private source
jp9000 9 years ago
parent
commit
6824910f5d
2 changed files with 11 additions and 1 deletions
  1. 9 1
      libobs/obs-scene.c
  2. 2 0
      libobs/obs.h

+ 9 - 1
libobs/obs-scene.c

@@ -744,6 +744,13 @@ obs_scene_t *obs_scene_create(const char *name)
 	return source->context.data;
 }
 
+obs_scene_t *obs_scene_create_private(const char *name)
+{
+	struct obs_source *source = obs_source_create_private("scene", name,
+			NULL);
+	return source->context.data;
+}
+
 obs_scene_t *obs_scene_duplicate(obs_scene_t *scene, const char *name)
 {
 	struct obs_scene *new_scene = obs_scene_create(name);
@@ -1014,7 +1021,8 @@ obs_sceneitem_t *obs_scene_add(obs_scene_t *scene, obs_source_t *source)
 
 	full_unlock(scene);
 
-	init_hotkeys(scene, item, obs_source_get_name(source));
+	if (!scene->source->context.private)
+		init_hotkeys(scene, item, obs_source_get_name(source));
 
 	calldata_set_ptr(&params, "scene", scene);
 	calldata_set_ptr(&params, "item", item);

+ 2 - 0
libobs/obs.h

@@ -1082,6 +1082,8 @@ EXPORT void obs_transition_swap_end(obs_source_t *tr_dest,
  */
 EXPORT obs_scene_t *obs_scene_create(const char *name);
 
+EXPORT obs_scene_t *obs_scene_create_private(const char *name);
+
 /**
  * Duplicates a scene.
  *