]> code.delx.au - pulseaudio/blobdiff - src/modules/module-always-sink.c
Remove unnecessary #includes
[pulseaudio] / src / modules / module-always-sink.c
index cd3f31122daa440269442b80bf9e942f25c8f9ec..4c871da4bc8c169a6f2e2f4544ec97f8ce40f429 100644 (file)
@@ -5,7 +5,7 @@
 
     PulseAudio is free software; you can redistribute it and/or modify
     it under the terms of the GNU Lesser General Public License as published
-    by the Free Software Foundation; either version 2 of the License,
+    by the Free Software Foundation; either version 2.1 of the License,
     or (at your option) any later version.
 
     PulseAudio is distributed in the hope that it will be useful, but
 #endif
 
 #include <pulse/xmalloc.h>
+#include <pulse/i18n.h>
 
 #include <pulsecore/core.h>
-#include <pulsecore/sink-input.h>
+#include <pulsecore/sink.h>
 #include <pulsecore/modargs.h>
 #include <pulsecore/log.h>
-#include <pulsecore/namereg.h>
 #include <pulsecore/core-util.h>
 
 #include "module-always-sink-symdef.h"
 
 PA_MODULE_AUTHOR("Colin Guthrie");
-PA_MODULE_DESCRIPTION("Always keeps at least one sink loaded even if it's a null one");
+PA_MODULE_DESCRIPTION(_("Always keeps at least one sink loaded even if it's a null one"));
 PA_MODULE_VERSION(PACKAGE_VERSION);
 PA_MODULE_LOAD_ONCE(TRUE);
 PA_MODULE_USAGE(
@@ -78,7 +78,8 @@ static void load_null_sink_if_needed(pa_core *c, pa_sink *sink, struct userdata*
 
     u->ignore = TRUE;
 
-    t = pa_sprintf_malloc("sink_name=%s", u->sink_name);
+    t = pa_sprintf_malloc("sink_name=%s sink_properties='device.description=\"%s\"'", u->sink_name,
+                          _("Dummy Output"));
     m = pa_module_load(c, "module-null-sink", t);
     u->null_module = m ? m->index : PA_INVALID_INDEX;
     pa_xfree(t);
@@ -100,6 +101,10 @@ static pa_hook_result_t put_hook_callback(pa_core *c, pa_sink *sink, void* userd
     if (u->ignore)
         return PA_HOOK_OK;
 
+    /* There's no point in doing anything if the core is shut down anyway */
+    if (c->state == PA_CORE_SHUTDOWN)
+        return PA_HOOK_OK;
+
     /* Auto-loaded null-sink not active, so ignoring newly detected sink. */
     if (u->null_module == PA_INVALID_INDEX)
         return PA_HOOK_OK;
@@ -130,6 +135,10 @@ static pa_hook_result_t unlink_hook_callback(pa_core *c, pa_sink *sink, void* us
         return PA_HOOK_OK;
     }
 
+    /* There's no point in doing anything if the core is shut down anyway */
+    if (c->state == PA_CORE_SHUTDOWN)
+        return PA_HOOK_OK;
+
     load_null_sink_if_needed(c, sink, u);
 
     return PA_HOOK_OK;
@@ -172,7 +181,7 @@ void pa__done(pa_module*m) {
         pa_hook_slot_free(u->put_slot);
     if (u->unlink_slot)
         pa_hook_slot_free(u->unlink_slot);
-    if (u->null_module != PA_INVALID_INDEX)
+    if (u->null_module != PA_INVALID_INDEX && m->core->state != PA_CORE_SHUTDOWN)
         pa_module_unload_request_by_index(m->core, u->null_module, TRUE);
 
     pa_xfree(u->sink_name);