# HG changeset patch # User Jonathan Schleifer # Date 1195504525 -3600 # Node ID 81b4e186765f7146304fd52770ce0740189c4c6f # Parent 608590ec4548676a413370435c8c8f181bc9a252 Multiple changes. - Introduce a new variable that stores the volume. - Set volume on playback start. diff -r 608590ec4548 -r 81b4e186765f src/audacious/input.c --- a/src/audacious/input.c Mon Nov 19 18:50:23 2007 +0100 +++ b/src/audacious/input.c Mon Nov 19 21:35:25 2007 +0100 @@ -76,6 +76,7 @@ }; static GList *vis_list = NULL; +static int volume_l = -1, volume_r = -1; InputPlayback * get_current_input_playback(void) @@ -755,17 +756,11 @@ void input_get_volume(gint * l, gint * r) { - InputPlayback *playback; + if (volume_l == -1 || volume_r == -1) + output_get_volume(&volume_l, &volume_r); - *l = -1; - *r = -1; - if (playback_get_playing()) { - if ((playback = get_current_input_playback()) != NULL && - playback->plugin->get_volume && - playback->plugin->get_volume(l, r)) - return; - } - output_get_volume(l, r); + *l = volume_l; + *r = volume_r; } void @@ -786,6 +781,9 @@ return; output_set_volume(l, r); + + volume_l = l; + volume_r = r; } void diff -r 608590ec4548 -r 81b4e186765f src/audacious/output.c --- a/src/audacious/output.c Mon Nov 19 18:50:23 2007 +0100 +++ b/src/audacious/output.c Mon Nov 19 21:35:25 2007 +0100 @@ -256,6 +256,7 @@ { gint ret; OutputPlugin *op; + int l, r; #ifdef USE_SRC ConfigDb *db; @@ -324,6 +325,9 @@ op_state.nch = nch; } + input_get_volume(&l, &r); + op->set_volume(l, r); + return ret; }