Bug 25156

Summary: Improved user-interface for mixer(8)
Product: Base System Reporter: Tony Finch <dot>
Component: binAssignee: cg
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.2-STABLE   
Hardware: Any   
OS: Any   

Description Tony Finch 2001-02-17 01:30:01 UTC
A very common operation with mixer(8) is to change the overall sound
volume. At the moment you must do this with a command like "mixer vol 75";
the patch below allows you to omit the first argument in which case it
assumes "vol".

Fix: 

--- /usr/src/usr.sbin/mixer/mixer.c	2000/10/26 14:39:35	1.11.2.2
+++ /usr/src/usr.sbin/mixer/mixer.c	2001/02/17 01:21:33
@@ -181,13 +181,9 @@
 			continue;
 		}
 
-		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) {
+		dev = res_name(*argv, devmask);
+		switch(dev == -1 ? -sscanf(argv[0], "%d", &l) :
+			argc > 1 ? sscanf(argv[1], "%d:%d", &l, &r) : 0) {
 		case 0:
 			if (ioctl(baz, MIXER_READ(dev),&bar)== -1) {
 				warn("MIXER_READ");
@@ -202,6 +198,13 @@
 
 			argc--; argv++;
 			break;
+		case -1:
+			if ((dev = res_name("vol", devmask)) == -1) {
+				warnx("unknown device: %s", *argv);
+				dusage = 1;
+				break;
+			}
+			argc += 1; argv -= 1;
 		case 1:
 			r = l;
 		case 2:
Comment 1 Kris Kennaway freebsd_committer freebsd_triage 2001-03-24 05:52:34 UTC
Responsible Changed
From-To: freebsd-bugs->cg

Cameron is Mr Sound
Comment 2 greid freebsd_committer freebsd_triage 2001-04-09 12:10:56 UTC
State Changed
From-To: open->closed

Thanks for the patch, I committed cleaner code with the same 
functionality.