diff options
author | Lennart Poettering <lennart@poettering.net> | 2004-09-07 14:58:42 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2004-09-07 14:58:42 +0000 |
commit | 93c8fe6577b59176ed6a54a1ae98f8749f122dc8 (patch) | |
tree | 7d3864484d318a41024c3cfa9af0b158bc24f6c3 /polyp/namereg.c | |
parent | 0fa499db56dc9111ddd866080606cb8b0379280e (diff) |
change the way the default sink/source is selected
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@183 fefdeb5f-60dc-0310-8127-8f9354f1896f
Diffstat (limited to 'polyp/namereg.c')
-rw-r--r-- | polyp/namereg.c | 69 |
1 files changed, 45 insertions, 24 deletions
diff --git a/polyp/namereg.c b/polyp/namereg.c index 44a9cdc6..5791a3e4 100644 --- a/polyp/namereg.c +++ b/polyp/namereg.c @@ -122,30 +122,10 @@ void* pa_namereg_get(struct pa_core *c, const char *name, enum pa_namereg_type t assert(c); if (!name) { - if (type == PA_NAMEREG_SOURCE) { - if (!c->default_source_name) { - struct pa_source *s; - - for (s = pa_idxset_first(c->sources, &index); s; s = pa_idxset_next(c->sources, &index)) - if (!s->monitor_of) { - pa_namereg_set_default(c, s->name, PA_NAMEREG_SOURCE); - break; - } - } - - name = c->default_source_name; - - } else if (type == PA_NAMEREG_SINK) { - - if (!c->default_sink_name) { - struct pa_sink *s; - - if ((s = pa_idxset_first(c->sinks, NULL))) - pa_namereg_set_default(c, s->name, PA_NAMEREG_SINK); - } - - name = c->default_sink_name; - } + if (type == PA_NAMEREG_SOURCE) + name = pa_namereg_get_default_source_name(c); + else if (type == PA_NAMEREG_SINK) + name = pa_namereg_get_default_sink_name(c); } if (!name) @@ -197,3 +177,44 @@ void pa_namereg_set_default(struct pa_core*c, const char *name, enum pa_namereg_ *s = pa_xstrdup(name); pa_subscription_post(c, PA_SUBSCRIPTION_EVENT_SERVER|PA_SUBSCRIPTION_EVENT_CHANGE, PA_INVALID_INDEX); } + +const char *pa_namereg_get_default_sink_name(struct pa_core *c) { + struct pa_sink *s; + assert(c); + + if (c->default_sink_name) + return c->default_sink_name; + + if ((s = pa_idxset_first(c->sinks, NULL))) + pa_namereg_set_default(c, s->name, PA_NAMEREG_SINK); + + if (c->default_sink_name) + return c->default_sink_name; + + return NULL; +} + +const char *pa_namereg_get_default_source_name(struct pa_core *c) { + struct pa_source *s; + uint32_t index; + + assert(c); + + if (c->default_source_name) + return c->default_source_name; + + for (s = pa_idxset_first(c->sources, &index); s; s = pa_idxset_next(c->sources, &index)) + if (!s->monitor_of) { + pa_namereg_set_default(c, s->name, PA_NAMEREG_SOURCE); + break; + } + + if (!c->default_source_name) + if ((s = pa_idxset_first(c->sources, NULL))) + pa_namereg_set_default(c, s->name, PA_NAMEREG_SOURCE); + + if (c->default_source_name) + return c->default_source_name; + + return NULL; +} |