summaryrefslogtreecommitdiffstats
path: root/polyp/namereg.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2004-09-07 14:58:42 +0000
committerLennart Poettering <lennart@poettering.net>2004-09-07 14:58:42 +0000
commit93c8fe6577b59176ed6a54a1ae98f8749f122dc8 (patch)
tree7d3864484d318a41024c3cfa9af0b158bc24f6c3 /polyp/namereg.c
parent0fa499db56dc9111ddd866080606cb8b0379280e (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.c69
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;
+}