Author: ayoung
Date: Thu Feb 4 11:10:41 2010
New Revision: 8454
URL: http://svn.slimdevices.com/jive?rev=8454&view=rev
Log:
bug 14515: Switching local player to new server (SbS or mySB) loses sync groups
Only use direct connection to local player to change server if we do not have a
connection to current server; otherwise use server to initiate switch.
Modified:
7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua
7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua
Modified: 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua
URL:
http://svn.slimdevices.com/jive/7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua?rev=8454&r1=8453&r2=8454&view=diff
==============================================================================
--- 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua
(original)
+++ 7.5/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua Thu
Feb 4 11:10:41 2010
@@ -184,20 +184,33 @@
function connectToServer(self, server)
- -- close any previous connection
- self.slimproto:disconnect()
+
+ if not server then
+ log:error("No server passed to connectToServer() method")
+ return false
+ end
-- make sure the server we are connecting to is awake
server:wakeOnLan()
- log:debug("connectToServer: ", server)
- if server then
+ if self:needsMusicSource() then
+ log:info('connectToServer(): connecting localPlayer to server',
server, ' via slimproto')
+
+ -- close any previous connection
+ self.slimproto:disconnect()
+
server:addLocallyRequestedServer(server)
-
self.slimproto:connect(server)
- end
-end
-
+ else
+ log:info('connectToServer(): switching localPlayer to server',
server)
+ local ip, port = server:getIpPort()
+
+ server:addLocallyRequestedServer(server)
+ self:send({'connect', ip}, true)
+ end
+ return true
+
+end
function connectIp(self, serverip, slimserverip)
self.slimproto:disconnect()
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=8454&r1=8453&r2=8454&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 Thu Feb 4
11:10:41 2010
@@ -379,6 +379,8 @@
--]]
function updatePlayerInfo(self, slimServer, playerInfo, useSequenceNumber,
isSequenceNumberInSync)
+ log:debug(self, "@", slimServer, ":updatePlayerInfo connected=",
playerInfo.connected);
+
-- ignore updates from a different server if the player
-- is not connected to it
if self.slimServer ~= slimServer
@@ -427,6 +429,9 @@
-- delete from old server
if self.slimServer then
self:free(self.slimServer)
+
+ -- refresh understanding of connected state because
free() may have changed it
+ self.info.connected = tonumber(playerInfo.connected) ==
1
end
-- modify the old state, as the player was not connected
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins