[pulseaudio-discuss] Reset all client/stream volumes

Lennart Poettering lennart at poettering.net
Tue May 26 14:24:14 PDT 2009


On Tue, 26.05.09 11:19, Jason Taylor (killerkiwi2005 at gmail.com) wrote:

> Is there a way to reset all volume levels to 100%?
> 
> I could loop through the currently active / previously active
> streams..

I am assuming you are referring to the pa_ext_stream_restore_xxx() API?

Ther eonly way there is right now is loading all entries, patching
them and then rewriting them.

Yes, that part of the API really sucks. gnome-volume-control stumbled
over a very similar problem.

Maybe we should add a call like pa_ext_stream_restore_patch(), which
would take two pa_ext_stream_restore_info structs plus a bit mask that
would specifiy the fields that need to match (positively any maybe
negatively, too? use case?) and the fields that should be
patched. That way you could easily implement what you have been asking
for.

Maybe something like this:

pa_operation *pa_ext_stream_restore_write(
        pa_context *c,
        pa_ext_stream_restore_patch_mode_t mode,
        const *pa_ext_stream_restore_info *match,
        const *pa_ext_stream_restore_info *patch,
        int apply_immediately,
        pa_context_success_cb_t cb,
        void *userdata);

typedef enum pa_ext_stream_restore_patch_mode {
        PA_EXT_STREAM_RESTORE_MATCH_NAME    = 1,
        PA_EXT_STREAM_RESTORE_MATCH_VOLUME  = 2,
        PA_EXT_STREAM_RESTORE_MATCH_DEVICE  = 4,
        PA_EXT_STREAM_RESTORE_MATCH_MUTE    = 8,
        PA_EXT_STREAM_RESTORE_PATCH_VOLUME  = 16,
        PA_EXT_STREAM_RESTORE_PATCH_DEVICE  = 32,
        PA_EXT_STREAM_RESTORE_PATCH_MUTE    = 64
} pa_ext_stream_restore_patch_mode_t;

Dunno, this might be a bit over-the-top. 

Marc-Andre, opinions?

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net
http://0pointer.net/lennart/           GnuPG 0x1A015CC4



More information about the pulseaudio-discuss mailing list