diff options
Diffstat (limited to 'src/module-oss.c')
-rw-r--r-- | src/module-oss.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/module-oss.c b/src/module-oss.c index 5ec9d2d7..b0677584 100644 --- a/src/module-oss.c +++ b/src/module-oss.c @@ -16,6 +16,7 @@ #include "module.h" #include "oss-util.h" #include "sample-util.h" +#include "util.h" struct userdata { struct pa_sink *sink; @@ -180,21 +181,25 @@ int pa_module_init(struct pa_core *c, struct pa_module*m) { u->core = c; + if (mode != O_WRONLY) { + u->source = pa_source_new(c, "oss_input", 0, &ss); + assert(u->source); + u->source->userdata = u; + pa_source_set_owner(u->source, m); + u->sink->description = pa_sprintf_malloc("Open Sound System PCM on '%s'", p); + } else + u->source = NULL; + if (mode != O_RDONLY) { - u->sink = pa_sink_new(c, "dsp", 0, &ss); + u->sink = pa_sink_new(c, "oss_output", 0, &ss); assert(u->sink); u->sink->get_latency = sink_get_latency_cb; u->sink->userdata = u; + pa_sink_set_owner(u->sink, m); + u->sink->description = pa_sprintf_malloc("Open Sound System PCM on '%s'", p); } else u->sink = NULL; - if (mode != O_WRONLY) { - u->source = pa_source_new(c, "dsp", 0, &ss); - assert(u->source); - u->source->userdata = u; - } else - u->source = NULL; - assert(u->source || u->sink); u->io = pa_iochannel_new(c->mainloop, u->source ? fd : -1, u->sink ? fd : 0); |