Browse Source

libobs: Add function to get obs object id

jp9000 10 years ago
parent
commit
0facb9be9a
2 changed files with 18 additions and 0 deletions
  1. 17 0
      libobs/obs.c
  2. 1 0
      libobs/obs.h

+ 17 - 0
libobs/obs.c

@@ -1777,3 +1777,20 @@ enum obs_obj_type obs_obj_get_type(void *obj)
 	struct obs_context_data *context = obj;
 	return context ? context->type : OBS_OBJ_TYPE_INVALID;
 }
+
+const char *obs_obj_get_id(void *obj)
+{
+	struct obs_context_data *context = obj;
+	if (!context)
+		return NULL;
+
+	switch (context->type) {
+	case OBS_OBJ_TYPE_SOURCE:  return ((obs_source_t*)obj)->info.id;
+	case OBS_OBJ_TYPE_OUTPUT:  return ((obs_output_t*)obj)->info.id;
+	case OBS_OBJ_TYPE_ENCODER: return ((obs_encoder_t*)obj)->info.id;
+	case OBS_OBJ_TYPE_SERVICE: return ((obs_service_t*)obj)->info.id;
+	default:;
+	}
+
+	return NULL;
+}

+ 1 - 0
libobs/obs.h

@@ -569,6 +569,7 @@ enum obs_obj_type {
 };
 
 EXPORT enum obs_obj_type obs_obj_get_type(void *obj);
+EXPORT const char *obs_obj_get_id(void *obj);
 
 
 /* ------------------------------------------------------------------------- */