164 |
if (p->id == unitid && p->name && |
if (p->id == unitid && p->name && |
165 |
(! control || ! p->control || control == p->control)) { |
(! control || ! p->control || control == p->control)) { |
166 |
buflen--; |
buflen--; |
167 |
strncpy(buf, p->name, buflen); |
return strlcpy(buf, p->name, buflen); |
|
buf[buflen] = 0; |
|
|
return strlen(buf); |
|
168 |
} |
} |
169 |
} |
} |
170 |
return 0; |
return 0; |
833 |
if (! len) |
if (! len) |
834 |
len = get_term_name(state, &state->oterm, kctl->id.name, sizeof(kctl->id.name), 1); |
len = get_term_name(state, &state->oterm, kctl->id.name, sizeof(kctl->id.name), 1); |
835 |
if (! len) |
if (! len) |
836 |
len = sprintf(kctl->id.name, "Feature %d", unitid); |
len = snprintf(kctl->id.name, sizeof(kctl->id.name), |
837 |
|
"Feature %d", unitid); |
838 |
} |
} |
839 |
/* determine the stream direction: |
/* determine the stream direction: |
840 |
* if the connected output is USB stream, then it's likely a |
* if the connected output is USB stream, then it's likely a |
842 |
*/ |
*/ |
843 |
if (! mapped_name && ! (state->oterm.type >> 16)) { |
if (! mapped_name && ! (state->oterm.type >> 16)) { |
844 |
if ((state->oterm.type & 0xff00) == 0x0100) { |
if ((state->oterm.type & 0xff00) == 0x0100) { |
845 |
if (len + 8 < sizeof(kctl->id.name)) { |
len = strlcat(kctl->id.name, " Capture", sizeof(kctl->id.name)); |
|
strcpy(kctl->id.name + len, " Capture"); |
|
|
len += 8; |
|
|
} |
|
846 |
} else { |
} else { |
847 |
if (len + 9 < sizeof(kctl->id.name)) { |
len = strlcat(kctl->id.name + len, " Playback", sizeof(kctl->id.name)); |
|
strcpy(kctl->id.name + len, " Playback"); |
|
|
len += 9; |
|
|
} |
|
848 |
} |
} |
849 |
} |
} |
850 |
if (len + 7 < sizeof(kctl->id.name)) |
strlcat(kctl->id.name + len, control == USB_FEATURE_MUTE ? " Switch" : " Volume", |
851 |
strcpy(kctl->id.name + len, control == USB_FEATURE_MUTE ? " Switch" : " Volume"); |
sizeof(kctl->id.name)); |
852 |
break; |
break; |
853 |
|
|
854 |
default: |
default: |
855 |
if (! len) |
if (! len) |
856 |
strcpy(kctl->id.name, audio_feature_info[control-1].name); |
strlcpy(kctl->id.name, audio_feature_info[control-1].name, |
857 |
|
sizeof(kctl->id.name)); |
858 |
break; |
break; |
859 |
} |
} |
860 |
|
|
985 |
len = get_term_name(state, &iterm, kctl->id.name, sizeof(kctl->id.name), 0); |
len = get_term_name(state, &iterm, kctl->id.name, sizeof(kctl->id.name), 0); |
986 |
if (! len) |
if (! len) |
987 |
len = sprintf(kctl->id.name, "Mixer Source %d", in_ch); |
len = sprintf(kctl->id.name, "Mixer Source %d", in_ch); |
988 |
if (len + 7 < sizeof(kctl->id.name)) |
strlcat(kctl->id.name + len, " Volume", sizeof(kctl->id.name)); |
|
strcpy(kctl->id.name + len, " Volume"); |
|
989 |
|
|
990 |
snd_printdd(KERN_INFO "[%d] MU [%s] ch = %d, val = %d/%d\n", |
snd_printdd(KERN_INFO "[%d] MU [%s] ch = %d, val = %d/%d\n", |
991 |
cval->id, kctl->id.name, cval->channels, cval->min, cval->max); |
cval->id, kctl->id.name, cval->channels, cval->min, cval->max); |
1213 |
if (check_mapped_name(state, unitid, cval->control, kctl->id.name, sizeof(kctl->id.name))) |
if (check_mapped_name(state, unitid, cval->control, kctl->id.name, sizeof(kctl->id.name))) |
1214 |
; |
; |
1215 |
else if (info->name) |
else if (info->name) |
1216 |
strcpy(kctl->id.name, info->name); |
strlcpy(kctl->id.name, info->name, sizeof(kctl->id.name)); |
1217 |
else { |
else { |
1218 |
nameid = dsc[12 + num_ins + dsc[11 + num_ins]]; |
nameid = dsc[12 + num_ins + dsc[11 + num_ins]]; |
1219 |
len = 0; |
len = 0; |
1220 |
if (nameid) |
if (nameid) |
1221 |
len = snd_usb_copy_string_desc(state, nameid, kctl->id.name, sizeof(kctl->id.name)); |
len = snd_usb_copy_string_desc(state, nameid, kctl->id.name, sizeof(kctl->id.name)); |
1222 |
if (! len) { |
if (! len) |
1223 |
strncpy(kctl->id.name, name, sizeof(kctl->id.name) - 1); |
strlcpy(kctl->id.name, name, sizeof(kctl->id.name)); |
|
kctl->id.name[sizeof(kctl->id.name)-1] = 0; |
|
|
} |
|
|
} |
|
|
len = strlen(kctl->id.name); |
|
|
if (len + sizeof(valinfo->suffix) + 1 < sizeof(kctl->id.name)) { |
|
|
kctl->id.name[len] = ' '; |
|
|
strcpy(kctl->id.name + len + 1, valinfo->suffix); |
|
1224 |
} |
} |
1225 |
|
strlcat(kctl->id.name, " ", sizeof(kctl->id.name)); |
1226 |
|
strlcat(kctl->id.name, valinfo->suffix, sizeof(kctl->id.name)); |
1227 |
|
|
1228 |
snd_printdd(KERN_INFO "[%d] PU [%s] ch = %d, val = %d/%d\n", |
snd_printdd(KERN_INFO "[%d] PU [%s] ch = %d, val = %d/%d\n", |
1229 |
cval->id, kctl->id.name, cval->channels, cval->min, cval->max); |
cval->id, kctl->id.name, cval->channels, cval->min, cval->max); |
1230 |
if ((err = add_control_to_empty(state->chip->card, kctl)) < 0) |
if ((err = add_control_to_empty(state->chip->card, kctl)) < 0) |
1425 |
len = get_term_name(state, &state->oterm, |
len = get_term_name(state, &state->oterm, |
1426 |
kctl->id.name, sizeof(kctl->id.name), 0); |
kctl->id.name, sizeof(kctl->id.name), 0); |
1427 |
if (! len) |
if (! len) |
1428 |
len = sprintf(kctl->id.name, "USB"); |
strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name)); |
1429 |
if ((state->oterm.type & 0xff00) == 0x0100) { |
|
1430 |
if (len + 15 < sizeof(kctl->id.name)) |
if ((state->oterm.type & 0xff00) == 0x0100) |
1431 |
strcpy(kctl->id.name + len, " Capture Source"); |
strlcat(kctl->id.name, " Capture Source", sizeof(kctl->id.name)); |
1432 |
} else { |
else |
1433 |
if (len + 16 < sizeof(kctl->id.name)) |
strlcat(kctl->id.name, " Playback Source", sizeof(kctl->id.name)); |
|
strcpy(kctl->id.name + len, " Playback Source"); |
|
|
} |
|
1434 |
} |
} |
1435 |
|
|
1436 |
snd_printdd(KERN_INFO "[%d] SU [%s] items = %d\n", |
snd_printdd(KERN_INFO "[%d] SU [%s] items = %d\n", |