Pārlūkot izejas kodu

mac-capture: Separate audio shudown code

This allows the code to be used elsewhere as needed.
jp9000 10 gadi atpakaļ
vecāks
revīzija
8bc2288dfe
1 mainītis faili ar 15 papildinājumiem un 9 dzēšanām
  1. 15 9
      plugins/mac-capture/mac-audio.c

+ 15 - 9
plugins/mac-capture/mac-audio.c

@@ -643,20 +643,26 @@ static const char *coreaudio_output_getname(void)
 	return TEXT_AUDIO_OUTPUT;
 }
 
+static void coreaudio_shutdown(struct coreaudio_data *ca)
+{
+	if (ca->reconnecting) {
+		os_event_signal(ca->exit_event);
+		pthread_join(ca->reconnect_thread, NULL);
+		os_event_reset(ca->exit_event);
+	}
+
+	coreaudio_uninit(ca);
+
+	if (ca->unit)
+		AudioComponentInstanceDispose(ca->unit);
+}
+
 static void coreaudio_destroy(void *data)
 {
 	struct coreaudio_data *ca = data;
 
 	if (ca) {
-		if (ca->reconnecting) {
-			os_event_signal(ca->exit_event);
-			pthread_join(ca->reconnect_thread, NULL);
-		}
-
-		coreaudio_uninit(ca);
-
-		if (ca->unit)
-			AudioComponentInstanceDispose(ca->unit);
+		coreaudio_shutdown(ca);
 
 		os_event_destroy(ca->exit_event);
 		bfree(ca->device_name);