Author: fmueller
Date: Mon Mar  1 08:43:28 2010
New Revision: 8607

URL: http://svn.slimdevices.com/jive?rev=8607&view=rev
Log:
Bug: 15660 
Description: Show message if TinySC goes down unexpectedly. 

Modified:
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Meta.lua
    
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/strings.txt

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua?rev=8607&r1=8606&r2=8607&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/SqueezeCenterApplet.lua
 Mon Mar  1 08:43:28 2010
@@ -282,6 +282,10 @@
        end
 
        if action == 'stop' then
+
+               -- Guardian timer is in Fab4 applet to be resident
+               appletManager:callService("SCGuardianTimer", action)
+
                -- don't use shell script, we might be out of memory
                if self:serverRunning() then
 
@@ -300,6 +304,9 @@
 
        else
                os.execute("/etc/init.d/squeezecenter " .. action);
+
+               -- Guardian timer is in Fab4 applet to be resident
+               appletManager:callService("SCGuardianTimer", action)
        end
 end
 

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt?rev=8607&r1=8606&r2=8607&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeCenter/strings.txt
 Mon Mar  1 08:43:28 2010
@@ -1511,9 +1511,3 @@
        RU      Моя музыка
        SV      Min musik
 
-SERVER_HAS_BEEN_STOPPED
-       EN      Local music service stopped
-
-SERVER_HAS_BEEN_STOPPED_INFO
-       EN      Local music service has been stopped due to a problem.
-

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua?rev=8607&r1=8606&r2=8607&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
 Mon Mar  1 08:43:28 2010
@@ -42,9 +42,12 @@
 local EVENT_IR_DOWN          = jive.ui.EVENT_IR_DOWN
 local EVENT_IR_REPEAT        = jive.ui.EVENT_IR_REPEAT
 
+local EVENT_WINDOW_INACTIVE  = jive.ui.EVENT_WINDOW_INACTIVE
+
 local jnt                    = jnt
 local iconbar                = iconbar
 local jiveMain               = jiveMain
+local appletManager          = appletManager
 local settings              = nil
 
 -- hack around global scope to allow bsp c code to call back to applet
@@ -747,6 +750,83 @@
 end
 
 
+-- Moved here from SqueezeCenter applet since SC applet is not resident
+--  but we need scGuardTimer to survive
+function SCGuardianTimer(self, action)
+
+       if (action == 'start') or (action == 'restart') then
+               log:debug("SC guard timer - start")
+
+               if self.scGuardTimer then
+                       self.scGuardTimer:stop()
+                       self.scGuardTimer = nil
+               end
+
+               self.scGuardTimer = Timer( 5000,        -- Check every 5 
seconds if still running
+                       function()
+                               -- don't use shell script, we might be out of 
memory
+                               local running = 
appletManager:callService("isBuiltInSCRunning")
+
+                               log:debug("SC guard timer - check SC running: 
", running)
+
+                               if not running then
+                                       log:warn("SC guard timer - SC got 
killed!!!")
+                                       self.scGuardTimer:stop()
+                                       self.scGuardTimer = nil
+                                       self:_showSCHasBeenStoppedMessage()
+                               end
+                       end,
+                       false
+               )
+               self.scGuardTimer:start()
+
+       elseif (action == 'stop') or (action == 'rescan') then
+               log:debug("SC guard timer - stop")
+
+               if self.scGuardTimer then
+                       self.scGuardTimer:stop()
+                       self.scGuardTimer = nil
+               end
+       end
+end
+
+
+-- Moved here from SqueezeCenter applet since SC applet is not resident
+--  but we need scGuardTimer to survive
+function _showSCHasBeenStoppedMessage(self)
+       local window = Window("text_list", 
self:string("SERVER_HAS_BEEN_STOPPED"))
+       window:setAllowScreensaver(false)
+       window:setButtonAction("rbutton", nil)
+
+       local menu = SimpleMenu("menu")
+
+       menu:addItem({
+               text = self:string("OK"),
+               style = 'item',
+               sound = "WINDOWSHOW",           
+               callback = function ()
+                       window:hide()
+               end
+       })
+
+       menu:setHeaderWidget( Textarea("help_text", 
self:string("SERVER_HAS_BEEN_STOPPED_INFO")))
+
+       window:addWidget(menu)
+
+       -- Remove ourselfs if we are not on top anymore, i.e. another window 
gets activated
+       window:addListener( EVENT_WINDOW_INACTIVE,
+               function()
+                       log:debug("Message window removed as we aren't active 
anymore.")
+                       window:hide()
+                       return EVENT_UNUSED
+               end
+       )
+
+       window:show()
+       return window
+end
+
+
 function free(self)
        log:error("free should never be called for this resident applet")
 

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Meta.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Meta.lua?rev=8607&r1=8606&r2=8607&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Meta.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Meta.lua
 Mon Mar  1 08:43:28 2010
@@ -93,6 +93,7 @@
        meta:registerService("reboot")
        meta:registerService("wasLastShutdownUnclean")
        meta:registerService("addUeventListener")
+       meta:registerService("SCGuardianTimer")
 end
 
 

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/strings.txt
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/strings.txt?rev=8607&r1=8606&r2=8607&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/strings.txt
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/strings.txt
 Mon Mar  1 08:43:28 2010
@@ -198,3 +198,10 @@
        RU      Используйте колесико для 
регулировки яркости.
        SV      Justera ljusstyrkan med rullningshjulet.
 
+SERVER_HAS_BEEN_STOPPED
+       EN      Local music service stopped
+
+SERVER_HAS_BEEN_STOPPED_INFO
+       EN      Local music service has been stopped due to a problem.
+
+

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

Reply via email to