Author: bklaas
Date: Fri Jul 2 08:58:50 2010
New Revision: 8926
URL: http://svn.slimdevices.com/jive?rev=8926&view=rev
Log:
Bug: n/a
Description: strip out SN registration from jive, fab4 setup applets
clean up jive, fab4, baby, and desktop setup applets
move NetworkRegistration applet to squeezeplay_squeezeos in anticipation of it
being used for all squeezeos platforms
Added:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/NetworkRegistration/
- copied from r8909,
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/NetworkRegistration/
Removed:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/NetworkRegistration/
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SetupWelcome/SetupWelcomeApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeMeta.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeMeta.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeMeta.lua
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SetupWelcome/SetupWelcomeApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SetupWelcome/SetupWelcomeApplet.lua?rev=8926&r1=8925&r2=8926&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SetupWelcome/SetupWelcomeApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SetupWelcome/SetupWelcomeApplet.lua
Fri Jul 2 08:58:50 2010
@@ -40,9 +40,6 @@
local localPlayer = require("jive.slim.LocalPlayer")
local slimServer = require("jive.slim.SlimServer")
-local DNS = require("jive.net.DNS")
-local Networking = require("jive.net.Networking")
-
local debug = require("jive.utils.debug")
local locale = require("jive.utils.locale")
local string = require("jive.utils.string")
@@ -52,8 +49,6 @@
local jiveMain = jiveMain
local jnt = jnt
-
-local welcomeTitleStyle = 'setuptitle'
--This can be enabled for situations like MP where a fw upgrade is absolutely
required to complete setup
local UPGRADE_FROM_SCS_ENABLED = false
@@ -196,8 +191,8 @@
appletManager:callService("waitForSqueezenetwork")
end
- _setupComplete(self, false)
- _setupDone(self, true, true)
+ self:_setupComplete(false)
+ self:_setupDone(true)
self.locked = true -- free applet
jnt:unsubscribe(self)
@@ -251,7 +246,7 @@
--]]
-function _setupDone(self, setupDone, registerDone)
+function _setupDone(self, setupDone)
log:info("network setup complete")
local settings = self:getSettings()
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeApplet.lua?rev=8926&r1=8925&r2=8926&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeApplet.lua
Fri Jul 2 08:58:50 2010
@@ -42,7 +42,6 @@
local jiveMain = jiveMain
-local welcomeTitleStyle = 'setuptitle'
local disableHomeKeyDuringSetup
local freeAppletWhenEscapingSetup
@@ -53,11 +52,12 @@
jnt:subscribe(self)
end
+
function notify_playerCurrent(self, player)
if not self:getSettings().setupDone then
if player and not player:needsMusicSource() then
log:debug("notify_playerCurrent called with a source, so finishing
setup")
- self:step4()
+ self:setupDone()
end
end
end
@@ -70,13 +70,14 @@
end
+
function _freeAction(self)
free(self)
return EVENT_UNUSED
end
-function step1(self)
+function startSetup(self)
-- put Return to Setup menu item on jiveMain menu
local returnToSetup = {
id = 'returnToSetup',
@@ -85,7 +86,7 @@
weight = 2,
callback = function()
--note: don't refer to self here since the applet wil
have been freed if this is being called
- appletManager:callService("step1")
+ appletManager:callService("startSetup")
end
}
jiveMain:addItem(returnToSetup)
@@ -98,15 +99,10 @@
return self.topWindow
--- self._topWindow = self:setupWelcome(function() self:step3() end)
--- return self._topWindow
end
function step2(self)
- return self:setupWelcomeShow(function() self:step3() end)
-end
-
-function step3(self)
+ log:info("step2")
for i, player in Player.iterate() do
--auto select local player
if player:isLocal() then
@@ -116,57 +112,14 @@
return appletManager:callService("setupShowSelectPlayer", function()
end, 'setuptitle')
end
-function step4(self)
- return self:setupDone(function()
- self:getSettings().setupDone = true
- jiveMain:removeItemById('returnToSetup')
- self:storeSettings()
-
- jiveMain:closeToHome(true, Window.transitionPushLeft)
- end)
+function setupDone(self)
+ self:getSettings().setupDone = true
+ jiveMain:removeItemById('returnToSetup')
+ self:storeSettings()
+ jiveMain:closeToHome(true, Window.transitionPushLeft)
end
-
-function setupWelcomeShow(self, setupNext)
- local window = Window("help_list", self:string("WELCOME"),
welcomeTitleStyle)
- window:setAllowScreensaver(false)
-
- window:setButtonAction("rbutton", nil)
-
- local textarea = Textarea("help_text",
self:string("WELCOME_WALKTHROUGH"))
-
- local continueButton = SimpleMenu("menu")
-
- continueButton:addItem({
- text = (self:string("DONE_CONTINUE")),
- sound = "WINDOWSHOW",
- callback = setupNext,
- weight = 1
- })
-
- continueButton:setHeaderWidget(textarea)
- window:addWidget(continueButton)
-
- self:tieAndShowWindow(window)
- return window
-end
-
-function setupDone(self, setupNext)
- local window = Window("text_list", self:string("DONE"),
welcomeTitleStyle)
- local menu = SimpleMenu("menu")
-
- menu:addItem({ text = self:string("DONE_CONTINUE"),
- sound = "WINDOWSHOW",
- callback = setupNext
- })
-
- menu:setHeaderWidget(Textarea("help_text", self:string("DONE_HELP")))
- window:addWidget(menu)
-
- self:tieAndShowWindow(window)
- return window
-end
function free(self)
-- remove listeners when leaving this applet
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeMeta.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeMeta.lua?rev=8926&r1=8925&r2=8926&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeMeta.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_desktop/share/applets/SetupWelcome/SetupWelcomeMeta.lua
Fri Jul 2 08:58:50 2010
@@ -40,12 +40,12 @@
function registerApplet(meta)
- meta:registerService("step1")
+ meta:registerService("startSetup")
end
function configureApplet(meta)
if not meta:getSettings().setupDone then
- appletManager:callService("step1")
+ appletManager:callService("startSetup")
end
end
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeApplet.lua?rev=8926&r1=8925&r2=8926&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeApplet.lua
Fri Jul 2 08:58:50 2010
@@ -40,9 +40,6 @@
local localPlayer = require("jive.slim.LocalPlayer")
local slimServer = require("jive.slim.SlimServer")
-local DNS = require("jive.net.DNS")
-local Networking = require("jive.net.Networking")
-
local debug = require("jive.utils.debug")
local locale = require("jive.utils.locale")
local string = require("jive.utils.string")
@@ -53,8 +50,6 @@
local jiveMain = jiveMain
local jnt = jnt
-local welcomeTitleStyle = 'setuptitle'
-
--This can be enabled for situations like MP where a fw upgrade is absolutely
required to complete setup
local UPGRADE_FROM_SCS_ENABLED = false
@@ -67,11 +62,6 @@
jnt.inSetupHack = true
step1(self)
-end
-
-
-function startRegister(self)
- step7(self)
end
@@ -80,6 +70,7 @@
-- don't allow this event to continue
return EVENT_CONSUME
end
+
function _disableNormalEscapeMechanisms(self)
@@ -150,7 +141,7 @@
function step1(self)
-- add 'RETURN_TO_SETUP' at top
- log:debug('step1')
+ log:info('step1')
self:_addReturnToSetupToHomeMenu()
self:_disableNormalEscapeMechanisms()
@@ -162,38 +153,27 @@
end
-function step2(self)
+function step2(self, transition)
log:info("step2")
-
- -- welcome!
- self:setupWelcomeShow(
- function()
- self:step3()
- end)
-end
-
-
-function step3(self, transition)
- log:info("step3")
self:_disableNormalEscapeMechanisms()
-- network connection type
appletManager:callService("setupNetworking",
function()
- self:step6(iface)
+ self:step3(iface)
end,
transition)
end
-function step6(self)
- log:info("step6")
+function step3(self)
+ log:info("step3")
-- automatically setup local player as selected player
for mac, player in appletManager:callService("iteratePlayers") do
if player:isLocal() then
appletManager:callService("setCurrentPlayer", player)
- return self:step7()
+ return self:step4()
end
end
@@ -201,274 +181,21 @@
log:error("no local player found?")
return appletManager:callService("setupShowSelectPlayer",
function()
- self:step7()
+ self:step4()
end, 'setuptitle')
end
--- we are connected when we have a pin and upgrade url
-function _squeezenetworkConnected(self, squeezenetwork)
- return squeezenetwork:getPin() ~= nil and
squeezenetwork:getUpgradeUrl() and squeezenetwork:isConnected()
-end
-
-function _anySqueezeCenterWithUpgradeFound(self)
- local anyFound = false
- for _,server in appletManager:callService("iterateSqueezeCenters") do
- if server:isCompatible() and server:getUpgradeUrl() and not
server:isSqueezeNetwork() then
- log:info("At least one compatible SC with an available
upgrade found. First found: ", server)
- anyFound = true
- break
- end
+function step4(self)
+ log:info("step4")
+
+ if UPGRADE_FROM_SCS_ENABLED then
+ appletManager:callService("waitForSqueezenetwork")
end
- return anyFound
-end
-
-function step7(self)
- log:info("step7")
-
-- Once here, network setup is complete
- self:_setupDone(true, false)
-
- -- Bug 12786: Selecting a Network, then backing out
- -- and re-selecting will cause network errors
- self.registerRequest = false
-
- --might be coming into this from a restart, so re-disable
- self:_disableNormalEscapeMechanisms()
- self:_addReturnToSetupToHomeMenu()
-
- -- Find squeezenetwork server
- local squeezenetwork = false
- for name, server in slimServer:iterate() do
- if server:isSqueezeNetwork() then
- squeezenetwork = server
- end
- end
-
- if not squeezenetwork then
- log:error("no SqueezeNetwork instance")
- self:_setupComplete(true)
- return
- end
-
- local settings = self:getSettings()
- if settings.registerDone then
- log:error("SqueezeNetwork registration complete")
-
- local player = appletManager:callService("getCurrentPlayer")
- log:info("connecting ", player, " to ", squeezenetwork)
- player:connectToServer(squeezenetwork)
-
- self:_setupComplete(true)
- return
- end
-
- if UPGRADE_FROM_SCS_ENABLED then
- _squeezenetworkWait(self, squeezenetwork)
- else
- self:_registerRequest(squeezenetwork)
- end
-end
-
-
-function _squeezenetworkWait(self, squeezenetwork)
- log:info("Looking for upgrade, waiting to connect to SqueezeNetwork and
find any compatible SCs")
-
- -- Waiting popup
- local popup = Popup("waiting_popup")
-
- local icon = Icon("icon_connecting")
- popup:addWidget(icon)
- popup:addWidget(Label("text", self:string("CONNECTING_TO_SN")))
- popup:addWidget(Label("subtext", self:string("MYSQUEEZEBOX_DOT_COM")))
- popup:setAllowScreensaver(false)
- popup:ignoreAllInputExcept()
-
- local timeout = 0
- --Wait until SN is connected before going to step 8. Also if SN isn't
being found, use available SCs. Allow 10 seconds to go by to give all SCs a
chacne to be discovered.
- popup:addTimer(1000, function()
- -- wait until we know if the player is linked
- if _squeezenetworkConnected(self, squeezenetwork) then
- step8(self, squeezenetwork)
- else
- log:info("SN not available, Waited: ", timeout + 1)
- --allow 10 seconds to go by before doing SC check to
allow SCs to be discovered
- if timeout >= 9 and
_anySqueezeCenterWithUpgradeFound(self) then
- step8(self, squeezenetwork)
- else
- log:info("Looking for compatible SCs with an
upgrade, Waited: ", timeout + 1)
- end
- end
-
-
- timeout = timeout + 1
-
- --try for 30 seconds
- if timeout >= 30 then
- log:info("Can't find any SC or connect to
SqueezeNetwork after ", timeout, " seconds")
- _squeezenetworkFailed(self, squeezenetwork)
- end
- end)
-
- self:tieAndShowWindow(popup)
-end
-
-
-function _squeezenetworkFailed(self, squeezenetwork)
- log:info("_squeezenetworkFailed")
- Task("dns", self, function()
- local serverip = squeezenetwork:getIpPort()
-
- log:info("Can't connect to SqueezeNetwork: ", serverip)
-
- local ip, err
- if DNS:isip(serverip) then
- ip = serverip
- else
- ip, err = DNS:toip(serverip)
- end
-
- -- some routers resolve all DNS addresses to the local
- -- network when the internet is down, we catch these here
- if ip then
- local n = string.split("%.", ip)
- n[1] = tonumber(n[1])
- n[2] = tonumber(n[2])
-
- -- local addresses
- if n[1] == 192 and n[2] == 168 then
- ip = nil
- elseif n[1] == 172 and n[2] >= 16 and n[2] <=31 then
- ip = nil
- elseif n[1] == 10 then
- ip = nil
- end
-
- -- test addresses, used by BT homehub on DNS failure
- if n[1] == 192 and n[2] >= 18 and n[2] <= 19 then
- ip = nil
- end
- end
-
-
- -- have we connected while looking up the DNS?
- if _squeezenetworkConnected(self, squeezenetwork) then
- log:info("SN now seen")
- return
- end
-
- if squeezenetwork:isConnected() then
- -- we're connected, but don't have a PIN or Upgrade
state
- log:error("SqueezeNetwork error. pin=",
squeezenetwork:getPin(), " upgradeUrl=", squeezenetwork:getUpgradeUrl())
- _squeezenetworkError(self, squeezenetwork,
"SN_SYSTEM_ERROR")
- elseif ip == nil then
- -- dns failed
- log:info("DNS failed for ", serverip)
- _squeezenetworkError(self, squeezenetwork,
"SN_DNS_FAILED")
- else
- -- connection failed
- _squeezenetworkError(self, squeezenetwork,
"SN_DNS_WORKED")
- end
- end):addTask()
-end
-
-
-function _squeezenetworkError(self, squeezenetwork, message)
- local window = Window("help_list", self:string("CANT_CONNECT"))
- window:setAllowScreensaver(false)
-
- local menu = SimpleMenu("menu")
- menu:addItem({
- text = (self:string("SN_TRY_AGAIN")),
- sound = "WINDOWSHOW",
- callback = function()
- _squeezenetworkWait(self, squeezenetwork)
- window:hide()
- end,
- weight = 1
- })
-
- menu:setHeaderWidget(Textarea("help_text", self:string(message)))
- window:addWidget(menu)
-
- -- back goes back to network selection
- -- note add listener to menu, as it has the focus
- menu:addActionListener("back", self, function()
- Framework:playSound("WINDOWHIDE")
- self:step3(Window.transitionPushRight)
- end)
-
- -- help shows diagnostics
- window:setButtonAction("rbutton", "help")
- window:addActionListener("help", self, function()
- Framework:playSound("WINDOWSHOW")
- appletManager:callService("supportMenu")
- end)
- jiveMain:addHelpMenuItem(menu, self, function()
-
appletManager:callService("supportMenu")
- end)
-
-
- window:addTimer(1000, function()
- -- wait until we know if the player is linked
- if _squeezenetworkConnected(self, squeezenetwork) then
- step8(self, squeezenetwork)
- window:hide()
- end
- end)
-
- self:tieAndShowWindow(window)
-end
-
-
-function step8(self, squeezenetwork)
- log:info("step8")
- if not squeezenetwork:isConnected() then
- log:info("get SC from one of discovered SCs")
- appletManager:callService("firmwareUpgrade", nil)
- return
- end
-
- local url, force = squeezenetwork:getUpgradeUrl()
- local pin = squeezenetwork:getPin()
-
- log:info("squeezenetwork pin=", pin, " url=", url)
-
- if force then
- log:info("firmware upgrade from SN")
- appletManager:callService("firmwareUpgrade", squeezenetwork)
- else
- self:_registerRequest(squeezenetwork)
- end
-end
-
-
-function _registerRequest(self, squeezenetwork)
- if self.registerRequest then
- return
- end
-
- --defer setting self.registerRequest until first register command
completes to avoid race condition where serverLinked occurs early in a
- -- "register or continue" situation since the server in that case is
already linked
- local successCallback = function(requireAlreadyLinked)
- self.registerRequest = true
- self.registerRequestRequireAlreadyLinked = requireAlreadyLinked
- end
-
- log:info("registration on SN")
- appletManager:callService("squeezeNetworkRequest", { 'register', 0,
100, 'service:SN' }, true, successCallback )
-
- self.locked = true -- don't free applet
- jnt:subscribe(self)
-end
-
-
-function step9(self)
- log:info("step9")
-
- _setupComplete(self, false)
- _setupDone(self, true, true)
+ self:_setupComplete(true)
+ self:_setupDone(true)
self.locked = true -- free applet
jnt:unsubscribe(self)
@@ -477,126 +204,15 @@
end
-
---finish setup if connected server is SC
-function notify_playerCurrent(self, player)
- if not player then
- return
- end
-
- local server = player:getSlimServer()
-
- if not server then
- return
- end
-
- if server:isSqueezeNetwork() then
- return
- end
-
- log:info("Calling step9. server: ", server)
-
- step9(self)
-end
-
-
-
-function notify_serverLinked(self, server, wasAlreadyLinked)
- log:info("notify_serverLinked: ", server)
-
- if not server:isSqueezeNetwork() then
- return
- end
-
- if not self.registerRequest then
- return
- end
-
- --avoid race condition where we are in the registerRequest but for a
player that is already linked
- if self.registerRequestRequireAlreadyLinked and not wasAlreadyLinked
then
- return
- end
- log:info("server linked: ", server, " pin=", server:getPin(), "
registerRequestRequireAlreadyLinked: ",
self.registerRequestRequireAlreadyLinked, " wasAlreadyLinked: ",
wasAlreadyLinked)
-
- if server:getPin() == false then
- -- for testing connect the player tosqueezenetwork
- local player = appletManager:callService("getCurrentPlayer")
-
- local squeezenetwork = false
- for name, server in slimServer:iterate() do
- if server:isSqueezeNetwork() then
- squeezenetwork = server
- end
- end
-
- log:info("connecting ", player, " to ", squeezenetwork)
- player:connectToServer(squeezenetwork)
-
- self:step9()
- end
-end
-
-
-function _setupDone(self, setupDone, registerDone)
+function _setupDone(self, setupDone)
log:info("network setup complete")
local settings = self:getSettings()
settings.setupDone = setupDone
- settings.registerDone = registerDone
self:storeSettings()
end
-
-function _jumpToDemo(self)
- log:warn('JUMP TO DEMO')
- appletManager:callService("jumpToInStoreDemo")
-end
-
-
-function _addDemoListener(self)
- log:warn('ADD DEMO LISTENER')
- self.window:addActionListener("go_now_playing_or_playlist", self,
_jumpToDemo)
-end
-
-
-function setupWelcomeShow(self, setupNext)
- local window = Window("help_list", self:string("WELCOME"),
welcomeTitleStyle)
- window:setAllowScreensaver(false)
-
- window:setButtonAction("rbutton", nil)
-
-
- local textarea = Textarea("help_text",
self:string("WELCOME_WALKTHROUGH"))
-
- local continueButton = SimpleMenu("menu")
-
- continueButton:addItem({
- text = (self:string("CONTINUE")),
- sound = "WINDOWSHOW",
- callback = setupNext,
- weight = 1
- })
-
- continueButton:setHeaderWidget(textarea)
- window:addWidget(continueButton)
- self.window = window
- self:_enableNormalEscapeMechanisms()
- window:addActionListener("go_home", self, _addDemoListener)
-
-
- self:tieAndShowWindow(window)
- return window
-end
-
-
---[[
-function init(self)
- log:info("subscribe")
- jnt:subscribe(self)
-end
---]]
-
function free(self)
appletManager:callService("setDateTimeDefaultFormats")
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeMeta.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeMeta.lua?rev=8926&r1=8925&r2=8926&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeMeta.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SetupWelcome/SetupWelcomeMeta.lua
Fri Jul 2 08:58:50 2010
@@ -45,14 +45,12 @@
function defaultSettings(meta)
return {
[ "setupDone" ] = false,
- [ "registerDone" ] = false,
}
end
function registerApplet(meta)
meta:registerService("startSetup")
- meta:registerService("startRegister")
end
@@ -62,64 +60,7 @@
if not settings.setupDone then
appletManager:callService("startSetup")
end
-
- if not settings.registerDone then
- hackMeta = meta
- jnt:subscribe(meta)
- end
end
-
-
-function notify_serverNew(meta, server)
- local settings = meta:getSettings()
-
- if settings.setupDone and server:isSqueezeNetwork() then
- appletManager:callService("startRegister")
-
- jnt:unsubscribe(meta)
- hackMeta = nil
- end
-end
-
-
---[[
-function notify_serverLinked(meta, server)
- if not server:isSqueezeNetwork() then
- return
- end
-
- log:info("server linked: ", server, " pin=", server:getPin())
-
- local settings = meta:getSettings()
- if server:getPin() == false then
- settings.registerDone = true
- meta:storeSettings()
- end
-
- if settings.registerDone then
-
- -- for testing connect the player tosqueezenetwork
- local player = appletManager:callService("getCurrentPlayer")
- log:info(player, " is conencted to ", player and
player:getSlimServer())
-
- if player and not player:getSlimServer() then
- local squeezenetwork = false
- for name, server in slimServer:iterate() do
- if server:isSqueezeNetwork() then
- squeezenetwork = server
- end
- end
-
- log:info("connecting ", player, " to ", squeezenetwork)
- player:connectToServer(squeezenetwork)
- end
-
- jnt:unsubscribe(meta)
- hackMeta = nil
- end
-end
---]]
-
--[[
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeApplet.lua?rev=8926&r1=8925&r2=8926&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeApplet.lua
Fri Jul 2 08:58:50 2010
@@ -40,7 +40,6 @@
local localPlayer = require("jive.slim.LocalPlayer")
local slimServer = require("jive.slim.SlimServer")
-local DNS = require("jive.net.DNS")
local Networking = require("jive.net.Networking")
local debug = require("jive.utils.debug")
@@ -53,8 +52,6 @@
local jiveMain = jiveMain
local jnt = jnt
-local welcomeTitleStyle = 'setuptitle'
-
--This can be enabled for situations like MP where a fw upgrade is absolutely
required to complete setup
local UPGRADE_FROM_SCS_ENABLED = false
@@ -67,11 +64,6 @@
jnt.inSetupHack = true
step1(self)
-end
-
-
-function startRegister(self)
- step7(self)
end
@@ -164,25 +156,14 @@
end
-function step2(self)
+-- Scan for not yet setup squeezebox
+function step2(self, transition)
log:info("step2")
-
- -- welcome!
- self:setupWelcomeShow(
- function()
- self:step4()
- end)
-end
-
-
--- Scan for not yet setup squeezebox
-function step4(self, transition)
- log:info("step4")
-- Finding networks including not yet setup squeezebox
self.scanWindow = appletManager:callService("setupScan",
function()
- self:step5()
+ self:step3()
-- FIXME is this required:
if self.scanWindow then
self.scanWindow:hide()
@@ -196,8 +177,8 @@
-- Scan for not yet setup squeezebox
-function step5(self)
- log:info("step5")
+function step3(self)
+ log:info("step3")
-- Get scan results
local wlanIface = Networking:wirelessInterface(jnt)
@@ -210,43 +191,43 @@
if string.match(ssid, "logitech%+squeezebox%+%x+") then
return self:setupConnectionShow(
function()
- self:step51()
+ self:step31()
end,
function()
- self:step52()
+ self:step32()
end)
end
end
- return self:step52()
+ return self:step32()
end
-- Setup bridged mode
-function step51(self)
- log:info("step51")
+function step31(self)
+ log:info("step31")
-- Connect using squeezebox in adhoc mode
return appletManager:callService("setupAdhocShow",
function()
- self:step7()
+ self:step4()
end)
end
-- Setup Controller to AP
-function step52(self)
- log:info("step52")
+function step32(self)
+ log:info("step32")
-- Connect using regular network, i.e. connect to AP
return appletManager:callService("setupNetworking",
function()
- self:step7()
+ self:step4()
end)
end
-- Offer selection between standard wireless/wired or bridged setup
function setupConnectionShow(self, setupSqueezebox, setupNetwork)
- local window = Window("window", self:string("WIRELESS_CONNECTION"),
welcomeTitleStyle)
+ local window = Window("window", self:string("WIRELESS_CONNECTION"))
window:setAllowScreensaver(false)
local menu = SimpleMenu("menu")
@@ -288,391 +269,34 @@
return anyFound
end
-function step7(self)
- log:info("step7")
-
- -- Once here, network setup is complete
- self:_setupDone(true, false)
-
- -- Bug 12786: Selecting a Network, then backing out
- -- and re-selecting will cause network errors
- self.registerRequest = false
-
- --might be coming into this from a restart, so re-disable
- self:_disableNormalEscapeMechanisms()
- self:_addReturnToSetupToHomeMenu()
-
- -- Find squeezenetwork server
- local squeezenetwork = false
- for name, server in slimServer:iterate() do
- if server:isSqueezeNetwork() then
- squeezenetwork = server
- end
- end
-
- if not squeezenetwork then
- log:error("no SqueezeNetwork instance")
- step8point5(self, squeezenetwork)
- return
- end
-
- local settings = self:getSettings()
- if settings.registerDone then
- log:error("SqueezeNetwork registration complete")
- step8point5(self, squeezenetwork)
- return
- end
+function step4(self)
+ log:info("step4")
if UPGRADE_FROM_SCS_ENABLED then
- _squeezenetworkWait(self, squeezenetwork)
- else
- self:_registerRequest(squeezenetwork)
- end
-end
-
-
-function _squeezenetworkWait(self, squeezenetwork)
- log:info("Looking for upgrade, waiting to connect to SqueezeNetwork and
find any compatible SCs")
-
- -- Waiting popup
- local popup = Popup("waiting_popup")
-
- local icon = Icon("icon_connecting")
- popup:addWidget(icon)
- popup:addWidget(Label("text", self:string("CONNECTING_TO_SN")))
- popup:addWidget(Label("subtext", self:string("MYSQUEEZEBOX_DOT_COM")))
- popup:setAllowScreensaver(false)
- popup:ignoreAllInputExcept()
-
- local timeout = 0
- --Wait until SN is connected before going to step 8. Also if SN isn't
being found, use available SCs. Allow 10 seconds to go by to give all SCs a
chacne to be discovered.
- popup:addTimer(1000, function()
- -- wait until we know if the player is linked
- if _squeezenetworkConnected(self, squeezenetwork) then
- step8(self, squeezenetwork)
- else
- log:info("SN not available, Waited: ", timeout + 1)
- --allow 10 seconds to go by before doing SC check to
allow SCs to be discovered
- if timeout >= 9 and
_anySqueezeCenterWithUpgradeFound(self) then
- step8(self, squeezenetwork)
- else
- log:info("Looking for compatible SCs with an
upgrade, Waited: ", timeout + 1)
- end
- end
-
-
- timeout = timeout + 1
-
- --try for 30 seconds
- if timeout >= 30 then
- log:info("Can't find any SC or connect to
SqueezeNetwork after ", timeout, " seconds")
- _squeezenetworkFailed(self, squeezenetwork)
- end
- end)
-
- self:tieAndShowWindow(popup)
-end
-
-
-function _squeezenetworkFailed(self, squeezenetwork)
- log:info("_squeezenetworkFailed")
- Task("dns", self, function()
- local serverip = squeezenetwork:getIpPort()
-
- log:info("Can't connect to SqueezeNetwork: ", serverip)
-
- local ip, err
- if DNS:isip(serverip) then
- ip = serverip
- else
- ip, err = DNS:toip(serverip)
- end
-
- -- some routers resolve all DNS addresses to the local
- -- network when the internet is down, we catch these here
- if ip then
- local n = string.split("%.", ip)
- n[1] = tonumber(n[1])
- n[2] = tonumber(n[2])
-
- -- local addresses
- if n[1] == 192 and n[2] == 168 then
- ip = nil
- elseif n[1] == 172 and n[2] >= 16 and n[2] <=31 then
- ip = nil
- elseif n[1] == 10 then
- ip = nil
- end
-
- -- test addresses, used by BT homehub on DNS failure
- if n[1] == 192 and n[2] >= 18 and n[2] <= 19 then
- ip = nil
- end
- end
-
-
- -- have we connected while looking up the DNS?
- if _squeezenetworkConnected(self, squeezenetwork) then
- log:info("SN now seen")
- return
- end
-
- if squeezenetwork:isConnected() then
- -- we're connected, but don't have a PIN or Upgrade
state
- log:error("SqueezeNetwork error. pin=",
squeezenetwork:getPin(), " upgradeUrl=", squeezenetwork:getUpgradeUrl())
- _squeezenetworkError(self, squeezenetwork,
"SN_SYSTEM_ERROR")
- elseif ip == nil then
- -- dns failed
- log:info("DNS failed for ", serverip)
- _squeezenetworkError(self, squeezenetwork,
"SN_DNS_FAILED")
- else
- -- connection failed
- _squeezenetworkError(self, squeezenetwork,
"SN_DNS_WORKED")
- end
- end):addTask()
-end
-
-
-function _squeezenetworkError(self, squeezenetwork, message)
- log:info("_squeezenetworkError")
-
- local window = Window("help_list", self:string("CANT_CONNECT"))
- window:setAllowScreensaver(false)
-
- local menu = SimpleMenu("menu")
- menu:addItem({
- text = (self:string("SN_TRY_AGAIN")),
- sound = "WINDOWSHOW",
- callback = function()
- _squeezenetworkWait(self, squeezenetwork)
- window:hide()
- end,
- weight = 1
- })
-
- window:addWidget(menu)
- menu:setHeaderWidget(Textarea("help_text", self:string(message)))
-
- -- back goes back to network selection
- -- note add listener to menu, as it has the focus
- menu:addActionListener("back", self, function()
- Framework:playSound("WINDOWHIDE")
- self:step4(Window.transitionPushRight)
- end)
-
- -- help shows diagnostics
- window:setButtonAction("rbutton", "help")
- window:addActionListener("help", self, function()
- Framework:playSound("WINDOWSHOW")
- appletManager:callService("supportMenu")
- end)
- jiveMain:addHelpMenuItem(menu, self, function()
-
appletManager:callService("supportMenu")
- end)
-
-
- window:addTimer(1000, function()
- -- wait until we know if the player is linked
- if _squeezenetworkConnected(self, squeezenetwork) then
- step8(self, squeezenetwork)
- window:hide()
- end
- end)
-
- self:tieAndShowWindow(window)
-end
-
-
-function step8(self, squeezenetwork)
- log:info("step8")
- if not squeezenetwork:isConnected() then
- log:info("get SC from one of discovered SCs")
- appletManager:callService("firmwareUpgrade", nil)
- return
- end
-
- local url, force = squeezenetwork:getUpgradeUrl()
- local pin = squeezenetwork:getPin()
-
- log:info("squeezenetwork pin=", pin, " url=", url)
-
- if force then
- log:info("firmware upgrade from SN")
- appletManager:callService("firmwareUpgrade", squeezenetwork)
- else
- self:_registerRequest(squeezenetwork)
- end
-end
-
-
--- step 8.5 makes sure we have a current player, this will already be the
--- case for a local player or a bridged setup (on jive).
-
-function step8point5(self, squeezenetwork)
- log:info("step8point5")
- assert(squeezenetwork)
-
- local player = appletManager:callService("getCurrentPlayer")
- if player then
- return self:step8point7(squeezenetwork)
- end
-
- -- find player
- return appletManager:callService("setupShowSelectPlayer", function()
- self:step8point7(squeezenetwork)
- end, 'setuptitle')
-end
-
-
--- step 8.7 make sure the player is connected to SN
-
-function step8point7(self, squeezenetwork)
- log:info("step8point7")
- assert(squeezenetwork)
-
- -- if player is still not connected, now connect to SN
- local player = appletManager:callService("getCurrentPlayer")
- assert(player)
-
- if not player:getSlimServer() then
- log:info("connect ", player, " to ", squeezenetwork)
- player:connectToServer(squeezenetwork)
- end
-
- self:step9()
-end
-
-
-function _registerRequest(self, squeezenetwork)
- if self.registerRequest then
- return
- end
-
- --defer setting self.registerRequest until first register command
completes to avoid race condition where serverLinked occurs early in a
- -- "register or continue" situation since the server in that case is
already linked
- local successCallback = function(requireAlreadyLinked)
- self.registerRequest = true
- self.registerRequestRequireAlreadyLinked = requireAlreadyLinked
- end
-
- log:info("registration on SN")
- appletManager:callService("squeezeNetworkRequest", { 'register', 0,
100, 'service:SN' }, true, successCallback )
-
- self.locked = true -- don't free applet
- jnt:subscribe(self)
-end
-
-
-function step9(self)
- log:info("step9")
-
- _setupComplete(self, false)
- _setupDone(self, true, true)
+ appletManager:callService("waitForSqueezenetwork")
+ end
+
+ self:_setupComplete(false)
+ self:_setupDone(true)
self.locked = true -- free applet
jnt:unsubscribe(self)
jiveMain:goHome()
-
-end
-
-
---finish setup if connected server is SC
-function notify_playerCurrent(self, player)
- if not player then
- return
- end
-
- local server = player:getSlimServer()
-
- if not server then
- return
- end
-
- if server:isSqueezeNetwork() then
- return
- end
-
- log:info("Calling step9. server: ", server)
-
- step9(self)
-end
-
-
-
-function notify_serverLinked(self, server, wasAlreadyLinked)
- log:info("notify_serverLinked: ", server)
-
- if not server:isSqueezeNetwork() then
- return
- end
-
- if not self.registerRequest then
- return
- end
-
- --avoid race condition where we are in the registerRequest but for a
player that is already linked
- if self.registerRequestRequireAlreadyLinked and not wasAlreadyLinked
then
- return
- end
- log:info("server linked: ", server, " pin=", server:getPin(), "
registerRequestRequireAlreadyLinked: ",
self.registerRequestRequireAlreadyLinked, " wasAlreadyLinked: ",
wasAlreadyLinked, " server:isSpRegisteredWithSn(): ",
server:isSpRegisteredWithSn())
-
- if server:isSpRegisteredWithSn() then
- step8point5(self, server)
- end
-end
-
-
-function _setupDone(self, setupDone, registerDone)
+end
+
+
+function _setupDone(self, setupDone)
log:info("network setup complete")
local settings = self:getSettings()
settings.setupDone = setupDone
- settings.registerDone = registerDone
self:storeSettings()
-- FIXME: workaround until filesystem write issue resolved
os.execute("sync")
end
-
-
-function _jumpToDemo(self)
- appletManager:callService("jumpToInStoreDemo")
-end
-
-function setupWelcomeShow(self, setupNext)
- local window = Window("help_list", self:string("WELCOME"),
welcomeTitleStyle)
- window:setAllowScreensaver(false)
-
- window:setButtonAction("rbutton", nil)
-
- window:addActionListener('start_demo', self, _jumpToDemo)
- local textarea = Textarea("help_text",
self:string("WELCOME_WALKTHROUGH"))
-
- local continueButton = SimpleMenu("menu")
-
- continueButton:addItem({
- text = (self:string("CONTINUE")),
- sound = "WINDOWSHOW",
- callback = setupNext,
- weight = 1
- })
-
- continueButton:setHeaderWidget(textarea)
- window:addWidget(continueButton)
-
- self:tieAndShowWindow(window)
- return window
-end
-
-
---[[
-function init(self)
- log:info("subscribe")
- jnt:subscribe(self)
-end
---]]
function free(self)
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeMeta.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeMeta.lua?rev=8926&r1=8925&r2=8926&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeMeta.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SetupWelcome/SetupWelcomeMeta.lua
Fri Jul 2 08:58:50 2010
@@ -45,14 +45,12 @@
function defaultSettings(meta)
return {
[ "setupDone" ] = false,
- [ "registerDone" ] = false,
}
end
function registerApplet(meta)
meta:registerService("startSetup")
- meta:registerService("startRegister")
end
@@ -63,63 +61,7 @@
appletManager:callService("startSetup")
end
- if not settings.registerDone then
- hackMeta = meta
- jnt:subscribe(meta)
- end
end
-
-
-function notify_serverNew(meta, server)
- local settings = meta:getSettings()
-
- if settings.setupDone and server:isSqueezeNetwork() then
- appletManager:callService("startRegister")
-
- jnt:unsubscribe(meta)
- hackMeta = nil
- end
-end
-
-
---[[
-function notify_serverLinked(meta, server)
- if not server:isSqueezeNetwork() then
- return
- end
-
- log:info("server linked: ", server, " pin=", server:getPin())
-
- local settings = meta:getSettings()
- if server:getPin() == false then
- settings.registerDone = true
- meta:storeSettings()
- end
-
- if settings.registerDone then
-
- -- for testing connect the player tosqueezenetwork
- local player = appletManager:callService("getCurrentPlayer")
- log:info(player, " is conencted to ", player and
player:getSlimServer())
-
- if player and not player:getSlimServer() then
- local squeezenetwork = false
- for name, server in slimServer:iterate() do
- if server:isSqueezeNetwork() then
- squeezenetwork = server
- end
- end
-
- log:info("connecting ", player, " to ", squeezenetwork)
- player:connectToServer(squeezenetwork)
- end
-
- jnt:unsubscribe(meta)
- hackMeta = nil
- end
-end
---]]
-
--[[
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins