[BACK]Return to mixerctl.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mixerctl

Diff for /src/usr.bin/mixerctl/mixerctl.c between version 1.17 and 1.18

version 1.17, 2005/01/04 18:20:37 version 1.18, 2005/01/04 18:22:09
Line 87 
Line 87 
 findfield(char *name)  findfield(char *name)
 {  {
         int i;          int i;
         for(i = 0; fields[i].name; i++)          for (i = 0; fields[i].name; i++)
                 if (strcmp(fields[i].name, name) == 0)                  if (strcmp(fields[i].name, name) == 0)
                         return &fields[i];                          return &fields[i];
         return (0);          return (0);
Line 104 
Line 104 
         m = p->valp;          m = p->valp;
         switch(m->type) {          switch(m->type) {
         case AUDIO_MIXER_ENUM:          case AUDIO_MIXER_ENUM:
                 for(i = 0; i < p->infp->un.e.num_mem; i++)                  for (i = 0; i < p->infp->un.e.num_mem; i++)
                         if (p->infp->un.e.member[i].ord == m->un.ord)                          if (p->infp->un.e.member[i].ord == m->un.ord)
                                 fprintf(out, "%s",                                  fprintf(out, "%s",
                                         p->infp->un.e.member[i].label.name);                                          p->infp->un.e.member[i].label.name);
                 if (prvalset) {                  if (prvalset) {
                         fprintf(out, "  [ ");                          fprintf(out, "  [ ");
                         for(i = 0; i < p->infp->un.e.num_mem; i++)                          for (i = 0; i < p->infp->un.e.num_mem; i++)
                                 fprintf(out, "%s ", p->infp->un.e.member[i].label.name);                                  fprintf(out, "%s ", p->infp->un.e.member[i].label.name);
                         fprintf(out, "]");                          fprintf(out, "]");
                 }                  }
                 break;                  break;
         case AUDIO_MIXER_SET:          case AUDIO_MIXER_SET:
                 for(n = i = 0; i < p->infp->un.s.num_mem; i++)                  for (n = i = 0; i < p->infp->un.s.num_mem; i++)
                         if (m->un.mask & p->infp->un.s.member[i].mask)                          if (m->un.mask & p->infp->un.s.member[i].mask)
                                 fprintf(out, "%s%s", n++ ? "," : "",                                  fprintf(out, "%s%s", n++ ? "," : "",
                                         p->infp->un.s.member[i].label.name);                                          p->infp->un.s.member[i].label.name);
                 if (prvalset) {                  if (prvalset) {
                         fprintf(out, "  { ");                          fprintf(out, "  { ");
                         for(i = 0; i < p->infp->un.s.num_mem; i++)                          for (i = 0; i < p->infp->un.s.num_mem; i++)
                                 fprintf(out, "%s ", p->infp->un.s.member[i].label.name);                                  fprintf(out, "%s ", p->infp->un.s.member[i].label.name);
                         fprintf(out, "}");                          fprintf(out, "}");
                 }                  }
Line 152 
Line 152 
         m = p->valp;          m = p->valp;
         switch(m->type) {          switch(m->type) {
         case AUDIO_MIXER_ENUM:          case AUDIO_MIXER_ENUM:
                 for(i = 0; i < p->infp->un.e.num_mem; i++)                  for (i = 0; i < p->infp->un.e.num_mem; i++)
                         if (strcmp(p->infp->un.e.member[i].label.name, q) == 0)                          if (strcmp(p->infp->un.e.member[i].label.name, q) == 0)
                                 break;                                  break;
                 if (i < p->infp->un.e.num_mem)                  if (i < p->infp->un.e.num_mem)
Line 162 
Line 162 
                 break;                  break;
         case AUDIO_MIXER_SET:          case AUDIO_MIXER_SET:
                 mask = 0;                  mask = 0;
                 for(v = 0; q && *q; q = s) {                  for (v = 0; q && *q; q = s) {
                         if (s = strchr(q, ','))                          if (s = strchr(q, ','))
                                 *s++ = 0;                                  *s++ = 0;
                         for (i = 0; i < p->infp->un.s.num_mem; i++)                          for (i = 0; i < p->infp->un.s.num_mem; i++)
Line 278 
Line 278 
                 if ((fd = open(file, O_RDONLY)) == -1)                  if ((fd = open(file, O_RDONLY)) == -1)
                         err(1, "%s", file);                          err(1, "%s", file);
   
         for(ndev = 0; ; ndev++) {          for (ndev = 0; ; ndev++) {
                 dinfo.index = ndev;                  dinfo.index = ndev;
                 if (ioctl(fd, AUDIO_MIXER_DEVINFO, &dinfo) < 0)                  if (ioctl(fd, AUDIO_MIXER_DEVINFO, &dinfo) < 0)
                         break;                          break;
Line 293 
Line 293 
             (values = calloc(ndev, sizeof *values)) == NULL)              (values = calloc(ndev, sizeof *values)) == NULL)
                 err(1, "calloc()");                  err(1, "calloc()");
   
         for(i = 0; i < ndev; i++) {          for (i = 0; i < ndev; i++) {
                 infos[i].index = i;                  infos[i].index = i;
                 if (ioctl(fd, AUDIO_MIXER_DEVINFO, &infos[i]) < 0) {                  if (ioctl(fd, AUDIO_MIXER_DEVINFO, &infos[i]) < 0) {
                         ndev--, i--;                          ndev--, i--;
Line 301 
Line 301 
                 }                  }
         }          }
   
         for(i = 0; i < ndev; i++) {          for (i = 0; i < ndev; i++) {
                 rfields[i].name = infos[i].label.name;                  rfields[i].name = infos[i].label.name;
                 rfields[i].valp = &values[i];                  rfields[i].valp = &values[i];
                 rfields[i].infp = &infos[i];                  rfields[i].infp = &infos[i];
         }          }
   
         for(i = 0; i < ndev; i++) {          for (i = 0; i < ndev; i++) {
                 values[i].dev = i;                  values[i].dev = i;
                 values[i].type = infos[i].type;                  values[i].type = infos[i].type;
                 if (infos[i].type != AUDIO_MIXER_CLASS) {                  if (infos[i].type != AUDIO_MIXER_CLASS) {
Line 320 
Line 320 
                 }                  }
         }          }
   
         for(j = i = 0; i < ndev; i++) {          for (j = i = 0; i < ndev; i++) {
                 if (infos[i].type != AUDIO_MIXER_CLASS &&                  if (infos[i].type != AUDIO_MIXER_CLASS &&
                     infos[i].type != -1) {                      infos[i].type != -1) {
                         fields[j++] = rfields[i];                          fields[j++] = rfields[i];
                         for(pos = infos[i].next; pos != AUDIO_MIXER_LAST;                          for (pos = infos[i].next; pos != AUDIO_MIXER_LAST;
                             pos = infos[pos].next) {                              pos = infos[pos].next) {
                                 fields[j] = rfields[pos];                                  fields[j] = rfields[pos];
                                 fields[j].name = catstr(rfields[i].name,                                  fields[j].name = catstr(rfields[i].name,
Line 335 
Line 335 
                 }                  }
         }          }
   
         for(i = 0; i < j; i++) {          for (i = 0; i < j; i++) {
                 int cls = fields[i].infp->mixer_class;                  int cls = fields[i].infp->mixer_class;
                 if (cls >= 0 && cls < ndev)                  if (cls >= 0 && cls < ndev)
                         fields[i].name = catstr(infos[cls].label.name,                          fields[i].name = catstr(infos[cls].label.name,
Line 343 
Line 343 
         }          }
   
         if (!argc && aflag) {          if (!argc && aflag) {
                 for(i = 0; fields[i].name; i++) {                  for (i = 0; fields[i].name; i++) {
                         prfield(&fields[i], sep, vflag);                          prfield(&fields[i], sep, vflag);
                         fprintf(out, "\n");                          fprintf(out, "\n");
                 }                  }

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18