Author: titmuss
Date: Tue May  6 14:05:29 2008
New Revision: 2425

URL: http://svn.slimdevices.com?rev=2425&root=Jive&view=rev
Log:
Bug: N/A
Description:
Simple test applet to allow connection to SqueezeCenter for local playback.


Added:
    7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/
    
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackApplet.lua
    
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackMeta.lua
Modified:
    7.2/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua
    
7.2/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/TestDecode/TestDecodeApplet.lua

Added: 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackApplet.lua
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackApplet.lua?rev=2425&root=Jive&view=auto
==============================================================================
--- 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackApplet.lua
 (added)
+++ 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackApplet.lua
 Tue May  6 14:05:29 2008
@@ -1,0 +1,155 @@
+
+
+-- stuff we use
+local pairs, setmetatable, tostring, tonumber  = pairs, setmetatable, 
tostring, tonumber
+
+local oo            = require("loop.simple")
+local string        = require("string")
+local table         = require("jive.utils.table")
+
+local Applet        = require("jive.Applet")
+local SlimServers   = require("jive.slim.SlimServers")
+
+local Framework     = require("jive.ui.Framework")
+local Checkbox      = require("jive.ui.Checkbox")
+local Label         = require("jive.ui.Label")
+local SimpleMenu    = require("jive.ui.SimpleMenu")
+local Window        = require("jive.ui.Window")
+local Textarea      = require("jive.ui.Textarea")
+local Textinput     = require("jive.ui.Textinput")
+local Popup         = require("jive.ui.Popup")
+local Icon          = require("jive.ui.Icon")
+
+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("applets.setup")
+
+local jnt           = jnt
+local jiveMain      = jiveMain
+local appletManager = appletManager
+
+
+module(..., Framework.constants)
+oo.class(_M, Applet)
+
+
+local CONNECT_TIMEOUT = 30
+
+
+-- main setting menu
+function settingsShow(self)
+
+       local window = Window("window", self:string("TEST_PLAYBACK"))
+       local menu = SimpleMenu("menu", items)
+       menu:setComparator(SimpleMenu.itemComparatorWeightAlpha)
+       window:addWidget(menu)
+
+
+       self.sdApplet = appletManager:getAppletInstance("SlimDiscovery")
+       if not self.sdApplet then
+               return window:tieAndShowWindow()
+       end
+
+
+       self.serverMenu = menu
+       self.serverWindow = window
+
+
+       -- Discover slimservers in this window
+       self.sdApplet:discover()
+       window:addTimer(1000, function() self.sdApplet:discover() end)
+
+
+       -- slimservers on the poll list
+       local poll = self.sdApplet:pollList()
+       for address,_ in pairs(poll) do
+               if address ~= "255.255.255.255" then
+                       self:_addServerItem(nil, address)
+               end
+       end
+
+
+       -- discovered slimservers
+       for _,server in self.sdApplet:allServers() do
+               self:_addServerItem(server)
+       end
+
+       -- Store the applet settings when the window is closed
+       window:addListener(EVENT_WINDOW_POP,
+                          function()
+                                  self:storeSettings()
+                          end
+                  )
+
+       self:tieAndShowWindow(window)
+end
+
+
+function _addServerItem(self, server, address)
+       log:debug("_addServerItem ", server, " " , port)
+
+       local id = server or address
+
+       -- new entry
+       local item = {
+               text = server and server:getName() or address,
+               sound = "WINDOWSHOW",
+               callback = function()
+                       self:_connectToServer(server)
+                       self.serverWindow:hide()
+               end,
+               weight = 1,
+       }
+
+       self.serverMenu:addItem(item)
+end
+
+
+function _connectToServer(self, server)
+       local ip = server:getIpPort()
+
+       local slimProto = SlimProto(jnt, ip, {
+               opcode = "HELO",
+               deviceID = "4",
+               revision = "0",
+       })
+
+       self.id = slimProto:getId()
+
+       Playback(jnt, slimProto)
+       slimProto:connect()
+
+
+       for id, player in self.sdApplet:allPlayers() do
+               if self.id == id then
+                       self.sdApplet:setCurrentPlayer(player)
+                       return
+               end
+       end
+
+       jnt:subscribe(self)
+end
+
+
+function notify_playerNew(self, player)
+       if self.id == player:getId() then
+               self.sdApplet:setCurrentPlayer(player)
+               jnt:unsubscribe(self)
+       end
+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
+--]]
+

Added: 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackMeta.lua
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackMeta.lua?rev=2425&root=Jive&view=auto
==============================================================================
--- 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackMeta.lua
 (added)
+++ 
7.2/trunk/squeezeplay/src/squeezeplay/share/applets/TestPlayback/TestPlaybackMeta.lua
 Tue May  6 14:05:29 2008
