summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mixer
diff options
context:
space:
mode:
authorgreid <greid@FreeBSD.org>2001-04-09 11:10:34 +0000
committergreid <greid@FreeBSD.org>2001-04-09 11:10:34 +0000
commitbb5c93f5b8b7dcfb0da3840709b34f4da7a5879c (patch)
tree16cd2b40b88b417aca48b6cb6324c1e7b01a4135 /usr.sbin/mixer
parent4e9569652d36dd44e1856c22b12d2b06c0dcaa95 (diff)
downloadFreeBSD-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.84
-rw-r--r--usr.sbin/mixer/mixer.c11
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");
OpenPOWER on IntegriCloud