Index: src/squeezeplay/share/jive/slim/Player.lua =================================================================== --- src/squeezeplay/share/jive/slim/Player.lua (revision 7843) +++ src/squeezeplay/share/jive/slim/Player.lua Tue Oct 20 11:08:52 CDT 2009 @@ -1623,7 +1623,8 @@ end -function setPower(self, on, sequenceNumber) +function setPower(self, on, sequenceNumber, isServerRequest) + if isServerRequest then return end -- don't loop the request back to the server. if not self.state then return end log:debug("Player:setPower(", on, ")") Index: src/squeezeplay/share/applets/SlimDiscovery/SlimDiscoveryApplet.lua =================================================================== --- src/squeezeplay/share/applets/SlimDiscovery/SlimDiscoveryApplet.lua (revision 7742) +++ src/squeezeplay/share/applets/SlimDiscovery/SlimDiscoveryApplet.lua Tue Oct 20 10:48:07 CDT 2009 @@ -507,9 +507,9 @@ --only work for devices that have a dedicated power button log:info("notify_playerPower: ", power) if power then - jiveMain:setSoftPowerState("on") + jiveMain:setSoftPowerState("on", true) else - jiveMain:setSoftPowerState("off") + jiveMain:setSoftPowerState("off", true) end end end Index: src/squeezeplay/share/jive/slim/LocalPlayer.lua =================================================================== --- src/squeezeplay/share/jive/slim/LocalPlayer.lua (revision 7825) +++ src/squeezeplay/share/jive/slim/LocalPlayer.lua Tue Oct 20 11:14:07 CDT 2009 @@ -347,7 +347,7 @@ --overridden to stop playback when powering off -function setPower(self, on) +function setPower(self, on, _, isServerRequest) -- ignoring third param 'sequenceNumber' (only used by parent class's version) if not on then if self:getCapturePlayMode() then self:setCapturePlayMode("pause") @@ -357,7 +357,7 @@ end end - if self:getSlimServer() then + if self:getSlimServer() and not isServerRequest then Player.setPower(self, on, self:incrementSequenceNumber()) end end Index: src/squeezeplay/share/jive/JiveMain.lua =================================================================== --- src/squeezeplay/share/jive/JiveMain.lua (revision 7825) +++ src/squeezeplay/share/jive/JiveMain.lua Tue Oct 20 10:59:11 CDT 2009 @@ -209,7 +209,7 @@ --Note: Jive does not use setSoftPowerState since it doesn't have a soft power concept -function JiveMain:setSoftPowerState(softPowerState) +function JiveMain:setSoftPowerState(softPowerState, isServerRequest) if _softPowerState == softPowerState then --already in the desired state, leave (can happen for instance when notify_playerPower comes back after a local power change) return @@ -220,7 +220,7 @@ if _softPowerState == "off" then log:info("Turn soft power off") if currentPlayer and (currentPlayer:isConnected() or currentPlayer:isLocal()) then - currentPlayer:setPower(false) + currentPlayer:setPower(false, nil, isServerRequest) end --todo: also pause/power off local player since local player might be playing and not be the current player appletManager:callService("activateScreensaver") @@ -232,7 +232,7 @@ if currentPlayer.slimServer then currentPlayer.slimServer:wakeOnLan() end - currentPlayer:setPower(true) + currentPlayer:setPower(true, nil, isServerRequest) end appletManager:callService("deactivateScreensaver")