Author: tom
Date: Mon Nov 3 06:26:29 2008
New Revision: 3257
URL: http://svn.slimdevices.com?rev=3257&root=Jive&view=rev
Log:
Bug 8669,9843:
Description:
Applet load support, no stopped screensaver by default
Added:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SetupSoundEffects/loadPriority.lua
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/loadPriority.lua
Modified:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
7.3/trunk/squeezeplay/src/squeezeplay/share/jive/AppletManager.lua
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/DesktopJiveMeta.lua
Modified:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua?rev=3257&root=Jive&r1=3256&r2=3257&view=diff
==============================================================================
---
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
(original)
+++
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/ScreenSavers/ScreenSaversApplet.lua
Mon Nov 3 06:26:29 2008
@@ -50,7 +50,7 @@
function init(self, ...)
self.screensavers = {}
self.screensaverSettings = {}
- self:addScreenSaver(self:string("SCREENSAVER_NONE"), nil, nil, _, _,
100)
+ self:addScreenSaver(self:string("SCREENSAVER_NONE"), false, false, _,
_, 100)
self.timeout = self:getSettings()["timeout"]
@@ -126,7 +126,7 @@
end
local screensaver = self.screensavers[the_screensaver]
- if screensaver == nil or screensaver.applet == nil then
+ if not screensaver or not screensaver.applet then
-- no screensaver, do nothing
return
end
Added:
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SetupSoundEffects/loadPriority.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SetupSoundEffects/loadPriority.lua?rev=3257&root=Jive&view=auto
==============================================================================
---
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SetupSoundEffects/loadPriority.lua
(added)
+++
7.3/trunk/squeezeplay/src/squeezeplay/share/applets/SetupSoundEffects/loadPriority.lua
Mon Nov 3 06:26:29 2008
@@ -1,0 +1,1 @@
+loadPriority=1
Modified: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/AppletManager.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/AppletManager.lua?rev=3257&root=Jive&r1=3256&r2=3257&view=diff
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/AppletManager.lua
(original)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/AppletManager.lua Mon Nov
3 06:26:29 2008
@@ -32,6 +32,7 @@
local log = require("jive.utils.log").logger("applets.misc")
local locale = require("jive.utils.locale")
local dumper = require("jive.utils.dumper")
+local table = require("jive.utils.table")
local JIVE_VERSION = jive.JIVE_VERSION
local EVENT_ACTION = jive.ui.EVENT_ACTION
@@ -56,6 +57,9 @@
-- applet services
local _services = {}
+
+local _defaultSettingsByAppletName = {}
+--work in progress-- local _overrideSettingsByAppletName = {}
-- allowed applets, can be used for debugging to limit applets loaded
--[[
@@ -106,6 +110,7 @@
metaConfigured = false,
appletLoaded = false,
appletEvaluated = false,
+ loadPriority = _getLoadPriority(dir.. "/" .. name)
}
_appletsDb[name] = newEntry
end
@@ -193,7 +198,7 @@
local function _loadMetas()
log:debug("_loadMetas")
- for name, entry in pairs(_appletsDb) do
+ for name, entry in pairs(getSortedAppletDb(_appletsDb)) do
if not entry.metaLoaded then
_ploadMeta(entry)
end
@@ -223,10 +228,40 @@
if not entry.settings then
entry.settings = obj:defaultSettings()
+
+ --apply global defaults
+ local globalDefaultSettings =
_getDefaultSettings(entry.appletName)
+
+ if globalDefaultSettings then
+ if not entry.settings then
+ entry.settings = {}
+ end
+
+ for settingName, settingValue in
pairs(globalDefaultSettings) do
+ --global defaults override applet default
settings
+ log:error("Setting global default",
settingName, "=", settingValue)
+ entry.settings[settingName] = settingValue
+ end
+ end
+
else
entry.settings = obj:upgradeSettings(entry.settings)
end
+ --apply global overrides
+-- local overrideSettings = _getOverrideSettings(entry.appletName)
+--
+-- if defaultSettings then
+-- if not entry.settings then
+-- entry.settings = {}
+-- end
+--
+-- for settingName, settingValue in pairs(defaultSettings) do
+-- --global defaults override applet default settings
+-- entry.settings[settingName] = settingValue
+-- end
+-- end
+
obj._entry = entry
obj._settings = entry.settings
obj._stringsTable = entry.stringsTable
@@ -268,11 +303,11 @@
local function _evalMetas()
log:debug("_evalMetas")
- for name, entry in pairs(_appletsDb) do
+ for name, entry in pairs(getSortedAppletDb(_appletsDb)) do
_pevalMeta(entry)
end
- for name, entry in pairs(_appletsDb) do
+ for name, entry in pairs(getSortedAppletDb(_appletsDb)) do
if entry.metaLoaded and not entry.metaConfigured then
local ok, resOrErr = pcall(_configureMeta, entry)
if not ok then
@@ -293,7 +328,7 @@
-- trash them , we would need to store them here (to reload them if the
applet ever runs)
-- because the meta might have changed them.
- for name, entry in pairs(_appletsDb) do
+ for name, entry in pairs(getSortedAppletDb(_appletsDb)) do
entry.metaObj = nil
-- trash the meta in all cases, it's done it's job
@@ -311,19 +346,26 @@
log:debug("AppletManager:loadApplets")
_findApplets()
-
- -- load the sound effects applet first so the startup
- -- sound is played without delay.
- -- FIXME make the startup order of applet configurable
- local soundEffectsEntry = _appletsDb["SetupSoundEffects"]
- if soundEffectsEntry then
- _loadMeta(soundEffectsEntry)
- _registerMeta(soundEffectsEntry)
- _configureMeta(soundEffectsEntry)
- end
-
_loadMetas()
_evalMetas()
+end
+
+
+function getSortedAppletDb(hash)
+ local sortedTable = {};
+ for k, value in pairs(hash) do
+ table.insert(sortedTable, value);
+ end
+ table.sort(sortedTable, _comparatorLoadPriorityThenAlphabetic)
+ return sortedTable;
+end
+
+function _comparatorLoadPriorityThenAlphabetic(a, b)
+ if (a.loadPriority ~= b.loadPriority) then
+ return a.loadPriority < b.loadPriority
+ else
+ return a.appletName < b.appletName
+ end
end
@@ -542,6 +584,33 @@
end
end
+-- _getLoadPriority
+--
+function _getLoadPriority(appletDir)
+
+ log:debug("_getLoadPriority: ", appletDir)
+
+ local fh = io.open(appletDir .. "/" .. "loadPriority.lua")
+ if fh == nil then
+ -- no loadPriority file, retrun default priority
+ return 100
+ end
+
+ local f, err = load(function() return fh:read() end)
+ fh:close()
+
+ if not f then
+ log:error("Error reading ", appletDir, " loadPriority: ", err)
+ else
+ -- evalulate in a sandbox
+ local env = {}
+ setfenv(f, env)
+ f()
+
+ return env.loadPriority
+ end
+end
+
-- _storeSettings
--
@@ -609,6 +678,25 @@
end
+function _getDefaultSettings(appletName)
+ return _defaultSettingsByAppletName[appletName]
+end
+
+function _setDefaultSettings(appletName, settings)
+ if not _defaultSettingsByAppletName[appletName] then
+ _defaultSettingsByAppletName[appletName] = {}
+ end
+ _defaultSettingsByAppletName[appletName] = settings
+end
+
+function addDefaultSetting(self, appletName, settingName, settingValue)
+ if not _defaultSettingsByAppletName[appletName] then
+ _defaultSettingsByAppletName[appletName] = {}
+ end
+ _defaultSettingsByAppletName[appletName][settingName] = settingValue
+end
+
+
function registerService(self, appletName, service)
log:debug("registerService appletName=", appletName, " service=",
service)
Modified:
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/DesktopJiveMeta.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/DesktopJiveMeta.lua?rev=3257&root=Jive&r1=3256&r2=3257&view=diff
==============================================================================
---
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/DesktopJiveMeta.lua
(original)
+++
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/DesktopJiveMeta.lua
Mon Nov 3 06:26:29 2008
@@ -90,6 +90,8 @@
-- set uuid
jnt:setUUID(settings.uuid, settings.mac)
+ appletManager:addDefaultSetting("ScreenSavers", "whenStopped",
"false:false")
+
jiveMain:setDefaultSkin("FullscreenSkin")
end
Added:
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/loadPriority.lua
URL:
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/loadPriority.lua?rev=3257&root=Jive&view=auto
==============================================================================
---
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/loadPriority.lua
(added)
+++
7.3/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/DesktopJive/loadPriority.lua
Mon Nov 3 06:26:29 2008
@@ -1,0 +1,1 @@
+loadPriority=2
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins