"tsched=<enable system timer based scheduling mode?> "
"fixed_latency_range=<disable latency range changes on underrun?> "
"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 {
char *path;
pa_bool_t fixed_latency_range:1;
pa_bool_t ignore_dB:1;
pa_bool_t deferred_volume:1;
+ bool use_ucm:1;
struct udev* udev;
struct udev_monitor *monitor;
"fixed_latency_range",
"ignore_dB",
"deferred_volume",
+ "use_ucm",
NULL
};
"fixed_latency_range=%s "
"ignore_dB=%s "
"deferred_volume=%s "
+ "use_ucm=%s "
"card_properties=\"module-udev-detect.discovered=1\"",
path_get_card_id(path),
n,
pa_yes_no(u->use_tsched),
pa_yes_no(u->fixed_latency_range),
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_hashmap_put(u->devices, d->path, d);
struct udev_list_entry *item = NULL, *first = NULL;
int fd;
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);
}
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())) {
pa_log("Failed to initialize udev library.");
goto fail;