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