Author: bklaas
Date: Fri Oct 24 14:56:16 2008
New Revision: 3213

URL: http://svn.slimdevices.com?rev=3213&root=Jive&view=rev
Log:
Bug: 8646, 9102
Description: make date a subscription not a timed poll request to SC
needs to be paired with SC >=r23685 for date subscription to work properly

Modified:
    
7.3/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua

Modified: 
7.3/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua?rev=3213&root=Jive&r1=3212&r2=3213&view=diff
==============================================================================
--- 
7.3/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 (original)
+++ 
7.3/trunk/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 Fri Oct 24 14:56:16 2008
@@ -259,7 +259,8 @@
 
 
 function notify_playerCurrent(self, player)
-       if not player then
+       -- if not passed a player, or if player hasn't change, exit
+       if not player or self.player == player then
                return
        end
 
@@ -270,40 +271,36 @@
                return
        end
 
-       if self.clockTimer then
-               self.clockTimer:stop()
-       end
-
        local sink = function(chunk, err)
                             if err then
                                     log:warn(err)
                                     return
                             end
-
+                               log:debug('Date being synched from player to 
controller: ', chunk.data.date)
                              self:setDate(chunk.data.date)
                     end
+
  
-       -- this is a background request
-       -- FIXME this should be a subscription
-       self.server:request(sink,
-                           player:getId(),
-                           { 'date' }
-                   )
-
-       -- start a recurring timer for synching to SC/SN
-       self.clockTimer = Timer(6000000, -- 1 hour
-               function()
-                       if self.player and self.server then
-                               self.server:request(sink,
-                                                   self.player:getId(),
-                                                   { 'date' }
-                                           )
-                       end
-               end,
-               false)
-       self.clockTimer:start()
-end
-
+       -- setup a once/hour
+        player:subscribe(
+                         '/slim/datestatus/' .. self.player:getId(),
+                         sink,
+                         self.player:getId(),
+                         { 'date', 'subscribe:3600' }
+       )
+
+end
+
+function notify_playerDelete(self, player)
+       if self.player ~= player then
+               return
+       end
+
+       log:warn('unsubscribing from datestatus/', self.player:getId())
+       self.player:unsubscribe('/slim/datestatus/' .. self.player:getId())
+       self.player = false
+
+end
 
 function setDate(self, date)
        -- matches date format 2007-09-08T20:40:42+00:00

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

Reply via email to