Author: titmuss
Date: Thu Feb  7 07:20:10 2008
New Revision: 1852

URL: http://svn.slimdevices.com?rev=1852&root=Jive&view=rev
Log:
 [EMAIL PROTECTED] (orig r1847):  titmuss | 2008-02-07 15:18:17 +0000
 Bug: 6580
 Description:
 In 'sleep' state don't process screen updates (lower cpu usage), slow the cpu 
down and 
 turn off the DAC. This reduces the power consumption in sleep state to 60mA.
 
 

Modified:
    trunk/   (props changed)
    
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua

Propchange: trunk/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Thu Feb  7 07:20:10 2008
@@ -1,3 +1,3 @@
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:1846
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:1847
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
 bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378

Modified: 
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
URL: 
http://svn.slimdevices.com/trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua?rev=1852&root=Jive&r1=1851&r2=1852&view=diff
==============================================================================
--- 
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 (original)
+++ 
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 Thu Feb  7 07:20:10 2008
@@ -75,6 +75,10 @@
 oo.class(_M, Applet)
 
 
+-- disable battery low test, useful for debugging
+local CHECK_BATTERY_LOW      = true
+
+
 function init(self)
        local uuid, mac
 
@@ -294,7 +298,7 @@
                end
        else
                local bat = jiveBSP.ioctl(17)
-               if bat < 807 then
+               if CHECK_BATTERY_LOW and bat < 807 then
                        self:batteryLowShow()
                elseif bat < 820 then
                        iconbar:setBattery("0")
@@ -321,6 +325,13 @@
        if lcdLevel ~= nil then
                self.lcdLevel = lcdLevel
                jiveBSP.ioctl(11, lcdLevel * 2048)
+
+               -- don't update the screen when the lcd is off
+               if lcdLevel == 0 then
+                       Framework:setUpdateScreen(false)
+               else
+                       Framework:setUpdateScreen(true)
+               end
        end
 
        if keyLevel ~= nil then
@@ -507,8 +518,8 @@
        elseif self.powerState == "dimmed" then
                self:setPowerState("sleep")
        elseif self.powerState == "sleep" then
-               self:setPowerState("hibernate")
-       elseif self.powerState == "hibernate" then
+               self:setPowerState("suspend")
+       elseif self.powerState == "suspend" then
                -- we can't go to sleep anymore
        end
 end
@@ -528,6 +539,12 @@
 
        if self.acpower then
                -- charging
+               self:_setCPUSpeed(true)
+
+               if self.audioVolume ~= nil then
+                       Audio:setEffectVolume(self.audioVolume)
+                       self.audioVolume = nil
+               end
 
                if state == "active" then
                        self:setBrightness()
@@ -553,36 +570,45 @@
                -- battery
 
                if state == "active" then
+                       self:_setCPUSpeed(true)
                        self:setBrightness()
---                     if self.isAudioEnabled ~= nil then
---                             Audio:effectsEnable(self.isAudioEnabled)
---                             self.isAudioEnabled = nil
---                     end
+
+                       if self.audioVolume ~= nil then
+                               Audio:setEffectVolume(self.audioVolume)
+                               self.audioVolume = nil
+                       end
+
                        interval = settings.dimmedTimeout
 
                elseif state == "locked" then
+                       self:_setCPUSpeed(true)
                        self:setBrightness()
+
+                       if self.audioVolume ~= nil then
+                               Audio:setEffectVolume(self.audioVolume)
+                               self.audioVolume = nil
+                       end
+
                        self.lockedTimer:restart()
---                     if self.isAudioEnabled ~= nil then
---                             Audio:effectsEnable(self.isAudioEnabled)
---                             self.isAudioEnabled = nil
---                     end
                        interval = settings.dimmedTimeout
 
                elseif state == "dimmed" then
+                       self:_setCPUSpeed(true)
                        self:_setBrightness(true, 8, 0)
---                     self.isAudioEnabled = Audio:isEffectsEnabled()
---                     Audio:effectsEnable(false)
 
                        interval = settings.sleepTimeout
 
                else
                        self:_setBrightness(true, 0, 0)
+                       self:_setCPUSpeed(false)
+
+                       self.audioVolume = Audio:getEffectVolume()
+                       Audio:setEffectVolume(0)
 
                        if state == "sleep" then
-                               interval = settings.hibernateTimeout
-                       elseif state == "hibernate" then
-                               log:error("FIXME hibernate now...")
+                               interval = settings.suspendTimeout
+                       elseif state == "suspend" then
+                               log:error("FIXME suspend now...")
                        end
                end
        end
@@ -603,14 +629,15 @@
        popup:addWidget(Textarea("help", self:string("BSP_SCREEN_LOCKED_HELP")))
        self:tieAndShowWindow(popup)
 
+       self:setPowerState("locked")
+
        self.lockedPopup = popup
        self.lockedTimer = Timer(2000,
                                 function()
                                         self:_setBrightness(true, 0, 0)
+                                        self:_setCPUSpeed(false)
                                 end,
                                 true)
-
-       self:setPowerState("locked")
 
        self.lockedListener = 
                Framework:addListener(EVENT_KEY_DOWN | EVENT_KEY_PRESS,
@@ -763,6 +790,24 @@
 end
 
 
+function _setCPUSpeed(self, fast)
+       local filename = "/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"
+
+       -- 200MHZ or 50MHz
+       local speed = fast and 200000 or 50000
+
+       log:info("Set CPU speed ", speed)
+       local fh, err = io.open(filename, "w")
+       if err then
+               log:warn("Can't write to  ", filename)
+               return
+       end
+
+       fh:write(speed)
+       fh:close()
+end
+
+
 function _powerOff(self)
        log:info("Poweroff begin")
 

_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins

Reply via email to