فهرست منبع

libobs: Add load/save signals for sources

These signals are meant to replace the add/remove signals.
jp9000 10 سال پیش
والد
کامیت
59f0ba0c8a
2فایلهای تغییر یافته به همراه13 افزوده شده و 6 حذف شده
  1. 11 6
      libobs/obs-source.c
  2. 2 0
      libobs/obs.c

+ 11 - 6
libobs/obs-source.c

@@ -74,6 +74,8 @@ static const char *source_signals[] = {
 	"void destroy(ptr source)",
 	"void add(ptr source)",
 	"void remove(ptr source)",
+	"void save(ptr source)",
+	"void load(ptr source)",
 	"void activate(ptr source)",
 	"void deactivate(ptr source)",
 	"void show(ptr source)",
@@ -2711,20 +2713,23 @@ void obs_source_save(obs_source_t *source)
 {
 	if (!data_valid(source, "obs_source_save"))
 		return;
-	if (!source->info.save)
-		return;
 
-	source->info.save(source->context.data, source->context.settings);
+	obs_source_dosignal(source, "source_save", "save");
+
+	if (source->info.save)
+		source->info.save(source->context.data,
+				source->context.settings);
 }
 
 void obs_source_load(obs_source_t *source)
 {
 	if (!data_valid(source, "obs_source_load"))
 		return;
-	if (!source->info.load)
-		return;
+	if (source->info.load)
+		source->info.load(source->context.data,
+				source->context.settings);
 
-	source->info.load(source->context.data, source->context.settings);
+	obs_source_dosignal(source, "source_load", "load");
 }
 
 bool obs_source_active(const obs_source_t *source)

+ 2 - 0
libobs/obs.c

@@ -574,6 +574,8 @@ static const char *obs_signals[] = {
 	"void source_destroy(ptr source)",
 	"void source_add(ptr source)",
 	"void source_remove(ptr source)",
+	"void source_save(ptr source)",
+	"void source_load(ptr source)",
 	"void source_activate(ptr source)",
 	"void source_deactivate(ptr source)",
 	"void source_show(ptr source)",