Author: bklaas
Date: Tue Jan 15 13:26:42 2008
New Revision: 1448

URL: http://svn.slimdevices.com?rev=1448&root=Jive&view=rev
Log:
Bug: 5806
Description: strip out all firmware update code from SlimBrowser and put it in 
SetupFirmwareUpgradeMeta

Modified:
    trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua
    
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeMeta.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=1448&root=Jive&r1=1447&r2=1448&view=diff
==============================================================================
--- trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua 
(original)
+++ trunk/jive/src/pkg/jive/share/applets/SlimBrowser/SlimBrowserApplet.lua Tue 
Jan 15 13:26:42 2008
@@ -700,36 +700,6 @@
                
        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
 
@@ -1824,23 +1794,6 @@
        _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(
@@ -1955,10 +1908,8 @@
 
        -- 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/SetupFirmwareUpgradeMeta.lua
URL: 
http://svn.slimdevices.com/trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeMeta.lua?rev=1448&root=Jive&r1=1447&r2=1448&view=diff
==============================================================================
--- 
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeMeta.lua
 (original)
+++ 
trunk/jive/src/pkg/jive_squeezeboxjive/share/applets/SetupFirmwareUpgrade/SetupFirmwareUpgradeMeta.lua
 Tue Jan 15 13:26:42 2008
@@ -19,10 +19,8 @@
 upgradeUrl          = { false }
 local upgradeUrl    = upgradeUrl
 
-
 module(...)
 oo.class(_M, AppletMeta)
-
 
 function jiveVersion(meta)
        return 1, 1
@@ -41,6 +39,7 @@
        -- do this in a closure
        local firmwareUpgradeSink =
                function(chunk, err)
+                       log:warn("FIRMWARE SINK")
                        if err then
                                log:warn(err)
                                return
@@ -53,31 +52,54 @@
 
                        -- are we forcing an upgrade
                        if tonumber(chunk.data.firmwareUpgrade) == 1 then
+                               log:warn("New Firmware Available")
                                local applet = 
appletManager:loadApplet("SetupFirmwareUpgrade")
-                               applet:forceUpgrade()
+                               applet:forceUpgrade(upgradeUrl[1])
+                               --FIXME, the unsubscriptions do not work
+                               if player then
+                                       log:warn("Unsubscribing from 
/slim/firmwarestatus/", player.id)
+                                       
player.slimServer.comet:unsubscribe('/slim/firmwarestatus/' .. player.id)
+                               end
+                               if self and self.player then
+                                       log:warn("Unsubscribing from 
/slim/firmwarestatus/", self.player.id)
+                                       
self.player.slimServer.comet:unsubscribe('/slim/firmwarestatus/' .. 
self.player.id)
+                               end
+                       else
+                               log:warn("no new firmware needed")
                        end
 
-                       -- FIXME allow for applet install/upgrade here
                end
 
        local monitor = {
                notify_playerCurrent =
                        function(self, player)
                                log:warn("PLAYER CURRENT!!")
+                               --FIXME, the unsubscription does not work
+                               if self.player and player and self.player ~= 
player then
+                                       log:warn("Unsubscribing from 
/slim/firmwarestatus/", self.player.id)
+                                       
self.player.slimServer.comet:unsubscribe('/slim/firmwarestatus/' .. 
self.player.id)
+                               end
 
-                               local cmd = { 'firmwareupgrade', 
'firmwareVersion:' .. JIVE_VERSION }
-                               -- FIXME send to slimserver installed applets 
and versions
-
-                               if( player) then                                
-                                       
player.slimServer.comet:request(firmwareUpgradeSink,
-                                                               player:getId(),
-                                                               cmd
-                                                               )
+                               if player then                          
+                                       local fwcmd = { 'firmwareupgrade', 
'firmwareVersion:' .. JIVE_VERSION, 'subscribe:3600' }
+                                       player.slimServer.comet:subscribe(
+                                               '/slim/firmwarestatus/' .. 
player.id,
+                                               firmwareUpgradeSink,
+                                               player.id,
+                                               fwcmd
+                                       )
+                               end
+                       end,
+               notify_playerDisconnect =
+                       function(self,player)
+                               if player then
+                                       
player.slimServer.comet:unsubscribe('/slim/firmwarestatus/' .. player.id)
                                end
                        end
        }
 
        jnt:subscribe(monitor)
+
 end
 
 

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

Reply via email to