Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F107612394
D35101.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D35101.diff
View Options
diff --git a/sbin/devd/apple.conf b/sbin/devd/apple.conf
--- a/sbin/devd/apple.conf
+++ b/sbin/devd/apple.conf
@@ -52,7 +52,7 @@
match "subsystem" "keys";
match "type" "volume";
match "notify" "down";
- action "mixer vol.volume=-10";
+ action "mixer vol.volume=-10%";
};
notify 0 {
@@ -60,7 +60,7 @@
match "subsystem" "keys";
match "type" "volume";
match "notify" "up";
- action "mixer vol.volume=+10";
+ action "mixer vol.volume=+10%";
};
# Eject key
diff --git a/sbin/devd/asus.conf b/sbin/devd/asus.conf
--- a/sbin/devd/asus.conf
+++ b/sbin/devd/asus.conf
@@ -14,14 +14,14 @@
match "system" "ACPI";
match "subsystem" "ASUS";
match "notify" "0x31";
- action "mixer vol.volume=-10";
+ action "mixer vol.volume=-10%";
};
notify 0 {
match "system" "ACPI";
match "subsystem" "ASUS";
match "notify" "0x30";
- action "mixer vol.volume=+10";
+ action "mixer vol.volume=+10%";
};
# The next blocks enable volume hotkeys that can be found on the Asus EeePC
@@ -36,14 +36,14 @@
match "system" "ACPI";
match "subsystem" "ASUS-Eee";
match "notify" "0x14";
- action "mixer vol.volume=-10";
+ action "mixer vol.volume=-10%";
};
notify 0 {
match "system" "ACPI";
match "subsystem" "ASUS-Eee";
match "notify" "0x15";
- action "mixer vol.volume=+10";
+ action "mixer vol.volume=+10%";
};
# Enable user hotkeys that can be found on the Asus EeePC
diff --git a/share/man/man4/acpi_ibm.4 b/share/man/man4/acpi_ibm.4
--- a/share/man/man4/acpi_ibm.4
+++ b/share/man/man4/acpi_ibm.4
@@ -455,7 +455,7 @@
fi
if [ $LEVEL -eq 1 ]; then
sysctl dev.acpi_ibm.0.mic_led=0
- mixer rec.volume=30
+ mixer rec.volume=30%
fi
;;
*)
diff --git a/usr.bin/fortune/datfiles/freebsd-tips b/usr.bin/fortune/datfiles/freebsd-tips
--- a/usr.bin/fortune/datfiles/freebsd-tips
+++ b/usr.bin/fortune/datfiles/freebsd-tips
@@ -339,7 +339,7 @@
``<ESC>w ! sudo tee %'' to force a write.
%
You can adjust the volume of various parts of the sound system in your
-computer by typing 'mixer <type>.volume=<volume>'. To get a list of what
+computer by typing 'mixer <type>.volume=<volume>%'. To get a list of what
you can adjust, just type 'mixer'.
%
You can automatically download and install binary packages by doing
diff --git a/usr.bin/usbhidaction/usbhidaction.1 b/usr.bin/usbhidaction/usbhidaction.1
--- a/usr.bin/usbhidaction/usbhidaction.1
+++ b/usr.bin/usbhidaction/usbhidaction.1
@@ -139,11 +139,11 @@
of Philips USB speakers with the HID controls on the speakers.
.Bd -literal -offset indent
# Configuration for various Philips USB speakers
-Consumer:Volume_Increment 1 0 mixer -f $1 vol.volume=+1
-Consumer:Volume_Decrement 1 0 mixer -f $1 vol.volume=-1
+Consumer:Volume_Increment 1 0 mixer -f $1 vol.volume=+1%
+Consumer:Volume_Decrement 1 0 mixer -f $1 vol.volume=-1%
Consumer:Mute 1 0 mixer -f $1 vol.mute=^
-Consumer:Channel_Top.Microsoft:Base_Up 1 0 mixer -f $1 bass.volume=+1
-Consumer:Channel_Top.Microsoft:Base_Down 1 0 mixer -f $1 bass.volume=-1
+Consumer:Channel_Top.Microsoft:Base_Up 1 0 mixer -f $1 bass.volume=+1%
+Consumer:Channel_Top.Microsoft:Base_Down 1 0 mixer -f $1 bass.volume=-1%
.Ed
.Pp
A sample invocation using this configuration would be
@@ -153,9 +153,9 @@
The following example controls the mixer volume using a Logitech Wingman.
Notice the debounce of 1 for buttons and 5 for the slider.
.Bd -literal -offset indent
-Button:Button_1 1 1 mixer vol.volume=+10
-Button:Button_2 1 1 mixer vol.volume=-10
-Generic_Desktop:Z * 5 mixer vol.volume=`echo $V | awk '{print int($$1/255*100)}'`
+Button:Button_1 1 1 mixer vol.volume=+10%
+Button:Button_2 1 1 mixer vol.volume=-10%
+Generic_Desktop:Z * 5 mixer vol.volume=`echo $V | awk '{printf("%.02f", $$1/255)}'`
.Ed
.Sh SEE ALSO
.Xr usbhidctl 1 ,
diff --git a/usr.sbin/mixer/mixer.8 b/usr.sbin/mixer/mixer.8
--- a/usr.sbin/mixer/mixer.8
+++ b/usr.sbin/mixer/mixer.8
@@ -21,7 +21,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 20, 2022
+.Dd April 29, 2022
.Dt MIXER 8
.Os
.Sh NAME
@@ -112,8 +112,8 @@
.It Sy Name Ta Sy Value
.It Ar dev Cm .volume Ta Xo
.Ar vol |
-.Oo Cm \&+ | Cm \&- Oc Ar lvol
-.Oo Cm \&: Oo Cm \&+ | Cm \&- Oc Ar rvol Oc
+.Oo Cm \&+ | Cm \&- Oc Ar lvol Oo % Oc
+.Oo Cm \&: Oo Cm \&+ | Cm \&- Oc Ar rvol Oo % Oc Oc
.Xc
.It Ar dev Cm .mute Ta Cm 0 | 1 | ^
.It Ar dev Cm .recsrc Ta Cm ^ | + | - | =
@@ -128,16 +128,21 @@
and/or
.Ar rvol
values have to be specified.
-The values have to be normalized 32-bit floats, from 0.0 to 1.0 inclusively.
-If no
-.Ql \&.
-character is present, the value is treated like a percentage, for backwards compatibility.
+The values should typically be decimal numbers between 0 and 1 with at most 2
+digits after the decimal point.
+A trailing percent sign indicates that the value should be treated as a
+percentage of 1.0, rather than an absolute value.
+Thus, 70% means the same as 0.7.
If the left or right volume values are prefixed with
.Cm +
or
.Cm - ,
the value following will be used as a relative adjustment, modifying the
current settings by the amount specified.
+Note that relative percentages are still relative to 1.0, not to the current
+value.
+If the volume is currently 0.40 and an adjustment of +20% is specified, then
+thet final volume will be set to 0.60.
.Pp
Volume can also be set using the shorthand
.Ar dev Ns Cm =value .
diff --git a/usr.sbin/mixer/mixer.c b/usr.sbin/mixer/mixer.c
--- a/usr.sbin/mixer/mixer.c
+++ b/usr.sbin/mixer/mixer.c
@@ -341,7 +341,7 @@
mix_ctl_t *cp;
mix_volume_t v;
const char *val;
- char lstr[8], rstr[8];
+ char *endp, lstr[8], rstr[8];
float lprev, rprev, lrel, rrel;
int n;
@@ -356,25 +356,32 @@
lrel = rrel = 0;
if (n > 0) {
if (*lstr == '+' || *lstr == '-')
- lrel = rrel = 1;
- v.left = strtof(lstr, NULL);
+ lrel = 1;
+ v.left = strtof(lstr, &endp);
+ if (*endp != '\0' && (*endp != '%' || *(endp + 1) != '\0')) {
+ warnx("invalid volume value: %s", lstr);
+ return (-1);
+ }
- /* be backwards compatible */
- if (strstr(lstr, ".") == NULL)
+ if (*endp == '%')
v.left /= 100.0f;
}
if (n > 1) {
if (*rstr == '+' || *rstr == '-')
rrel = 1;
- v.right = strtof(rstr, NULL);
+ v.right = strtof(rstr, &endp);
+ if (*endp != '\0' && (*endp != '%' || *(endp + 1) != '\0')) {
+ warnx("invalid volume value: %s", rstr);
+ return (-1);
+ }
- /* be backwards compatible */
- if (strstr(rstr, ".") == NULL)
+ if (*endp == '%')
v.right /= 100.0f;
}
switch (n) {
case 1:
v.right = v.left; /* FALLTHROUGH */
+ rrel = lrel;
case 2:
if (lrel)
v.left += m->dev->vol.left;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 17, 4:08 PM (21 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15840415
Default Alt Text
D35101.diff (6 KB)
Attached To
Mode
D35101: mixer: remove volume backwards compat, add % interpretation
Attached
Detach File
Event Timeline
Log In to Comment