CARDINFO{mixername}=="Realtek ALC880", \
CARDINFO{components}=="*HDA:10ec0880 HDA:11c13026*", \
GOTO="Acer Travelmate 8100"
-ERROR="Unknown hardware: \"$cardinfo{mixername}\" \"$cardinfo{components}\"\n"
-ERROR="Hardware is left uninitialized"
+CARDINFO{mixername}=="Analog Devices AD1984", \
+ ATTR{subsystem_vendor}=="0x17aa", ATTR{subsystem_device}=="0x20ac", \
+ GOTO="Lenovo T61"
+
+ERROR="Unknown hardware: \"$cardinfo{mixername}\" \"$cardinfo{components}\" \"$attr{subsystem_vendor}" \"$attr{subsystem_device}\"\n"
+ERROR="Hardware is left uninitialized\n"
EXIT="99"
LABEL="Acer Travelmate 8100"
CTL{name}="Capture Volume", CTL{value}="65,65"
CTL{name}="Capture Switch", CTL{value}="on,on"
EXIT="0"
+
+LABEL="Lenovo T61"
+# playback
+CTL{reset}="mixer"
+CTL{name}="Headphone Playback Switch", CTL{value}="on,on"
+CTL{name}="PCM Playback Volume", CTL{value}="150,550"
+# capture (Internal Mic)
+CTL{name}="Input Source", CTL{value}="1"
+CTL{name}="Internal Mic Boost", CTL{value}="1"
+CTL{name}="Capture Volume", CTL{value}="45,45"
+CTL{name}="Capture Switch", CTL{value}="on,on"
+EXIT="0"
}
if (strncasecmp(attr, "value", 5) == 0) {
err = check_id_changed(space, 1);
- if (err < 0)
+ if (err < 0) {
+ Perror(space, "control element not found");
return err;
+ }
err = set_ctl_value(space, value);
if (err < 0) {
space->ctl_id_changed |= 2;
goto invalid;
}
if (op == KEY_OP_ASSIGN) {
+ strlcpy(result, value, sizeof(result));
+ apply_format(space, result, sizeof(result));
dbg("ctl assign: '%s' '%s'", value, attr);
- apply_format(result, value, sizeof(result));
err = elemid_set(space, attr, result);
if (space->program_result) {
free(space->program_result);
}
snprintf(string, sizeof(string), "%i", err);
space->program_result = strdup(string);
- if (err < 0 || space->program_result == NULL)
+ if (err < 0 || space->program_result == NULL) {
+ err = 0;
break;
+ }
} else if (op == KEY_OP_MATCH || op == KEY_OP_NOMATCH) {
dbg("ctl match: '%s' '%s'", value, attr);
temp = (char *)elemid_get(space, attr);