Bug 16962 - CLI volume setting not reflected in local display
: CLI volume setting not reflected in local display
Status: RESOLVED PATCHWELCOME
Product: SqueezePlay
Classification: Unclassified
Component: SB Server
: 7.5.x
: PC Other
: P3 normal with 1 vote (vote)
: 7.6.0
Assigned To: Unassigned bug - please assign me!
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2011-02-13 06:28 UTC by Stefan Bellon
Modified: 2011-05-18 15:30 UTC (History)
4 users (show)

See Also:
Category: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Bellon 2011-02-13 06:28:02 UTC
When subscribing to volume changes (via "prefset server volume") of a SqueezePlay based player in a Lua applet and then changing the volume to some other value using userRequest() with "mixer volume" does not work as expected.

When using the volume slider, then it takes about two seconds till the volume slider reflects the newly set value of "mixer volume".

However when using the Vol- and Vol+ buttons in order to change the volume from within SqueezePlay, then the newly set volume is not reflected in the SqueezePlay display. I.e. the server uses another volume than the SqueezePlay display displays.

Example:

In a Lua applet, subscribe to "/slim/prefset" and in the function, execute a server:userRequest() with {'mixer', 'volume', '50'} (for all values except 50 in order to avoid endless loop).

Let's assume the volume slider in the SqueezePlay player is at 50. Now drag the volume slider of the player to 100. The prefset notification is called with "prefset server volume 100" and the registered function calls userRequest() to set the "mixer volume" to 50 again.

Then it takes 2 seconds and the slider moves again to the volume 50 position.

This is how it should be (only arguing about 2 seconds being a long time, but that's not the problem).

Let's assume the volume slider in the SqueezePlay player is at 50, again. Now press the Vol+ button to the right of the slider. The prefset notification is called with "prefset mixer volume 53" and the registered function calls userRequest() to set the "mixer volume" to 50 again.

This time however the slider remains at the 53 position, although the server acknowledges the change with another "prefset server volume 50".

Now the volume at the server and the one at the SqueezePlay player are out of sync (being 50 on the server and 53 on the player). Pressing the Vol+ button a second time now sets the volume to 56 because the SqueezePlay player internally still thinks the current volume is 53.

The player should update the volume state for Vol+/Vol- buttons the same way as it does already for sliding the volume slider.
Comment 1 Stefan Bellon 2011-02-13 06:34:40 UTC
More information on what is the problem can be found in forum thread http://forums.slimdevices.com/showthread.php?t=85113&page=3 (post #21 onwards).