Author: titmuss
Date: Tue Oct 21 14:57:04 2008
New Revision: 3177

URL: http://svn.slimdevices.com?rev=3177&root=Jive&view=rev
Log:
Bug: N/A
Description:
Missing file.


Added:
    7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua

Added: 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua
URL: 
http://svn.slimdevices.com/7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua?rev=3177&root=Jive&view=auto
==============================================================================
--- 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua 
(added)
+++ 7.3/trunk/squeezeplay/src/squeezeplay/share/jive/slim/LocalPlayer.lua Tue 
Oct 21 14:57:04 2008
@@ -1,0 +1,130 @@
+--[[
+
+Player instance for local playback.
+
+--]]
+
+local assert = assert
+
+local oo             = require("loop.simple")
+
+local Player         = require("jive.slim.Player")
+
+local SlimProto      = require("jive.net.SlimProto")
+local Playback       = require("jive.audio.Playback")
+
+local debug          = require("jive.utils.debug")
+local log            = require("jive.utils.log").logger("player")
+
+
+-- can be overridden by hardware specific classes
+local DEVICE_MODEL   = "SqueezePlay"
+
+
+module(...)
+oo.class(_M, Player)
+
+
+local device2id = {
+       ["Controller"] = 9,
+       ["SqueezePlay"] = 12,
+}
+
+function __init(self, jnt, id, uuid)
+       local obj = oo.rawnew(self, Player(jnt, id))
+
+       local deviceid = device2id[DEVICE_MODEL]
+       assert(deviceid)
+
+       obj.slimproto = SlimProto(jnt, {
+               opcode = "HELO",
+               deviceID = deviceid,
+               revision = 0,
+               mac = id,
+               uuid = uuid,
+       })
+       obj.playback = Playback(jnt, obj.slimproto)
+
+log:warn("******** ", DEVICE_MODEL, " ", deviceid, " ", obj.slimproto)
+
+       -- initialize with default values
+       obj:updateInit(nil, {
+               name = DEVICE_MODEL,
+               model = DEVICE_MODEL,
+       })
+
+       return obj
+end
+
+
+function free(self, server)
+       -- close any previous connection
+       if self.slimproto then
+               self.slimproto:disconnect()
+               self.slimproto = nil
+       end
+
+       if self.playback then
+               self.playback:free()
+               self.playback = nil
+       end
+
+       Player.free(self, server)
+
+end
+
+
+function updateInit(self, server, init)
+       Player.updateInit(self, squeezeCenter, init)
+
+       if server then
+               self:connectToServer(server)
+       end
+end
+
+
+function needsNetworkConfig(self)
+       return false
+end
+
+
+function needsMusicSource(self)
+       return not self.slimproto:isConnected()
+end
+
+
+function canConnectToServer(self)
+       return true
+end
+
+
+function connectToServer(self, server)
+       -- close any previous connection
+       self.slimproto:disconnect()
+
+       -- make sure the server we are connecting to is awake
+       server:wakeOnLan()
+
+       if server then
+               local serverip = server:getIpPort()
+               self.slimproto:connect(serverip)
+       end
+end
+
+
+function __tostring(self)
+       return "LocalPlayer {" .. self:getName() .. "}"
+end
+
+
+
+--[[
+
+=head1 LICENSE
+
+Copyright 2007 Logitech. All Rights Reserved.
+
+This file is subject to the Logitech Public Source License Version 1.0. Please 
see the LICENCE file for details.
+
+=cut
+--]]

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

Reply via email to