diff options
author | greid <greid@FreeBSD.org> | 2001-04-09 11:10:34 +0000 |
---|---|---|
committer | greid <greid@FreeBSD.org> | 2001-04-09 11:10:34 +0000 |
commit | bb5c93f5b8b7dcfb0da3840709b34f4da7a5879c (patch) | |
tree | 16cd2b40b88b417aca48b6cb6324c1e7b01a4135 /usr.sbin/mixer | |
parent | 4e9569652d36dd44e1856c22b12d2b06c0dcaa95 (diff) | |
download | FreeBSD-src-bb5c93f5b8b7dcfb0da3840709b34f4da7a5879c.zip FreeBSD-src-bb5c93f5b8b7dcfb0da3840709b34f4da7a5879c.tar.gz |
Change the behaviour of mixer slightly such that not explicitly specifying
a mixer device will set/get the master volume levels
PR: 25156
Submitted by: Tony Finch <dot@dotat.at>
Reviewed by: cg, nik
Diffstat (limited to 'usr.sbin/mixer')
-rw-r--r-- | usr.sbin/mixer/mixer.8 | 4 | ||||
-rw-r--r-- | usr.sbin/mixer/mixer.c | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/usr.sbin/mixer/mixer.8 b/usr.sbin/mixer/mixer.8 index a210e9d..27e1b39 100644 --- a/usr.sbin/mixer/mixer.8 +++ b/usr.sbin/mixer/mixer.8 @@ -83,7 +83,9 @@ may be specified. The .Ar lvol and .Ar rvol -arguments may be from 0 - 100. +arguments may be from 0 - 100. Omitting +.Ar dev +and including only the channel settings will change the main volume level. .Pp If the .Fl s diff --git a/usr.sbin/mixer/mixer.c b/usr.sbin/mixer/mixer.c index 37bd209..9264c76 100644 --- a/usr.sbin/mixer/mixer.c +++ b/usr.sbin/mixer/mixer.c @@ -90,7 +90,7 @@ main(int argc, char *argv[]) int foo, bar, baz, dev; int devmask = 0, recmask = 0, recsrc = 0, orecsrc; int dusage = 0, drecsrc = 0, shortflag = 0; - int l, r; + int l = 0, r = 0, t = 0; char ch; char *name; @@ -145,7 +145,7 @@ main(int argc, char *argv[]) argc--; argv++; - while ((argc) && (dusage == 0)) { + while ((argc > 0) && (dusage == 0)) { if (!strcmp("recsrc", *argv)) { drecsrc = 1; argc--; argv++; @@ -181,13 +181,16 @@ main(int argc, char *argv[]) continue; } - if ((dev = res_name(*argv, devmask)) == -1) { + if ((t = sscanf(*argv, "%d:%d", &l, &r)) > 0) { + dev = 0; + } + else if((dev = res_name(*argv, devmask)) == -1) { warnx("unknown device: %s", *argv); dusage = 1; break; } - switch(argc > 1 ? sscanf(argv[1], "%d:%d", &l, &r) : 0) { + switch(argc > 1 ? sscanf(argv[1], "%d:%d", &l, &r) : t) { case 0: if (ioctl(baz, MIXER_READ(dev),&bar)== -1) { warn("MIXER_READ"); |