summaryrefslogtreecommitdiff
path: root/src/modules/alsa/alsa-mixer.c
diff options
context:
space:
mode:
authorTanu Kaskinen <tanu.kaskinen@digia.com>2012-04-13 14:48:28 +0300
committerTanu Kaskinen <tanuk@iki.fi>2012-06-29 13:24:52 +0300
commit88052dbdb97e5e4c58ab6eed0c1eb80b77916ef5 (patch)
treea6d7587c3972ffe5d350614c129cb97a64b27db6 /src/modules/alsa/alsa-mixer.c
parentd3bced8bee825c7d7c1228296bc1cfb42a030c71 (diff)
alsa-mixer: Add support for defining port property lists in the path configuration files.
Diffstat (limited to 'src/modules/alsa/alsa-mixer.c')
-rw-r--r--src/modules/alsa/alsa-mixer.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/modules/alsa/alsa-mixer.c b/src/modules/alsa/alsa-mixer.c
index b82d8e8fb..63370da18 100644
--- a/src/modules/alsa/alsa-mixer.c
+++ b/src/modules/alsa/alsa-mixer.c
@@ -518,6 +518,7 @@ void pa_alsa_path_free(pa_alsa_path *p) {
setting_free(s);
}
+ pa_proplist_free(p->proplist);
pa_xfree(p->name);
pa_xfree(p->description);
pa_xfree(p);
@@ -2388,6 +2389,7 @@ pa_alsa_path* pa_alsa_path_new(const char *paths_dir, const char *fname, pa_alsa
p = pa_xnew0(pa_alsa_path, 1);
n = pa_path_get_filename(fname);
p->name = pa_xstrndup(n, strcspn(n, "."));
+ p->proplist = pa_proplist_new();
p->direction = direction;
items[0].data = &p->priority;
@@ -2399,7 +2401,7 @@ pa_alsa_path* pa_alsa_path_new(const char *paths_dir, const char *fname, pa_alsa
fn = pa_maybe_prefix_path(fname, paths_dir);
- r = pa_config_parse(fn, NULL, items, NULL, p);
+ r = pa_config_parse(fn, NULL, items, p->proplist, p);
pa_xfree(fn);
if (r < 0)
@@ -4380,13 +4382,19 @@ static pa_device_port* device_port_alsa_init(pa_hashmap *ports,
pa_hashmap *extra,
pa_core *core) {
- pa_device_port * p = pa_hashmap_get(ports, name);
+ pa_device_port *p;
+
+ pa_assert(path);
+
+ p = pa_hashmap_get(ports, name);
+
if (!p) {
pa_alsa_port_data *data;
p = pa_device_port_new(core, name, description, sizeof(pa_alsa_port_data));
pa_assert(p);
pa_hashmap_put(ports, p->name, p);
+ pa_proplist_update(p->proplist, PA_UPDATE_REPLACE, path->proplist);
data = PA_DEVICE_PORT_DATA(p);
data->path = path;