Преглед на файлове

libobs: Add pause callback support for sources

Sergo преди 2 години
родител
ревизия
9eea0d8921
променени са 2 файла, в които са добавени 32 реда и са изтрити 0 реда
  1. 26 0
      libobs/obs-source.c
  2. 6 0
      libobs/obs.h

+ 26 - 0
libobs/obs-source.c

@@ -5732,6 +5732,32 @@ void obs_source_get_audio_mix(const obs_source_t *source,
 	}
 }
 
+void obs_source_add_audio_pause_callback(obs_source_t *source,
+					 signal_callback_t callback,
+					 void *param)
+{
+	if (!obs_source_valid(source, "obs_source_add_audio_pause_callback"))
+		return;
+
+	signal_handler_t *handler = obs_source_get_signal_handler(source);
+
+	signal_handler_connect(handler, "media_pause", callback, param);
+	signal_handler_connect(handler, "media_stopped", callback, param);
+}
+
+void obs_source_remove_audio_pause_callback(obs_source_t *source,
+					    signal_callback_t callback,
+					    void *param)
+{
+	if (!obs_source_valid(source, "obs_source_remove_audio_pause_callback"))
+		return;
+
+	signal_handler_t *handler = obs_source_get_signal_handler(source);
+
+	signal_handler_disconnect(handler, "media_pause", callback, param);
+	signal_handler_disconnect(handler, "media_stopped", callback, param);
+}
+
 void obs_source_add_audio_capture_callback(obs_source_t *source,
 					   obs_source_audio_capture_t callback,
 					   void *param)

+ 6 - 0
libobs/obs.h

@@ -1311,6 +1311,12 @@ typedef void (*obs_source_audio_capture_t)(void *param, obs_source_t *source,
 					   const struct audio_data *audio_data,
 					   bool muted);
 
+EXPORT void obs_source_add_audio_pause_callback(obs_source_t *source,
+						signal_callback_t callback,
+						void *param);
+EXPORT void obs_source_remove_audio_pause_callback(obs_source_t *source,
+						   signal_callback_t callback,
+						   void *param);
 EXPORT void obs_source_add_audio_capture_callback(
 	obs_source_t *source, obs_source_audio_capture_t callback, void *param);
 EXPORT void obs_source_remove_audio_capture_callback(