From f13bbd576fef8911275c8eed41ef425163b70398 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 8 Jun 2009 16:58:45 +0200 Subject: prop: introduce new PA_PROP_DEVICE_INTENDED_ROLES property --- src/pulsecore/card.c | 1 + src/pulsecore/sink.c | 17 +++++++++++++++++ src/pulsecore/sink.h | 1 + src/pulsecore/source.c | 1 + 4 files changed, 20 insertions(+) (limited to 'src/pulsecore') 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); -- cgit