summaryrefslogtreecommitdiffstats
path: root/src/pulsecore
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2009-06-08 16:58:45 +0200
committerLennart Poettering <lennart@poettering.net>2009-06-08 16:58:45 +0200
commitf13bbd576fef8911275c8eed41ef425163b70398 (patch)
tree5c68bc6ef12e4374eccdf98aeffd7d60dab7612a /src/pulsecore
parent12d53826f692f5dac60a5026521cffb5c5fb7b85 (diff)
prop: introduce new PA_PROP_DEVICE_INTENDED_ROLES property
Diffstat (limited to 'src/pulsecore')
-rw-r--r--src/pulsecore/card.c1
-rw-r--r--src/pulsecore/sink.c17
-rw-r--r--src/pulsecore/sink.h1
-rw-r--r--src/pulsecore/source.c1
4 files changed, 20 insertions, 0 deletions
diff --git a/src/pulsecore/card.c b/src/pulsecore/card.c
index 59b8cda6..9c16ef2d 100644
--- a/src/pulsecore/card.c
+++ b/src/pulsecore/card.c
@@ -164,6 +164,7 @@ pa_card *pa_card_new(pa_core *core, pa_card_new_data *data) {
pa_device_init_description(c->proplist);
pa_device_init_icon(c->proplist, TRUE);
+ pa_device_init_intended_roles(c->proplist);
pa_assert_se(pa_idxset_put(core->cards, c, &c->index) >= 0);
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index 13f0e11e..1da094af 100644
--- a/src/pulsecore/sink.c
+++ b/src/pulsecore/sink.c
@@ -177,6 +177,7 @@ pa_sink* pa_sink_new(
pa_device_init_description(data->proplist);
pa_device_init_icon(data->proplist, TRUE);
+ pa_device_init_intended_roles(data->proplist);
if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_SINK_FIXATE], data) < 0) {
pa_xfree(s);
@@ -2287,3 +2288,19 @@ pa_bool_t pa_device_init_description(pa_proplist *p) {
return FALSE;
}
+
+pa_bool_t pa_device_init_intended_roles(pa_proplist *p) {
+ const char *s;
+ pa_assert(p);
+
+ if (pa_proplist_contains(p, PA_PROP_DEVICE_INTENDED_ROLES))
+ return TRUE;
+
+ if ((s = pa_proplist_gets(p, PA_PROP_DEVICE_FORM_FACTOR)))
+ if (pa_streq(s, "handset") || pa_streq(s, "hands-free")) {
+ pa_proplist_sets(p, PA_PROP_DEVICE_INTENDED_ROLES, "phone");
+ return TRUE;
+ }
+
+ return FALSE;
+}
diff --git a/src/pulsecore/sink.h b/src/pulsecore/sink.h
index 4dce3f93..0f32d163 100644
--- a/src/pulsecore/sink.h
+++ b/src/pulsecore/sink.h
@@ -241,6 +241,7 @@ void pa_sink_mute_changed(pa_sink *s, pa_bool_t new_muted);
pa_bool_t pa_device_init_description(pa_proplist *p);
pa_bool_t pa_device_init_icon(pa_proplist *p, pa_bool_t is_sink);
+pa_bool_t pa_device_init_intended_roles(pa_proplist *p);
/**** May be called by everyone, from main context */
diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c
index 53697c57..d35c8523 100644
--- a/src/pulsecore/source.c
+++ b/src/pulsecore/source.c
@@ -167,6 +167,7 @@ pa_source* pa_source_new(
pa_device_init_description(data->proplist);
pa_device_init_icon(data->proplist, FALSE);
+ pa_device_init_intended_roles(data->proplist);
if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_SOURCE_FIXATE], data) < 0) {
pa_xfree(s);