[pulseaudio-discuss] Flat volumes and restoring the app volume

Gregory Petrosyan gregory.petrosyan at gmail.com
Mon Jan 31 11:27:44 PST 2011

On Mon, Jan 31, 2011 at 1:45 PM, Colin Guthrie <gmane at colin.guthr.ie> wrote:
> ...

Thanks a lot for the explanation!

>> I am asking these, because I've managed to make an app restore the
>> volume properly using ext-stream-restore.h, but when I turn the flat
>> volume on, behaviour is counter-intuitive to say at least.
> Can you elaborate on this a little? When you say "you've manage to make
> an app restore the volume properly using ext-stream-restore.h" what do
> you mean? Do you mean you are making an editor for the stream restore
> database or are you just meaning that you have an audio producing app
> and you are manually using ext-stream-restore.h to get it's saved volume
> and are doing something with it manually to set it's own volume?
> If the latter, don't do that, the server handles all that for you
> automatically. If the former then cool.

I have an audio player, and I want it to
a) save/restore the volume on shutdown/startup
b) be able to show the "future" volume and modify it after the
startup, but before the playback

b) is a problem: I either have to have stream open all the time (but I
can't do that since I do not know the sample format before the start
of the playback, so I can't create a stream beforehand), or to
manually read/write the m-s-r database.

It seems that, unfortunately, it is almost impossible to make such a
basic functionality work with PA, if using flat volumes. Because when
using m-s-r database + flat volumes, although the "real volume"
remains the same after the restart, e.g. displayed volume is wrong.

Here's an example:

(app | system)
60% | 100%
[decrease the system volume]
31% | ~50%
[restart the app, do not start the playback]
60% | ~50% (60% is more or less what is in the m-s-r database I assume)
[start the playback]
31% | ~50% (finally, displayed volume is correct)


More information about the pulseaudio-discuss mailing list