Deleted Added
full compact
mixer.c (108421) mixer.c (113299)
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#ifndef lint
15static const char rcsid[] =
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#ifndef lint
15static const char rcsid[] =
16 "$FreeBSD: head/usr.sbin/mixer/mixer.c 108421 2002-12-30 04:23:08Z jmallett $";
16 "$FreeBSD: head/usr.sbin/mixer/mixer.c 113299 2003-04-09 15:25:52Z mdodd $";
17#endif /* not lint */
18
19#include <err.h>
20#include <fcntl.h>
21#include <stdio.h>
22#include <string.h>
23#include <stdlib.h>
24#include <unistd.h>

--- 5 unchanged lines hidden (view full) ---

30int res_name(const char *name, int mask);
31void print_recsrc(int recsrc);
32
33void
34usage(int devmask, int recmask)
35{
36 int i, n;
37
17#endif /* not lint */
18
19#include <err.h>
20#include <fcntl.h>
21#include <stdio.h>
22#include <string.h>
23#include <stdlib.h>
24#include <unistd.h>

--- 5 unchanged lines hidden (view full) ---

30int res_name(const char *name, int mask);
31void print_recsrc(int recsrc);
32
33void
34usage(int devmask, int recmask)
35{
36 int i, n;
37
38 printf("usage: mixer [-f device] [-s] [[dev [voll[:volr]] | recsrc | {^|+|-|=}rec recdev] ... ]\n");
38 printf("usage: mixer [-f device] [-s] [dev [+|-][voll[:[+|-]volr]] ...\n"
39 " mixer [-f device] [-s] recsrc ...\n"
40 " mixer [-f device] [-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 }

--- 39 unchanged lines hidden (view full) ---

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;
93 int l = 0, r = 0, t = 0;
41 printf(" devices: ");
42 for (i = 0, n = 0; i < SOUND_MIXER_NRDEVICES; i++)
43 if ((1 << i) & devmask) {
44 if (n)
45 printf(", ");
46 printf("%s", names[i]);
47 n = 1;
48 }

--- 39 unchanged lines hidden (view full) ---

88
89int
90main(int argc, char *argv[])
91{
92 int foo, bar, baz, dev;
93 int devmask = 0, recmask = 0, recsrc = 0, orecsrc;
94 int dusage = 0, drecsrc = 0, shortflag = 0;
95 int l = 0, r = 0, t = 0;
96 char lstr[5], rstr[5];
97 int n = 0, lrel = 0, rrel = 0;
94 char ch;
95
96 char *name;
97
98 name = strdup("/dev/mixer");
99
100 if (!strcmp(argv[0], "mixer2"))
101 name = strdup("/dev/mixer1");

--- 83 unchanged lines hidden (view full) ---

185 dev = 0;
186 }
187 else if((dev = res_name(*argv, devmask)) == -1) {
188 warnx("unknown device: %s", *argv);
189 dusage = 1;
190 break;
191 }
192
98 char ch;
99
100 char *name;
101
102 name = strdup("/dev/mixer");
103
104 if (!strcmp(argv[0], "mixer2"))
105 name = strdup("/dev/mixer1");

--- 83 unchanged lines hidden (view full) ---

189 dev = 0;
190 }
191 else if((dev = res_name(*argv, devmask)) == -1) {
192 warnx("unknown device: %s", *argv);
193 dusage = 1;
194 break;
195 }
196
193 switch(argc > 1 ? sscanf(argv[1], "%d:%d", &l, &r) : t) {
197#define issign(c) (((c) == '+') || ((c) == '-'))
198
199 if (argc > 1) {
200 n = sscanf(argv[1], "%7[^:]:%7s", lstr, rstr);
201 if (n > 0) {
202 if (issign(lstr[0]))
203 lrel = rrel = 1;
204 l = atoi(lstr);
205 }
206 if (n > 1) {
207 rrel = 0;
208 if (issign(rstr[0]))
209 rrel = 1;
210 r = atoi(rstr);
211 }
212 }
213
214 switch(argc > 1 ? n : t) {
194 case 0:
195 if (ioctl(baz, MIXER_READ(dev),&bar)== -1) {
196 warn("MIXER_READ");
197 argc--; argv++;
198 continue;
199 }
200 if (shortflag)
201 printf("%s %d:%d ", names[dev], bar & 0x7f, (bar >> 8) & 0x7f);
202 else
203 printf("Mixer %-8s is currently set to %3d:%d\n",
204 names[dev], bar & 0x7f, (bar >> 8) & 0x7f);
205
206 argc--; argv++;
207 break;
208 case 1:
209 r = l;
210 case 2:
215 case 0:
216 if (ioctl(baz, MIXER_READ(dev),&bar)== -1) {
217 warn("MIXER_READ");
218 argc--; argv++;
219 continue;
220 }
221 if (shortflag)
222 printf("%s %d:%d ", names[dev], bar & 0x7f, (bar >> 8) & 0x7f);
223 else
224 printf("Mixer %-8s is currently set to %3d:%d\n",
225 names[dev], bar & 0x7f, (bar >> 8) & 0x7f);
226
227 argc--; argv++;
228 break;
229 case 1:
230 r = l;
231 case 2:
232 if (ioctl(baz, MIXER_READ(dev),&bar)== -1) {
233 warn("MIXER_READ");
234 argc--; argv++;
235 continue;
236 }
237
238 if (lrel)
239 l = (bar & 0x7f) + l;
240 if (rrel)
241 r = ((bar >> 8) & 0x7f) + r;
242
211 if (l < 0)
212 l = 0;
213 else if (l > 100)
214 l = 100;
215 if (r < 0)
216 r = 0;
217 else if (r > 100)
218 r = 100;
219
243 if (l < 0)
244 l = 0;
245 else if (l > 100)
246 l = 100;
247 if (r < 0)
248 r = 0;
249 else if (r > 100)
250 r = 100;
251
220 if (ioctl(baz, MIXER_READ(dev),&bar)== -1) {
221 warn("MIXER_READ");
222 argc--; argv++;
223 continue;
224 }
225
226 printf("Setting the mixer %s from %d:%d to %d:%d.\n",
227 names[dev], bar & 0x7f, (bar >> 8) & 0x7f, l, r);
228
229 l |= r << 8;
230 if (ioctl(baz, MIXER_WRITE(dev), &l) == -1)
231 warn("WRITE_MIXER");
232
233 argc -= 2; argv += 2;

--- 24 unchanged lines hidden ---
252 printf("Setting the mixer %s from %d:%d to %d:%d.\n",
253 names[dev], bar & 0x7f, (bar >> 8) & 0x7f, l, r);
254
255 l |= r << 8;
256 if (ioctl(baz, MIXER_WRITE(dev), &l) == -1)
257 warn("WRITE_MIXER");
258
259 argc -= 2; argv += 2;

--- 24 unchanged lines hidden ---