Author: bklaas
Date: Mon May 24 11:23:45 2010
New Revision: 8803
URL: http://svn.slimdevices.com/jive?rev=8803&view=rev
Log:
Bug: 15663
Description: also send WOL 5 minutes before snoozed alarm is set to refire
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.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=8803&r1=8802&r2=8803&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 May 24 11:23:45 2010
@@ -89,13 +89,6 @@
log:warn('**** self.server: ',
self.server)
if self.server then
log:warn('**** self.server.mac:
', self.server.mac)
- end
- if self.RTCAlarmTimer:isRunning() and self.debugRTCTime
and self.debugRTCTime > 0 then
- local timeToAlarm = self.debugRTCTime / 1000
- log:warn('**** RTC time: ', timeToAlarm)
- if self.debugRTCTime > 0 then
- self.debugRTCTime = self.debugRTCTime -
1000
- end
end
if self.RTCAlarmTimer:isRunning() and self.debugRTCTime
and self.debugRTCTime > 0 then
local timeToAlarm = self.debugRTCTime / 1000
@@ -631,7 +624,7 @@
function _stopDecodeStatePoller(self)
- if self.decodeStatePoller:isRunning() then
+ if self.decodeStatePoller and self.decodeStatePoller:isRunning() then
log:warn('stopping decodeStatePoller')
self.decodeStatePoller:stop()
end
@@ -639,10 +632,12 @@
function _startDecodeStatePoller(self)
- if self.decodeStatePoller:isRunning() then
- self.decodeStatePoller:restart()
- else
- self.decodeStatePoller:start()
+ if self.decodeStatePoller then
+ if self.decodeStatePoller:isRunning() then
+ self.decodeStatePoller:restart()
+ else
+ self.decodeStatePoller:start()
+ end
end
end
@@ -679,41 +674,56 @@
self.debugRTCTime = interval
else
-- get msecs between now and requested alarm
- -- add 10 secs for fallback timer to bias alarm toward server
wakeup
- local sleepMsecs = self:_deltaMsecs(self.alarmNext + 10);
- log:warn('_startTimer: starting RTC fallback alarm timer (',
sleepMsecs, ')')
- self.RTCAlarmTimer:setInterval(sleepMsecs)
- self.debugRTCTime = sleepMsecs
-
- -- WOL timer is set when sleepMsecs is more than 5:00 away
- local wolLeadTime = 1000 * 60 * 5 -- 5 minutes
- if sleepMsecs > wolLeadTime then
- self.wakeOnLanTimer:setInterval(sleepMsecs -
wolLeadTime)
- self.debugWOLTime = sleepMsecs - wolLeadTime
- if self.wakeOnLanTimer:isRunning() then
- self.wakeOnLanTimer:restart()
- else
- self.wakeOnLanTimer:start()
- end
- -- if it's within 5 minutes, send a WOL packet as a best effort
- elseif self.server then
- log:warn('SEND WOL NOW')
- self.server:wakeOnLan()
- end
- end
+ interval = self:_deltaMsecs(self.alarmNext)
+
+ -- add 20 secs for fallback timer to bias alarm toward server
wakeup
+ local rtcSleepMsecs = interval + 20000
+
+ log:warn('_startTimer: starting RTC fallback alarm timer (',
rtcSleepMsecs, ')')
+ self.RTCAlarmTimer:setInterval(rtcSleepMsecs)
+ self.debugRTCTime = rtcSleepMsecs
+
+ -- restart the WOL timer for 5 minutes, or immediately send WOL
if alarm is within 5 mins
+ self:_wolTimerRestart(interval)
+
+ end
+
self.RTCAlarmTimer:start()
end
+function _wolTimerRestart(self, msecsToAlarm)
+ local wolLeadTime = 1000 * 60 * 5 -- 5 minutes
+ if msecsToAlarm > wolLeadTime then
+ self.wakeOnLanTimer:setInterval(msecsToAlarm - wolLeadTime)
+ self.debugWOLTime = msecsToAlarm - wolLeadTime
+ if self.wakeOnLanTimer:isRunning() then
+ self.wakeOnLanTimer:restart()
+ else
+ self.wakeOnLanTimer:start()
+ end
+ -- if it's within 5 minutes, send a WOL packet as a best effort
+ elseif self.server then
+ log:warn('SEND WOL NOW')
+ self.debugWOLTime = 0
+ self.server:wakeOnLan()
+ end
+end
+
+
function _alarmSnooze(self)
log:warn('_alarmSnooze: alarmInProgress is ', self.alarmInProgress, ' :
connection status is ', self.localPlayer:isConnected())
self:_stopTimer()
+ log:warn('_alarmSnooze: fallback alarm snoozing for ',
alarmSnoozeSeconds,' + 20 seconds')
local alarmSnoozeSeconds = self.localPlayer:getAlarmSnoozeSeconds()
- log:warn('_alarmSnooze: fallback alarm snoozing for ',
alarmSnoozeSeconds,' + 20 seconds')
- self:_startTimer(alarmSnoozeSeconds * 1000 + 20000 )
+ local fallbackAlarmMsecs = alarmSnoozeSeconds * 1000 + 20000
+ self.debugRTCTime = fallbackAlarmMsecs
+
+ self:_startTimer(fallbackAlarmMsecs)
+ self:_wolTimerRestart(alarmSnoozeSeconds * 1000)
if self.alarmInProgress == 'rtc' then
log:warn('_alarmSnooze: stopping fallback alarm audio')
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins