udev: Add use_ucm module argument

This commit is contained in:
Tanu Kaskinen 2013-02-06 14:11:40 +02:00
parent 83d44139d3
commit 4963db8dc0

View file

@ -47,7 +47,8 @@ PA_MODULE_USAGE(
"tsched=<enable system timer based scheduling mode?> " "tsched=<enable system timer based scheduling mode?> "
"fixed_latency_range=<disable latency range changes on underrun?> " "fixed_latency_range=<disable latency range changes on underrun?> "
"ignore_dB=<ignore dB information from the device?> " "ignore_dB=<ignore dB information from the device?> "
"deferred_volume=<syncronize sw and hw volume changes in IO-thread?>"); "deferred_volume=<syncronize sw and hw volume changes in IO-thread?> "
"use_ucm=<use ALSA UCM for card configuration?>");
struct device { struct device {
char *path; char *path;
@ -66,6 +67,7 @@ struct userdata {
pa_bool_t fixed_latency_range:1; pa_bool_t fixed_latency_range:1;
pa_bool_t ignore_dB:1; pa_bool_t ignore_dB:1;
pa_bool_t deferred_volume:1; pa_bool_t deferred_volume:1;
bool use_ucm:1;
struct udev* udev; struct udev* udev;
struct udev_monitor *monitor; struct udev_monitor *monitor;
@ -80,6 +82,7 @@ static const char* const valid_modargs[] = {
"fixed_latency_range", "fixed_latency_range",
"ignore_dB", "ignore_dB",
"deferred_volume", "deferred_volume",
"use_ucm",
NULL NULL
}; };
@ -396,6 +399,7 @@ static void card_changed(struct userdata *u, struct udev_device *dev) {
"fixed_latency_range=%s " "fixed_latency_range=%s "
"ignore_dB=%s " "ignore_dB=%s "
"deferred_volume=%s " "deferred_volume=%s "
"use_ucm=%s "
"card_properties=\"module-udev-detect.discovered=1\"", "card_properties=\"module-udev-detect.discovered=1\"",
path_get_card_id(path), path_get_card_id(path),
n, n,
@ -403,7 +407,8 @@ static void card_changed(struct userdata *u, struct udev_device *dev) {
pa_yes_no(u->use_tsched), pa_yes_no(u->use_tsched),
pa_yes_no(u->fixed_latency_range), pa_yes_no(u->fixed_latency_range),
pa_yes_no(u->ignore_dB), pa_yes_no(u->ignore_dB),
pa_yes_no(u->deferred_volume)); pa_yes_no(u->deferred_volume),
pa_yes_no(u->use_ucm));
pa_xfree(n); pa_xfree(n);
pa_hashmap_put(u->devices, d->path, d); pa_hashmap_put(u->devices, d->path, d);
@ -670,7 +675,7 @@ int pa__init(pa_module *m) {
struct udev_list_entry *item = NULL, *first = NULL; struct udev_list_entry *item = NULL, *first = NULL;
int fd; int fd;
pa_bool_t use_tsched = TRUE, fixed_latency_range = FALSE, ignore_dB = FALSE, deferred_volume = m->core->deferred_volume; pa_bool_t use_tsched = TRUE, fixed_latency_range = FALSE, ignore_dB = FALSE, deferred_volume = m->core->deferred_volume;
bool use_ucm = true;
pa_assert(m); pa_assert(m);
@ -708,6 +713,12 @@ int pa__init(pa_module *m) {
} }
u->deferred_volume = deferred_volume; u->deferred_volume = deferred_volume;
if (pa_modargs_get_value_boolean(ma, "use_ucm", &use_ucm) < 0) {
pa_log("Failed to parse use_ucm= argument.");
goto fail;
}
u->use_ucm = use_ucm;
if (!(u->udev = udev_new())) { if (!(u->udev = udev_new())) {
pa_log("Failed to initialize udev library."); pa_log("Failed to initialize udev library.");
goto fail; goto fail;