/[openvortex]/alsa/alsa-kernel/usb/usbmixer.c
ViewVC logotype

Diff of /alsa/alsa-kernel/usb/usbmixer.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by vizard, Sat May 31 02:35:13 2003 UTC revision 1.3 by vizard, Sun Jun 15 21:01:32 2003 UTC
# Line 164  static int check_mapped_name(mixer_build Line 164  static int check_mapped_name(mixer_build
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;
# Line 835  static void build_feature_ctl(mixer_buil Line 833  static void build_feature_ctl(mixer_buil
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
# Line 843  static void build_feature_ctl(mixer_buil Line 842  static void build_feature_ctl(mixer_buil
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    
# Line 991  static void build_mixer_unit_ctl(mixer_b Line 985  static void build_mixer_unit_ctl(mixer_b
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);
# Line 1220  static int build_audio_procunit(mixer_bu Line 1213  static int build_audio_procunit(mixer_bu
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)
# Line 1436  static int parse_audio_selector_unit(mix Line 1425  static int parse_audio_selector_unit(mix
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",

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26