Author: bklaas
Date: Mon Jan 14 20:29:28 2008
New Revision: 1437
URL: http://svn.slimdevices.com?rev=1437&root=Jive&view=rev
Log:
Bug: 5806
Description:
add a firmwarestatus subscription that runs every 5 mins, only for SBC and not
jive_desktop
if new fw is available from SC, push on the upgrade window
change SetupFirmwareUpgrade to allow a passed url to forceUpgrade method
(seems like the same thing could be done in SetupFirmwareMeta instead of using
a global, but I'm not going to break something that isn't broken...)
Modified:
trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
Modified:
trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL:
http://svn.slimdevices.com/trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=1437&root=Jive&r1=1436&r2=1437&view=diff
==============================================================================
--- trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
(original)
+++ trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua Mon
Jan 14 20:29:28 2008
@@ -81,6 +81,7 @@
local KEY_VOLUME_DOWN = jive.ui.KEY_VOLUME_DOWN
local KEY_VOLUME_UP = jive.ui.KEY_VOLUME_UP
+local JIVE_VERSION = jive.JIVE_VERSION
local jiveMain = jiveMain
local iconbar = iconbar
local jnt = jnt
@@ -699,6 +700,36 @@
else
log:error(err)
+ end
+end
+
+-- _firmwareSink
+-- returns a sink with a closure to self
+-- cmd is passed so we know what process function to call
+-- this sink receives notifications of new Jive firmware available
+local function _firmwareSink(self, cmd)
+ return function(chunk, err)
+ log:info("FIRMWARE SINK")
+ if err then
+ log:warn(err)
+ return
+ end
+
+ local _data = chunk.data
+ if _data and _data.firmwareUpgrade and
tonumber(_data.firmwareUpgrade) == 1 then
+ -- time to make the donuts
+ log:warn("New firmware detected!")
+ local fwApplet =
AppletManager:loadApplet("SetupFirmwareUpgrade")
+ if fwApplet then
+ fwApplet:forceUpgrade(_data.firmwareUrl)
+ -- you've gotten the fw upgrade notice, so quit
requesting it
+ if _server and _player then
+ log:warn("unsubscribing from
firmwarestatus")
+
_server.comet:unsubscribe('/slim/firmwarestatus/' .. _player.id)
+ end
+ end
+ return
+ end
end
end
@@ -1793,6 +1824,23 @@
_server = player:getSlimServer()
_string = function(token) return self:string(token) end
+ if _player then
+ local fwApplet =
AppletManager:loadApplet("SetupFirmwareUpgrade")
+ -- no need to bother if we don't have the SetupFirmware applet
(e.g., when running jive_desktop)
+ if fwApplet then
+ log:warn('**** SUBSCRIBING to /slim/firmwarestatus/',
_player.id)
+ local fwcmd = { 'firmwareupgrade', 'firmwareVersion:'
.. JIVE_VERSION, 'subscribe:3600' }
+ _server.comet:subscribe(
+ '/slim/firmwarestatus/' .. _player.id,
+ _firmwareSink(sink, fwcmd, fwApplet),
+ _player.id,
+ fwcmd
+ )
+ end
+ AppletManager:freeApplet("SetupFirmwareUpgrade")
+ end
+
+
log:warn('**** SUBSCRIBING to /slim/menustatus/', _player.id)
local cmd = { 'menustatus' }
_server.comet:subscribe(
@@ -1907,8 +1955,10 @@
-- unsubscribe from this player's menustatus
log:warn("***** UNSUBSCRIBING FROM /slim/menustatus/", _player.id)
+ log:warn("***** UNSUBSCRIBING FROM /slim/firmwarestatus/", _player.id)
if _server and _player then
_server.comet:unsubscribe('/slim/menustatus/' .. _player.id)
+ _server.comet:unsubscribe('/slim/firmwarestatus/' .. _player.id)
end
if _player then
Modified:
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
URL:
http://svn.slimdevices.com/trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua?rev=1437&root=Jive&r1=1436&r2=1437&view=diff
==============================================================================
---
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
(original)
+++
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeApplet.lua
Mon Jan 14 20:29:28 2008
@@ -75,14 +75,17 @@
oo.class(_M, Applet)
-function forceUpgrade(self)
+function forceUpgrade(self, upgUrl)
local window = Window("window", self:string("UPDATE"),
firmwareupgradeTitleStyle)
window:setAllowScreensaver(false)
local menu = SimpleMenu("menu")
menu:setCloseable(false)
- local url = upgradeUrl[1]
+ local url
+ if not upgUrl then
+ url = upgradeUrl[1]
+ end
if not url then
url = DEFAULT_FIRMWARE_URL
end
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/cgi-bin/mailman/listinfo/jive-checkins