if (strcmp(id, "comment") == 0)
continue;
if (strcmp(id, "card") == 0) {
+ const char *str;
long v;
if ((err = snd_config_get_integer(n, &v)) < 0) {
- SNDERR("field %s is not an integer", id);
- goto _err;
- }
- *cardp = v;
+ if ((err = snd_config_get_string(n, &str)) < 0) {
+ SNDERR("Invalid field %s", id);
+ goto _err;
+ }
+ *cardp = snd_card_get_index(str);
+ if (*cardp < 0) {
+ SNDERR("Cannot get index for %s", str);
+ err = *cardp;
+ goto _err;
+ }
+ } else
+ *cardp = v;
continue;
}
if (strcmp(id, "iface") == 0 || strcmp(id, "interface") == 0) {