Lines Matching refs:sink
29 #include <pulsecore/sink.h>
34 PA_MODULE_DESCRIPTION(_("Always keeps at least one sink loaded even if it's a null one"));
38 "sink_name=<name of sink>");
53 static void load_null_sink_if_needed(pa_core *c, pa_sink *sink, struct userdata* u) {
63 return; /* We've already got a null-sink loaded */
66 * sinks. Ignore the sink passed in (if it's not null), and
69 if (!sink || ((target != sink) && !pa_sink_is_filter(target)))
75 pa_log_debug("Autoloading null-sink as no other sinks detected.");
81 pa_module_load(&m, c, "module-null-sink", t);
88 pa_log_warn("Unable to load module-null-sink");
91 static pa_hook_result_t put_hook_callback(pa_core *c, pa_sink *sink, void* userdata) {
95 pa_assert(sink);
106 /* Auto-loaded null-sink not active, so ignoring newly detected sink. */
111 if (sink->module && sink->module->index == u->null_module)
114 /* We don't count filter sinks since they need a real sink */
115 if (pa_sink_is_filter(sink))
118 pa_log_info("A new sink has been discovered. Unloading null-sink.");
126 static pa_hook_result_t unlink_hook_callback(pa_core *c, pa_sink *sink, void* userdata) {
130 pa_assert(sink);
133 /* First check to see if it's our own null-sink that's been removed... */
134 if (u->null_module != PA_INVALID_INDEX && sink->module && sink->module->index == u->null_module) {
135 pa_log_debug("Autoloaded null-sink removed");
144 load_null_sink_if_needed(c, sink, u);