[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.28 and 1.29

version 1.28, 2008/06/26 05:42:21 version 1.29, 2009/11/12 07:27:31
Line 49 
Line 49 
 struct field *findfield(char *);  struct field *findfield(char *);
 void adjlevel(char **, u_char *, int);  void adjlevel(char **, u_char *, int);
 void catstr(char *, char *, char *);  void catstr(char *, char *, char *);
 void prfield(struct field *, char *, int);  void prfield(struct field *, char *, int, mixer_ctrl_t *);
 void rdfield(int, struct field *, char *, int);  void rdfield(int, struct field *, char *, int, char *);
 __dead void usage(void);  __dead void usage(void);
   
 #define FIELD_NAME_MAX  64  #define FIELD_NAME_MAX  64
Line 87 
Line 87 
 #define s_member_name   un.s.member[i].label.name  #define s_member_name   un.s.member[i].label.name
   
 void  void
 prfield(struct field *p, char *sep, int prvalset)  prfield(struct field *p, char *sep, int prvalset, mixer_ctrl_t *m)
 {  {
         mixer_ctrl_t *m;  
         int i, n;          int i, n;
   
         if (sep)          if (sep)
                 printf("%s%s", p->name, sep);                  printf("%s%s", p->name, sep);
         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++)
Line 163 
Line 161 
 }  }
   
 void  void
 rdfield(int fd, struct field *p, char *q, int quiet)  rdfield(int fd, struct field *p, char *q, int quiet, char *sep)
 {  {
         mixer_ctrl_t *m, oldval;          mixer_ctrl_t *m, oldval;
         int i, mask;          int i, mask;
Line 227 
Line 225 
         if (ioctl(fd, AUDIO_MIXER_WRITE, p->valp) < 0) {          if (ioctl(fd, AUDIO_MIXER_WRITE, p->valp) < 0) {
                 warn("AUDIO_MIXER_WRITE");                  warn("AUDIO_MIXER_WRITE");
         } else if (!quiet) {          } else if (!quiet) {
                 *p->valp = oldval;  
                 prfield(p, ": ", 0);  
                 if (ioctl(fd, AUDIO_MIXER_READ, p->valp) < 0) {                  if (ioctl(fd, AUDIO_MIXER_READ, p->valp) < 0) {
                         warn("AUDIO_MIXER_READ");                          warn("AUDIO_MIXER_READ");
                 } else {                  } else {
                         printf(" -> ");                          if (sep) {
                         prfield(p, NULL, 0);                                  prfield(p, ": ", 0, &oldval);
                                   printf(" -> ");
                           }
                           prfield(p, NULL, 0, p->valp);
                         printf("\n");                          printf("\n");
                 }                  }
         }          }
Line 355 
Line 354 
   
         if (!argc && aflag) {          if (!argc && aflag) {
                 for (i = 0; fields[i].name[0] != '\0'; i++) {                  for (i = 0; fields[i].name[0] != '\0'; i++) {
                         prfield(&fields[i], sep, vflag);                          prfield(&fields[i], sep, vflag, fields[i].valp);
                         printf("\n");                          printf("\n");
                 }                  }
         } else if (argc > 0 && !aflag) {          } else if (argc > 0 && !aflag) {
Line 375 
Line 374 
                         } else if (ch || tflag) {                          } else if (ch || tflag) {
                                 if (tflag && q == NULL)                                  if (tflag && q == NULL)
                                         q = "toggle";                                          q = "toggle";
                                 rdfield(fd, p, q, qflag);                                  rdfield(fd, p, q, qflag, sep);
                         } else {                          } else {
                                 prfield(p, sep, vflag);                                  prfield(p, sep, vflag, p->valp);
                                 printf("\n");                                  printf("\n");
                         }                          }
   

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29