Index: Slim/Buttons/Common.pm =================================================================== --- Slim/Buttons/Common.pm (revision 3392) +++ Slim/Buttons/Common.pm (working copy) @@ -326,8 +326,22 @@ my $client = shift; my $button = shift; my $buttonarg = shift; + unless (defined $buttonarg) { return; } - my $brightmode = 'power' . ($client->power() ? 'On' : 'Off') . 'Brightness'; + + my $brightmode; + my $mode = Slim::Buttons::Common::mode($client); + + if ($client->power()) { + $brightmode = 'powerOnBrightness'; + if ($mode eq Slim::Utils::Prefs::clientGet($client,'screensaver') || + $mode eq Slim::Utils::Prefs::clientGet($client,'idlesaver')) { + $brightmode = 'idleBrightness'; + } + } else { + $brightmode = 'powerOffBrightness'; + } + my $newBrightness; if ($buttonarg eq 'toggle') { $newBrightness = $client->brightness() - 1; @@ -339,6 +353,7 @@ if ($newBrightness > $client->maxBrightness()) { $newBrightness = $client->maxBrightness();} if ($newBrightness < 0) { $newBrightness = 0;} } + Slim::Utils::Prefs::clientSet($client, $brightmode, $newBrightness); }, 'playdisp' => sub { @@ -448,7 +463,6 @@ } $client->execute(["sleep", $sleepTime * 60]); - $client->currentSleepTime($sleepTime); }, 'power' => sub { my $client = shift; Index: Slim/Buttons/ScreenSaver.pm =================================================================== --- Slim/Buttons/ScreenSaver.pm (revision 3392) +++ Slim/Buttons/ScreenSaver.pm (working copy) @@ -133,6 +133,8 @@ my $client = shift; my $button = shift; + return if ($button && $button =~ "brightness"); + Slim::Hardware::IR::setLastIRTime($client, Time::HiRes::time()); if (!Slim::Utils::Prefs::clientGet($client, 'autobrightness')) { return; }; @@ -142,7 +144,7 @@ if (Slim::Buttons::Common::mode($client) eq 'off' || !$client->power()) { $curBrightnessPref = Slim::Utils::Prefs::clientGet($client, 'powerOffBrightness'); } else { - $curBrightnessPref = Slim::Utils::Prefs::clientGet($client, 'powerOnBrightness'); + $curBrightnessPref = Slim::Utils::Prefs::clientGet($client, 'powerOnBrightness'); } if ($curBrightnessPref != $client->brightness()) { @@ -158,7 +160,7 @@ $button ne 'brightness_toggle' && $client->brightness() == 0 && $client->power()) { - Slim::Utils::Prefs::clientSet($client, 'powerOnBrightness', 1); + Slim::Utils::Prefs::clientSet($client, 'powerOnBrightness', 1); } } Index: Slim/Utils/Prefs.pm =================================================================== --- Slim/Utils/Prefs.pm (revision 3392) +++ Slim/Utils/Prefs.pm (working copy) @@ -155,6 +155,13 @@ } }, + 'idleBrightness' => sub { + my ($client,$newvalue) = @_; + if ($client->power()) { + $client->brightness($newvalue); + } + }, + 'irmap' => sub { my ($client,$newvalue) = @_;