@@ -1,0 +1,39 @@
+
+local oo            = require("loop.simple")
+
+local AppletMeta    = require("jive.AppletMeta")
+
+local appletManager = appletManager
+local jiveMain      = jiveMain
+
+
+module(...)
+oo.class(_M, AppletMeta)
+
+
+function jiveVersion(self)
+       return 1, 1
+end
+
+
+function defaultSettings(self)
+       return { }
+end
+
+
+function registerApplet(self)
+       jiveMain:addItem(self:menuItem('testPlayback', 'home', "TEST_PLAYBACK", 
function(applet, ...) applet:settingsShow(...) end, 1))
+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
+--]]
+

Modified: 7.2/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua?rev=2425&root=Jive&r1=2424&r2=2425&view=diff
==============================================================================
--- 7.2/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua 
(original)
+++ 7.2/trunk/squeezeplay/src/squeezeplay/share/jive/net/SlimProto.lua Tue May  
6 14:05:29 2008
@@ -123,11 +123,11 @@
 local opcodes = {
        HELO = function(self, data)
                assert(data.revision)
-
-               local uuid, mac = self.jnt:getUUID()
+               assert(data.mac)
+               assert(data.uuid)
 
                local macp = {}
-               for v in string.gmatch(data.mac or mac, "(%x%x)") do
+               for v in string.gmatch(data.mac, "(%x%x)") do
                        macp[#macp + 1] = string.char(tonumber(v, 16))
                end
 
@@ -286,6 +286,11 @@
 
        -- helo packet sent on connection
        obj.heloPacket     = heloPacket
+
+       local uuid, mac = jnt:getUUID()
+       obj.heloPacket.mac = string.lower(mac)
+       obj.heloPacket.uuid = uuid
+
        obj.statusCallback = _defaultStatusCallback
 
        -- opcode subscriptions
@@ -305,6 +310,12 @@
 -- Return the server ip address
 function getServerIp(self)
        return self.serverip
+end
+
+
+-- Return this player's id 
+function getId(self)
+       return self.heloPacket.mac
 end
 
 

Modified: 
7.2/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/TestDecode/TestDecodeApplet.lua
URL: 
http://svn.slimdevices.com/7.2/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/TestDecode/TestDecodeApplet.lua?rev=2425&root=Jive&r1=2424&r2=2425&view=diff
==============================================================================
--- 
7.2/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/TestDecode/TestDecodeApplet.lua
 (original)
+++ 
7.2/trunk/squeezeplay/src/squeezeplay_desktop/share/applets/TestDecode/TestDecodeApplet.lua
 Tue May  6 14:05:29 2008
@@ -54,28 +54,6 @@
 
        local menu = SimpleMenu("menu",
                {
---[[
-                       { text = "VolUp",
-                               callback = function()
-                                       sp:send({
-                                                       opcode = "IR  ",
-                                                       format = 1,
-                                                       noBits = 1,
-                                                       code = 0x7689807f,
-                                               })
-                               end,
-                       },
-                       { text = "VolDown",
-                               callback = function()
-                               sp:send({
-                                                       opcode = "IR  ",
-                                                       format = 1,
-                                                       noBits = 1,
-                                                       code = 0x768900ff,
-                                               })
-                               end,
-                       },
---]]
                        { text = "State:", icon = values[1] },
                        { text = "Decode:", icon = values[2] },
                        { text = "Output:", icon = values[3] },
@@ -107,20 +85,13 @@
                                end
                        },
                        
-                       { text = "Decode WMA",
-                               sound = "WINDOWSHOW",
-                               callback = function(event, menuItem)
-                                       Decode:start(
-                                               string.byte('w'), 0, 0, 0, 0, 
0, 0
-                                       )
-                               end
-                       },
                        { text = "Decode Tone Multitone",
                                sound = "WINDOWSHOW",
                                callback = function(event, menuItem)
                                        Decode:start(
                                                string.byte('t'), 0, 0, 0, 0, 
0, 1
                                        )
+                                       Decode:resume()
                                end
                        },
                        { text = "Decode Tone Sine 44.1k",
@@ -129,6 +100,7 @@
                                        Decode:start(
                                                string.byte('t'), 0, 0, 0, 0, 
0, 10
                                        )
+                                       Decode:resume()
                                end
                        },
                        { text = "Decode Tone Sine 48k",
@@ -137,6 +109,7 @@
                                        Decode:start(
                                                string.byte('t'), 0, 0, 0, 0, 
0, 11
                                        )
+                                       Decode:resume()
                                end
                        },
                        { text = "Decode Tone Sine 88.2k",
@@ -145,6 +118,7 @@
                                        Decode:start(
                                                string.byte('t'), 0, 0, 0, 0, 
0, 12
                                        )
+                                       Decode:resume()
                                end
                        },
                        { text = "Decode Tone Sine 96k",
@@ -153,6 +127,7 @@
                                        Decode:start(
                                                string.byte('t'), 0, 0, 0, 0, 
0, 13
                                        )
+                                       Decode:resume()
                                end
                        },                      
 

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

Reply via email to