mixer.c (124830) | mixer.c (144999) |
---|---|
1/* 2 * This is an example of a mixer program for Linux 3 * 4 * updated 1/1/93 to add stereo, level query, broken 5 * devmask kludge - cmetz@thor.tjhsst.edu 6 * 7 * (C) Craig Metz and Hannu Savolainen 1993. 8 * 9 * You may do anything you wish with this program. 10 * 11 * ditto for my modifications (John-Mark Gurney, 1997) 12 */ 13 14#include <sys/cdefs.h> | 1/* 2 * This is an example of a mixer program for Linux 3 * 4 * updated 1/1/93 to add stereo, level query, broken 5 * devmask kludge - cmetz@thor.tjhsst.edu 6 * 7 * (C) Craig Metz and Hannu Savolainen 1993. 8 * 9 * You may do anything you wish with this program. 10 * 11 * ditto for my modifications (John-Mark Gurney, 1997) 12 */ 13 14#include <sys/cdefs.h> |
15__FBSDID("$FreeBSD: head/usr.sbin/mixer/mixer.c 124830 2004-01-22 07:23:36Z grehan $"); | 15__FBSDID("$FreeBSD: head/usr.sbin/mixer/mixer.c 144999 2005-04-13 07:11:54Z mdodd $"); |
16 17#include <err.h> 18#include <fcntl.h> 19#include <stdio.h> 20#include <string.h> 21#include <stdlib.h> 22#include <unistd.h> 23#include <sys/soundcard.h> --- 4 unchanged lines hidden (view full) --- 28int res_name(const char *name, int mask); 29void print_recsrc(int recsrc); 30 31void 32usage(int devmask, int recmask) 33{ 34 int i, n; 35 | 16 17#include <err.h> 18#include <fcntl.h> 19#include <stdio.h> 20#include <string.h> 21#include <stdlib.h> 22#include <unistd.h> 23#include <sys/soundcard.h> --- 4 unchanged lines hidden (view full) --- 28int res_name(const char *name, int mask); 29void print_recsrc(int recsrc); 30 31void 32usage(int devmask, int recmask) 33{ 34 int i, n; 35 |
36 printf("usage: mixer [-f device] [-s] [dev [+|-][voll[:[+|-]volr]] ...\n" 37 " mixer [-f device] [-s] recsrc ...\n" 38 " mixer [-f device] [-s] {^|+|-|=}rec rdev ... \n"); | 36 printf("usage: mixer [-f device] [-s | -S] [dev [+|-][voll[:[+|-]volr]] ...\n" 37 " mixer [-f device] [-s | -S] recsrc ...\n" 38 " mixer [-f device] [-s | -S] {^|+|-|=}rec rdev ... \n"); |
39 printf(" devices: "); 40 for (i = 0, n = 0; i < SOUND_MIXER_NRDEVICES; i++) 41 if ((1 << i) & devmask) { 42 if (n) 43 printf(", "); 44 printf("%s", names[i]); 45 n = 1; 46 } --- 37 unchanged lines hidden (view full) --- 84 fprintf(stderr, "\n"); 85} 86 87int 88main(int argc, char *argv[]) 89{ 90 int foo, bar, baz, dev; 91 int devmask = 0, recmask = 0, recsrc = 0, orecsrc; | 39 printf(" devices: "); 40 for (i = 0, n = 0; i < SOUND_MIXER_NRDEVICES; i++) 41 if ((1 << i) & devmask) { 42 if (n) 43 printf(", "); 44 printf("%s", names[i]); 45 n = 1; 46 } --- 37 unchanged lines hidden (view full) --- 84 fprintf(stderr, "\n"); 85} 86 87int 88main(int argc, char *argv[]) 89{ 90 int foo, bar, baz, dev; 91 int devmask = 0, recmask = 0, recsrc = 0, orecsrc; |
92 int dusage = 0, drecsrc = 0, shortflag = 0; | 92 int dusage = 0, drecsrc = 0, shortflag = 0, Shortflag = 0; |
93 int l = 0, r = 0, t = 0; 94 char lstr[5], rstr[5]; 95 int n = 0, lrel = 0, rrel = 0; 96 int ch; 97 98 char *name; 99 100 name = strdup("/dev/mixer"); 101 102 if (!strcmp(argv[0], "mixer2")) 103 name = strdup("/dev/mixer1"); 104 else if (!strcmp(argv[0], "mixer3")) 105 name = strdup("/dev/mixer2"); 106 | 93 int l = 0, r = 0, t = 0; 94 char lstr[5], rstr[5]; 95 int n = 0, lrel = 0, rrel = 0; 96 int ch; 97 98 char *name; 99 100 name = strdup("/dev/mixer"); 101 102 if (!strcmp(argv[0], "mixer2")) 103 name = strdup("/dev/mixer1"); 104 else if (!strcmp(argv[0], "mixer3")) 105 name = strdup("/dev/mixer2"); 106 |
107 while ((ch = getopt(argc, argv, "f:s")) != -1) | 107 while ((ch = getopt(argc, argv, "f:sS")) != -1) |
108 switch (ch) { 109 case 'f': 110 name = strdup(optarg); 111 break; 112 case 's': 113 shortflag = 1; 114 break; | 108 switch (ch) { 109 case 'f': 110 name = strdup(optarg); 111 break; 112 case 's': 113 shortflag = 1; 114 break; |
115 case 'S': 116 Shortflag = 1; 117 break; |
|
115 default: 116 dusage = 1; 117 } 118 argc -= (optind - 1); 119 argv += (optind - 1); 120 121 if ((baz = open(name, O_RDWR)) < 0) 122 err(1, "%s", name); --- 9 unchanged lines hidden (view full) --- 132 if ((argc == 1) && (dusage == 0)) { 133 for (foo = 0; foo < SOUND_MIXER_NRDEVICES; foo++) { 134 if (!((1 << foo) & devmask)) 135 continue; 136 if (ioctl(baz, MIXER_READ(foo),&bar)== -1) { 137 warn("MIXER_READ"); 138 continue; 139 } | 118 default: 119 dusage = 1; 120 } 121 argc -= (optind - 1); 122 argv += (optind - 1); 123 124 if ((baz = open(name, O_RDWR)) < 0) 125 err(1, "%s", name); --- 9 unchanged lines hidden (view full) --- 135 if ((argc == 1) && (dusage == 0)) { 136 for (foo = 0; foo < SOUND_MIXER_NRDEVICES; foo++) { 137 if (!((1 << foo) & devmask)) 138 continue; 139 if (ioctl(baz, MIXER_READ(foo),&bar)== -1) { 140 warn("MIXER_READ"); 141 continue; 142 } |
140 if (shortflag) | 143 if (Shortflag) 144 printf("%s:%d:%d ", names[foo], bar & 0x7f, 145 (bar >> 8) & 0x7f); 146 else if (shortflag) |
141 printf("%s %d:%d ", names[foo], bar & 0x7f, 142 (bar >> 8) & 0x7f); 143 else 144 printf("Mixer %-8s is currently set to %3d:%d\n", 145 names[foo], bar & 0x7f, (bar >> 8) & 0x7f); 146 } 147 if (ioctl(baz, SOUND_MIXER_READ_RECSRC, &recsrc) == -1) 148 err(1, "SOUND_MIXER_READ_RECSRC"); --- 67 unchanged lines hidden (view full) --- 216 217 switch(argc > 1 ? n : t) { 218 case 0: 219 if (ioctl(baz, MIXER_READ(dev),&bar)== -1) { 220 warn("MIXER_READ"); 221 argc--; argv++; 222 continue; 223 } | 147 printf("%s %d:%d ", names[foo], bar & 0x7f, 148 (bar >> 8) & 0x7f); 149 else 150 printf("Mixer %-8s is currently set to %3d:%d\n", 151 names[foo], bar & 0x7f, (bar >> 8) & 0x7f); 152 } 153 if (ioctl(baz, SOUND_MIXER_READ_RECSRC, &recsrc) == -1) 154 err(1, "SOUND_MIXER_READ_RECSRC"); --- 67 unchanged lines hidden (view full) --- 222 223 switch(argc > 1 ? n : t) { 224 case 0: 225 if (ioctl(baz, MIXER_READ(dev),&bar)== -1) { 226 warn("MIXER_READ"); 227 argc--; argv++; 228 continue; 229 } |
224 if (shortflag) | 230 if (Shortflag) 231 printf("%s:%d:%d ", names[dev], bar & 0x7f, 232 (bar >> 8) & 0x7f); 233 else if (shortflag) |
225 printf("%s %d:%d ", names[dev], bar & 0x7f, 226 (bar >> 8) & 0x7f); 227 else 228 printf("Mixer %-8s is currently set to %3d:%d\n", 229 names[dev], bar & 0x7f, (bar >> 8) & 0x7f); 230 231 argc--; argv++; 232 break; --- 15 unchanged lines hidden (view full) --- 248 l = 0; 249 else if (l > 100) 250 l = 100; 251 if (r < 0) 252 r = 0; 253 else if (r > 100) 254 r = 100; 255 | 234 printf("%s %d:%d ", names[dev], bar & 0x7f, 235 (bar >> 8) & 0x7f); 236 else 237 printf("Mixer %-8s is currently set to %3d:%d\n", 238 names[dev], bar & 0x7f, (bar >> 8) & 0x7f); 239 240 argc--; argv++; 241 break; --- 15 unchanged lines hidden (view full) --- 257 l = 0; 258 else if (l > 100) 259 l = 100; 260 if (r < 0) 261 r = 0; 262 else if (r > 100) 263 r = 100; 264 |
256 printf("Setting the mixer %s from %d:%d to %d:%d.\n", 257 names[dev], bar & 0x7f, (bar >> 8) & 0x7f, l, r); | 265 if (!Shortflag) 266 printf("Setting the mixer %s from %d:%d to %d:%d.\n", 267 names[dev], bar & 0x7f, (bar >> 8) & 0x7f, l, r); |
258 259 l |= r << 8; 260 if (ioctl(baz, MIXER_WRITE(dev), &l) == -1) 261 warn("WRITE_MIXER"); 262 263 argc -= 2; argv += 2; 264 break; 265 } --- 22 unchanged lines hidden --- | 268 269 l |= r << 8; 270 if (ioctl(baz, MIXER_WRITE(dev), &l) == -1) 271 warn("WRITE_MIXER"); 272 273 argc -= 2; argv += 2; 274 break; 275 } --- 22 unchanged lines hidden --- |