Clemens Ladisch wrote:
Rolf Theunissen wrote:
For some hardware devices (for instance the ThinkPad EC) the volume can be changed by (only) hardware buttons. ... This raises the following question: is it possible to detect the events originating from the hardware in the functions that handle the callbacks (set via snd_mixer_elem_set_callback/snd_hctl_elem_set_callback)? This would allow to implement an OSD that only responds to the hardware buttons and that would ignore events originating from "software".
The control notifications are for all changes of the control.
If it is not possible to change the volume in software, then the driver must not set the control to be writable.
Regards, Clemens
The issue is not that the driver should be writable or not. Even, if the volume is read only, an OSD can be shown for any event. However when the volume can be set both in hardware and in software, the end-user will expect different behavior. For instance, if the user changes the volume in a music player application, no OSD should be shown as this clutters the interface. But if the volume is changed from the hardware a OSD should be shown.
I don't know if a ticket should be opened for this issue.
Regards, Rolf