Author: bklaas
Date: Fri Jun 13 12:47:44 2008
New Revision: 2562

URL: http://svn.slimdevices.com?rev=2562&root=Jive&view=rev
Log:
Bug: 6794
Description: add closeMethod handler to ScreenSaversApplet to allow a function 
to be called on screensaver exit
update Makefile.am to include BlankScreen applet

Modified:
    7.1/trunk/squeezeplay/src/squeezeplay/Makefile.am
    
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenApplet.lua
    
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenMeta.lua
    
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua

Modified: 7.1/trunk/squeezeplay/src/squeezeplay/Makefile.am
URL: 
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/Makefile.am?rev=2562&root=Jive&r1=2561&r2=2562&view=diff
==============================================================================
--- 7.1/trunk/squeezeplay/src/squeezeplay/Makefile.am (original)
+++ 7.1/trunk/squeezeplay/src/squeezeplay/Makefile.am Fri Jun 13 12:47:44 2008
@@ -284,6 +284,12 @@
        share/applets/InfoBrowser/InfoBrowserApplet.lua \
        share/applets/InfoBrowser/InfoBrowserMeta.lua \
        share/applets/InfoBrowser/strings.txt
+
+applets_blankscreendir = $(pkgdatadir)/applets/BlankScreen
+dist_applets_blankscreen_DATA = \
+       share/applets/BlankScreen/BlankScreenApplet.lua \
+       share/applets/BlankScreen/BlankScreenMeta.lua \
+       share/applets/BlankScreen/strings.txt
 
 applets_customizehomemenudir = $(pkgdatadir)/applets/CustomizeHomeMenu
 dist_applets_customizehomemenu_DATA = \

Modified: 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenApplet.lua
URL: 
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenApplet.lua?rev=2562&root=Jive&r1=2561&r2=2562&view=diff
==============================================================================
--- 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenApplet.lua
 (original)
+++ 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenApplet.lua
 Fri Jun 13 12:47:44 2008
@@ -20,8 +20,10 @@
 -- stuff we use
 local oo               = require("loop.simple")
 
+--local jiveBSP          = require("jiveBSP")
 local Framework        = require("jive.ui.Framework")
 local Window           = require("jive.ui.Window")
+local Timer            = require("jive.ui.Timer")
 local Surface          = require("jive.ui.Surface")
 local Icon             = require("jive.ui.Icon")
 local debug            = require("jive.utils.debug")
@@ -51,8 +53,37 @@
 
 end
 
+function closeScreensaver(self)
+       _brightness(self.lcdLevel, self.keyLevel)
+end
+
 function openScreensaver(self, menuItem)
        self.window:show(Window.transitionFadeIn)
+       local lcdTimer = Timer(2000,
+                function()
+                       _brightness(0, 0)
+                end,
+                true)
+       lcdTimer:start()
+end
+
+function _brightness(lcdLevel, keyLevel)
+
+       --[[ FIXME, don't use ioctl calls here, 
+       but instead register some brightness services from SqueezeboxJive and 
use those
+       this will be added when the SlimDiscovery refactoring work is merged in
+
+       if lcdLevel ~= nil then
+               -- don't update the screen when the lcd is off
+               --Framework:setUpdateScreen(lcdLevel ~= 0)
+               jiveBSP.ioctl(11, lcdLevel * 2048)
+       end
+
+       if keyLevel ~= nil then
+               jiveBSP.ioctl(13, keyLevel * 512)
+       end
+       --]]
+
 end
 
 --[[

Modified: 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenMeta.lua
URL: 
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenMeta.lua?rev=2562&root=Jive&r1=2561&r2=2562&view=diff
==============================================================================
--- 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenMeta.lua
 (original)
+++ 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/BlankScreen/BlankScreenMeta.lua
 Fri Jun 13 12:47:44 2008
@@ -45,7 +45,7 @@
 
        if ssMgr ~= nil then
                ssMgr:addScreenSaver(
-                       self:string("SCREENSAVER_BLANKSCREEN"), "BlankScreen", 
"openScreensaver", _, _, 100
+                       self:string("SCREENSAVER_BLANKSCREEN"), "BlankScreen", 
"openScreensaver", _, _, 100, "closeScreensaver"
                )
        end
 end

Modified: 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
URL: 
http://svn.slimdevices.com/7.1/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua?rev=2562&root=Jive&r1=2561&r2=2562&view=diff
==============================================================================
--- 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
 (original)
+++ 
7.1/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
 Fri Jun 13 12:47:44 2008
@@ -56,6 +56,7 @@
        self.timeout = self:getSettings()["timeout"]
 
        self.active = {}
+       self.demoScreensaver = nil
 
        -- wait for at least a minute after we start before activating a 
screensaver,
        -- otherwise the screensaver may have started when you exit the 
bootscreen
@@ -138,6 +139,28 @@
 end
 
 
+-- screensavers can have methods that are executed on close
+function _deactivate(self, window, the_screensaver)
+
+       local sd = AppletManager:getAppletInstance("SlimDiscovery")
+       if not the_screensaver then
+               if sd and sd:getCurrentPlayer() and 
sd:getCurrentPlayer():getPlayMode() == "play" then
+                       the_screensaver = self:getSettings()["whenPlaying"]
+               else
+                       the_screensaver = self:getSettings()["whenStopped"]
+               end
+       end
+       local screensaver = self.screensavers[the_screensaver]
+
+       if screensaver and screensaver.applet and screensaver.closeMethod then
+               local instance = appletManager:loadApplet(screensaver.applet)
+               instance[screensaver.closeMethod](instance)
+       end
+       window:hide(Window.transitionNone)
+       self.demoScreensaver = nil
+
+end
+
 -- switch screensavers on a player mode change
 function notify_playerModeChange(self, player, mode)
        local oldActive = self.active
@@ -152,7 +175,7 @@
 
        -- close active screensaver
        for i, window in ipairs(oldActive) do
-               window:hide(Window.transitionNone)
+               _deactivate(self, window, self.demoScreensaver)
        end
 end
 
@@ -197,7 +220,7 @@
 
                                   -- close all screensaver windows
                                   for i,w in ipairs(self.active) do
-                                          w:hide(Window.transitionNone)
+                                       _deactivate(self, w, 
self.demoScreensaver)
                                   end
 
                                   -- keys should close the screensaver, and not
@@ -218,21 +241,22 @@
                                   function(event)
                                           -- close all screensaver windows
                                           for i,w in ipairs(self.active) do
-                                                  w:hide(Window.transitionNone)
+                                               _deactivate(self, w, 
self.demoScreensaver)
                                           end
                                   end)
        end
 end
 
 
-function addScreenSaver(self, displayName, applet, method, settingsName, 
settings, weight)
+function addScreenSaver(self, displayName, applet, method, settingsName, 
settings, weight, closeMethod )
        local key = tostring(applet) .. ":" .. tostring(method)
        self.screensavers[key] = {
                applet = applet,
                method = method,
                displayName = displayName,
                settings = settings,
-               weight = weight
+               weight = weight,
+               closeMethod = closeMethod
        }
 
        if settingsName then
@@ -275,6 +299,7 @@
                button:addListener(EVENT_KEY_PRESS,
                        function(evt)
                                if evt:getKeycode() == KEY_PLAY then
+                                       self.demoScreensaver = key
                                        self:_activate(key)
                                        return EVENT_CONSUME
                                end

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

Reply via email to