summaryrefslogtreecommitdiff
path: root/src/pa-sink-ctl.c
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2011-12-13 08:22:26 +0100
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2011-12-13 08:22:26 +0100
commit462df78982f565f2304373de4858f0155ceb61b7 (patch)
treee873581560a8efa244d293c295b43acae5204cd9 /src/pa-sink-ctl.c
parent3c221589e0833a9865351b08fd9feab0200dc01a (diff)
downloadpa-sink-ctl-462df78982f565f2304373de4858f0155ceb61b7.tar.gz
pa-sink-ctl-462df78982f565f2304373de4858f0155ceb61b7.tar.bz2
pa-sink-ctl-462df78982f565f2304373de4858f0155ceb61b7.zip
Add config property to select display name to use
Diffstat (limited to 'src/pa-sink-ctl.c')
-rw-r--r--src/pa-sink-ctl.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/pa-sink-ctl.c b/src/pa-sink-ctl.c
index 6cd5b88..e63da0a 100644
--- a/src/pa-sink-ctl.c
+++ b/src/pa-sink-ctl.c
@@ -124,6 +124,22 @@ compare_sink_priority(gconstpointer new_data, gconstpointer el_data)
return el->priority - new->priority + 1;
}
+static gchar *
+get_sink_name(struct context *ctx, const pa_sink_info *sink)
+{
+ struct config *cfg = &ctx->config;
+ int i;
+
+ for (i = 0; cfg->name_props && cfg->name_props[i]; ++i) {
+ if (pa_proplist_contains(sink->proplist,
+ cfg->name_props[i]))
+ return g_strdup(pa_proplist_gets(sink->proplist,
+ cfg->name_props[i]));
+ }
+
+ return g_strdup(sink->name);
+}
+
static void
sink_info_cb(pa_context *c, const pa_sink_info *i,
gint is_last, gpointer userdata)
@@ -149,12 +165,7 @@ sink_info_cb(pa_context *c, const pa_sink_info *i,
.mute = i->mute,
.vol = pa_cvolume_avg(&i->volume),
.channels = i->volume.channels,
- .name = g_strdup(i->name),
- .device = pa_proplist_contains(i->proplist,
- "device.product.name") ?
- g_strdup(pa_proplist_gets(i->proplist,
- "device.product.name")) :
- NULL,
+ .name = get_sink_name(ctx, i),
.priority = get_sink_priority(ctx, i),
};