Author: bklaas
Date: Mon Jul 19 10:58:58 2010
New Revision: 8962

URL: http://svn.slimdevices.com/jive?rev=8962&view=rev
Log:
Fixed Bug: 16149
Description: honor alarm timeout from server for fallback alarm.
in the absence of the SBS 7.5/trunk checkin r31076, player hard coded to a 60 
minute timeout (which is also the server default for a player's alarm timeout)

Modified:
    
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
    7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua

Modified: 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua?rev=8962&r1=8961&r2=8962&view=diff
==============================================================================
--- 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
 (original)
+++ 
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
 Mon Jul 19 10:58:58 2010
@@ -129,6 +129,9 @@
 function notify_playerAlarmState(self, player, alarmState, alarmNext)
 
        log:warn('notify_playerAlarmState received for ', player, ' with 
alarmState of ', alarmState)
+       if not player then
+               return
+       end
        if player:isLocal() then
                log:warn('**************************** notify_playerAlarmState 
received: ', alarmState, ' ', alarmNext)
                -- if there's an existing alarm window on the screen and the 
rtc alarm isn't firing, 
@@ -253,6 +256,9 @@
 
 function notify_playerLoaded(self, player)
        log:info("notify_playerLoaded(", player, ")")
+       if not player then
+               return
+       end
        if player == self.localPlayer then
 --             self:_alarm_sledgehammerRearm('notify_playerLoaded')
                -- check for pending server alarm in case that one is pending 
instead, since we may have changed players to force 
@@ -265,6 +271,9 @@
 
 
 function notify_playerPower(self, player, power)
+       if not player then
+               return
+       end
         if player ~= self.localPlayer then
                 return
         end
@@ -293,6 +302,9 @@
 
 function notify_playerModeChange(self, player, mode)
        log:warn('notify_playerModeChange: player (', player,') mode has been 
changed to ', mode)
+       if not player then
+               return
+       end
        local status = decode:status()
        log:warn('notify_playerModeChange: - audioState is ', status.audioState)
 end
@@ -300,6 +312,9 @@
 
 function notify_playerConnected(self, player)
        log:warn('notify_playerConnected: ', player, ' ', self.alarmInProgress)
+       if not player then
+               return
+       end
        if player == self.localPlayer then
 --             self:_alarm_sledgehammerRearm('notify_playerConnected')
                self.server = player:getSlimServer()
@@ -312,6 +327,9 @@
 
 function notify_playerDisconnected(self, player)
        log:warn('notify_playerDisconnected ', player, self.alarmInProgress)
+       if not player then
+               return
+       end
        if player == self.localPlayer then
        end
 end
@@ -428,6 +446,21 @@
        )
        self.fadeInTimer:start()
 
+       local alarmTimeoutSeconds = self.localPlayer:getAlarmTimeoutSeconds() 
or ( 60 * 60 ) -- defaults to 1 hour
+       if alarmTimeoutSeconds ~= 0 then
+               local alarmTimeoutMsecs = alarmTimeoutSeconds * 1000
+               log:info("Fallback alarm will timeout in ", 
alarmTimeoutSeconds, " seconds")
+               self.fallbackAlarmTimeout = Timer(alarmTimeoutMsecs,
+                               function ()
+                                       if self.alarmInProgress == 'rtc' then
+                                               log:warn('rtc alarm has timed 
out')
+                                               self:_alarmOff()
+                                       end
+                               end
+               )
+               self.fallbackAlarmTimeout:start()
+       end
+
 end
 
 
@@ -655,6 +688,11 @@
                log:warn('_alarmOff: send stopAlarm to connected server')
                self.localPlayer:stopAlarm()
        end
+
+       if self.fallbackAlarmTimeout and self.fallbackAlarmTimeout:isRunning() 
then
+               self.fallbackAlarmTimeout:stop()
+       end
+
 end
 
 

Modified: 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua
URL: 
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua?rev=8962&r1=8961&r2=8962&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua (original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua Mon Jul 19 
10:58:58 2010
@@ -1198,7 +1198,10 @@
        self.playlistCurrentIndex = event.data.playlist_cur_index and 
tonumber(event.data.playlist_cur_index) + 1
        self.definedPresets = event.data.preset_loop
        -- alarm snooze seconds for player, defaults to 540
-       self.alarmSnoozeSeconds = event.data.alarm_snooze_seconds
+       self.alarmSnoozeSeconds  = event.data.alarm_snooze_seconds
+       -- alarm timeout seconds for player, defaults to 3600 (same as server 
default)
+       self.alarmTimeoutSeconds = event.data.alarm_timeout_seconds
+
        -- Bug 15814: flag for when the audio hasn't started streaming yet but 
mode is play
        self.waitingToPlay = event.data.waitingToPlay or false
 
@@ -1884,6 +1887,10 @@
        return self.alarmSnoozeSeconds or 540
 end
 
+function getAlarmTimeoutSeconds(self)
+       return self.alarmTimeoutSeconds or 3600
+end
+
 function isConnected(self)
        return self.slimServer and self.slimServer:isConnected() and 
self.info.connected
 end

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

Reply via email to