Author: bklaas
Date: Wed Jul 28 12:03:31 2010
New Revision: 9001
URL: http://svn.slimdevices.com/jive?rev=9001&view=rev
Log:
r40...@daddymac-520 (orig r8993): bklaas | 2010-07-27 09:03:22 -0500
Fixed Bug: 16402
Description: stop fallback alarm timeout timer when fallback alarm is silenced
e.g. by a snooze action
r40...@daddymac-520 (orig r8997): bklaas | 2010-07-27 16:59:32 -0500
Bug: n/a
Description: incremental changes to CustomizeHomeMenu, incorporating some
suggestions from the beta community
While fully functional, *the UI is still a work in progress*
r40...@daddymac-520 (orig r8998): fmueller | 2010-07-28 09:27:03 -0500
Bug: 16408
Description:
- Network health check: Added port (3483, 9000) test.
- Clean up string identifiers.
r40...@daddymac-520 (orig r9000): bklaas | 2010-07-28 14:03:13 -0500
r40...@daddymac-520 (orig r8994): bklaas | 2010-07-27 09:04:29 -0500
Bug: 16402
Description: back port previous 7.6 alarm checkin to 7.5/trunk
r40...@daddymac-520 (orig r8996): bklaas | 2010-07-27 13:09:16 -0500
Fixed Bug: 16402
Description: make fallback alarm timer timeout a one-time alarm
Modified:
7.6/branches/new-setup/ (props changed)
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
Propchange: 7.6/branches/new-setup/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Wed Jul 28 12:03:31 2010
@@ -13,8 +13,8 @@
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.4/private-branches/fab4-skin:4552
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.4/private-branches/new-alsa:6567
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.4/trunk:8423
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.5/trunk:8982
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.6/trunk:8990
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.5/trunk:8996
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.6/trunk:9000
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/7.0:2013
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/SN:1083
bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/branches/scrolling:1378
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua?rev=9001&r1=9000&r2=9001&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/AlarmSnooze/AlarmSnoozeApplet.lua
Wed Jul 28 12:03:31 2010
@@ -88,6 +88,9 @@
log:warn('**** self.localPlayer.alarmState: ',
self.localPlayer:getAlarmState())
log:warn('**** RTC fallback running?: ',
self.RTCAlarmTimer:isRunning())
log:warn('**** self.server: ',
self.server)
+ if self.fallbackAlarmTimeout and
self.fallbackAlarmTimeout:isRunning() then
+ log:warn('**** Fallback timeout running?: ',
self.fallbackAlarmTimeout:isRunning())
+ end
if self.server then
log:warn('**** self.server.mac:
', self.server.mac)
end
@@ -456,11 +459,15 @@
log:warn('rtc alarm has timed
out')
self:_alarmOff()
end
- end
+ end,
+ true
)
- self.fallbackAlarmTimeout:start()
- end
-
+ if self.fallbackAlarmTimeout:isRunning() then
+ self.fallbackAlarmTimeout:restart()
+ else
+ self.fallbackAlarmTimeout:start()
+ end
+ end
end
@@ -660,6 +667,10 @@
if self.previousVolume then
log:warn('setting player back to self.previousVolume: ',
self.previousVolume)
self.localPlayer:volumeLocal(self.previousVolume)
+ end
+ if self.fallbackAlarmTimeout and self.fallbackAlarmTimeout:isRunning()
then
+ log:warn('stopping fallback alarm timeout timer')
+ self.fallbackAlarmTimeout:stop()
end
end
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua?rev=9001&r1=9000&r2=9001&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
Wed Jul 28 12:03:31 2010
@@ -88,13 +88,6 @@
somethingHidden
= true
end
end
- if not somethingHidden then
- -- remove restore menu
items item
- local restoreHomeItems
= jiveMain:getNodeItemById('appletCustomizeHomeRestoreHiddenItems', 'home')
-
jiveMain:removeItemFromNode(restoreHomeItems, 'home')
-
self:getSettings()['appletCustomizeHomeRestoreHiddenItems'] = nil
-
self:_storeSettings('home')
- end
end, 500)
return EVENT_CONSUME
end,
@@ -126,22 +119,48 @@
log:info("menu")
local menu = SimpleMenu("menu")
+ -- add an entry for help
+ menu:addItem(
+ {
+ text = self:string('GLOBAL_HELP'),
+ callback = function()
+ self:helpWindow()
+ end
+ }
+ )
-- add an entry for returning everything to defaults
menu:addItem(
{
text = self:string('CUSTOMIZE_RESTORE_DEFAULTS'),
- weights = { 2000 },
callback = function()
self:restoreDefaultsMenu()
return EVENT_CONSUME
end
}
)
- local window = Window("text_list", self:string("CUSTOMIZE_HOME"),
'settingstitle')
- local help_text = Textarea('help_text',
self:string("CUSTOMIZE_HOME_HELP"))
- menu:setHeaderWidget(help_text)
+ -- add an entry for restoring hidden items
+ menu:addItem(
+ {
+ text = self:string("RESTORE_HIDDEN_ITEMS"),
+ callback = function()
+ self:restoreHiddenItemMenu()
+ return EVENT_CONSUME
+ end
+ }
+ )
+ local helpText = Textarea( 'help_text',
self:string('CUSTOMIZE_HOME_HELP') )
+ menu:setHeaderWidget(helpText)
+ local window = Window("text_list", self:string("CUSTOMIZE_HOME"))
window:addWidget(menu)
window:show()
+end
+
+function helpWindow(self)
+ local help_text = Textarea('help_text',
self:string("CUSTOMIZE_HOME_MORE_HELP"))
+ local window = Window("information", self:string("CUSTOMIZE_HOME"))
+ window:addWidget(help_text)
+ window:show()
+
end
function homeMenuItemContextMenu(self, item)
@@ -174,15 +193,10 @@
callback = function()
if item.node == 'home' then
- -- add restore home menu items
at the bottom of the home menu
- local restoreHomeItems =
jiveMain:getNodeItemById('appletCustomizeHomeRestoreHiddenItems',
'advancedSettings')
- local homeItem =
jiveMain:addItemToNode(restoreHomeItems, 'home')
self:_timedExec(
function()
-
self:getSettings()[homeItem.id] = 'home'
jiveMain:setNode(item, 'hidden')
self:getSettings()[item.id] = 'hidden'
-
jiveMain:itemToBottom(homeItem, 'home')
end
)
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua?rev=9001&r1=9000&r2=9001&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuMeta.lua
Wed Jul 28 12:03:31 2010
@@ -38,7 +38,6 @@
end
jiveMain:addItem(self:menuItem('appletCustomizeHome', 'settings',
"CUSTOMIZE_HOME", function(applet, ...) applet:menu(...) end, 55, nil,
"hm_appletCustomizeHome"))
- jiveMain:addItem(self:menuItem('appletCustomizeHomeRestoreHiddenItems',
'advancedSettings', "RESTORE_HIDDEN_ITEMS", function(applet, ...)
applet:restoreHiddenItemMenu(...) end, _, nil, _))
end
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt?rev=9001&r1=9000&r2=9001&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/strings.txt
Wed Jul 28 12:03:31 2010
@@ -93,7 +93,7 @@
SV Välj Fortsätt om du vill ta bort alla anpassade
inställningar för menyordning
RESTORE_HIDDEN_ITEMS
- EN Restore Home Menu Items
+ EN Restore Hidden Menu items
REMOVE_FROM_HOME
EN Hide from Home Menu
@@ -105,9 +105,12 @@
EN Select an item to restore to the Home Menu. The following items
have been hidden from view:
CUSTOMIZE_HOME_HELP
- EN By pressing the + button on a selected Settings menu item and
choosing "Add to Home Menu", the item can be added to the Home Menu. Items
already in the Home Menu can be hidden from view via the same method.
+ EN Select help for more information
-CUSTOMIZE_HOME_HELP_FAB4
+CUSTOMIZE_HOME_MORE_HELP
+ EN The home menu of your Squeezebox as well as several submenus
can be customized, both in what items appear on the menu as well as what order
the items take. Pressing the + button on a selected menu item raises a context
menu that presents you with several options for customization of that item.
+
+CUSTOMIZE_HOME_MORE_HELP_FAB4
EN Touch-hold on a selected Settings Menu item and choose "Add to
Home Menu" to add the item to the Home Menu. Items already in the Home Menu can
be hidden from view via the same method.
NONE
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua?rev=9001&r1=9000&r2=9001&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/jive/net/Networking.lua
Wed Jul 28 12:03:31 2010
@@ -77,6 +77,7 @@
-- Needed for network health check function
local DNS = require("jive.net.DNS")
local jnt = jnt
+local SocketTcp = require("jive.net.SocketTcp")
module("jive.net.Networking")
@@ -1949,8 +1950,11 @@
- Check for valid ip address
- Check for gateway ip address
- Check for DNS ip address
-- Resolve IP for server_name (normally SN)
-- Ping server_name (normally SN)
+The following checks are only done if full_check is true
+- Check if our ip address is already used by another device
+- Resolve ip address for server (SC or SN)
+- Ping server (SC or SN)
+- Try to connect to port 3483 and 9000
While the checks are running status messages are returned
via callback function. The callback provides three params:
@@ -1960,84 +1964,91 @@
self - network object
callback - callback function
-full_check - includes DNS resolution and ping
-server_name - server to ping
-
-=cut
---]]
-
-function checkNetworkHealth(self, callback, full_check, server_name)
+full_check - includes ip check, DNS resolution, ping and ports test
+server - server to ping and test ports
+
+=cut
+--]]
+
+function checkNetworkHealth(self, callback, full_check, server)
assert(type(callback) == 'function', "No callback function provided")
Task("checknetworkhealth", self, function()
log:info("checkNetworkHealth task started")
- callback(true, -1, "NOT_CONNECTED")
-
+ callback(true, -1, "NET_CONNECTION_NOK")
+
+ -- ------------------------------------------------------------
-- Check for valid network interface
if self == nil then
- callback(false, -1, "NET_ERROR_NO_NETWORK_INTERFACE")
+ callback(false, -1, "NET_INTERFACE_NOK")
return
end
+ -- ------------------------------------------------------------
-- Getting network status (link / no link)
- callback(true, 0, "NET_INFO_GETTING_NETWORK_STATUS")
+ callback(true, 0, "NET_LINK")
local status = self:t_wpaStatus()
if self:isWireless() then
if status.wpa_state ~= "COMPLETED" then
- callback(false, -1,
"NET_ERROR_WIRELESS_NO_LINK")
+ callback(false, -1, "NET_LINK_WIRELESS_NOK")
return
end
- callback(true, 0, "NET_INFO_WIRELESS_LINK_OK")
+ callback(true, 0, "NET_LINK_WIRELESS_OK")
else
if status.link ~= true then
- callback(false, -1,
"NET_ERROR_ETHERNET_NO_LINK")
+ callback(false, -1, "NET_LINK_ETHERNET_NOK")
return
end
- callback(true, 0, "NET_INFO_ETHERNET_LINK_OK")
+ callback(true, 0, "NET_LINK_ETHERNET_OK")
end
-- We have a network link (wired or wireless)
+ -- ------------------------------------------------------------
-- Check for valid ip address
if status.ip_address == nil or string.match(status.ip_address,
"^169.254.") then
- callback(false, -1, "NET_ERROR_NO_VALID_IP_ADDRESS")
+ callback(false, -1, "NET_IP_NOK")
return
end
-- We have a valid ip address
- callback(true, 0, "NET_INFO_IP_ADDRESS",
tostring(status.ip_address))
-
+ callback(true, 0, "NET_IP_OK", tostring(status.ip_address))
+
+ -- ------------------------------------------------------------
-- Check for valid gateway
if status.ip_gateway == nil then
- callback(false, -1, "NET_ERROR_NO_VALID_GATEWAY")
+ callback(false, -1, "NET_GATEWAY_NOK")
return
end
-- We have a valid gateway
- callback(true, 0, "NET_INFO_GATEWAY",
tostring(status.ip_gateway))
-
- -- Check for valid dns
+ callback(true, 0, "NET_GATEWAY_OK", tostring(status.ip_gateway))
+
+ -- ------------------------------------------------------------
+ -- Check for valid dns sever ip
if status.ip_dns == nil then
- callback(false, -1, "NET_ERROR_NO_VALID_DNS")
+ callback(false, -1, "NET_DNS_NOK")
return
end
- -- We have a valid dns
- callback(true, 0, "NET_INFO_DNS", tostring(status.ip_dns))
-
+ -- We have a valid dns server ip
+ callback(true, 0, "NET_DNS_OK", tostring(status.ip_dns))
+
+ -- ------------------------------------------------------------
-- Stop here if not full check is needed
if not full_check then
- callback(false, 0, "NET_INFO_DNS",
tostring(status.ip_dns))
+ callback(false, 0, "NET_DNS_OK",
tostring(status.ip_dns))
log:info("checkNetworkHealth task done (part)")
return
end
+ -- ------------------------------------------------------------
-- Arping our own ip address
- callback(true, 0, "NET_INFO_ARPING",
tostring(status.ip_address))
+ callback(true, 0, "NET_ARPING", tostring(status.ip_address))
-- Arping
local arpingOK = false
@@ -2049,9 +2060,9 @@
end
else
if arpingOK then
- callback(true, 0, "NET_INFO_ARPING_OK")
+ callback(true, 0, "NET_ARPING_OK")
else
- callback(false, -1,
"NET_ERROR_ARPING_NOT_OK", tostring(status.ip_address))
+ callback(false, -1, "NET_ARPING_NOK",
tostring(status.ip_address))
end
end
end)
@@ -2065,28 +2076,39 @@
return
end
- -- Get ip of SN
+ -- ------------------------------------------------------------
+ -- Check for server
+ if not server then
+ callback(false, -1, "NET_SERVER_NOK")
+ return
+ end
+
+ -- ------------------------------------------------------------
+ -- Get ip of server (SC or SN)
+ local server_uri, server_port = server:getIpPort()
+ local server_name = server:getName()
+
local server_ip, err
- if DNS:isip(server_name) then
- server_ip = server_name
+ if DNS:isip(server_uri) then
+ server_ip = server_uri
else
- callback(true, 0, "NET_INFO_RESOLVING_IP_ADDRESS_FOR",
server_name)
- server_ip, err = DNS:toip(server_name)
+ callback(true, 0, "NET_RESOLVE", server_name)
+ server_ip, err = DNS:toip(server_uri)
end
-- Check for valid SN ip address
if server_ip == nil then
- callback(false, -1,
"NET_ERROR_DNS_RESOLUTON_FAILED_FOR", server_name)
+ callback(false, -1, "NET_RESOLVE_NOK", server_name)
return
end
-- We have a valid ip address for SN
- callback(true, 0, tostring(server_name .. ": " .. server_ip))
-
- -- Ping target
- callback(true, 0, "NET_INFO_PINGING", server_name)
-
- -- Ping
+ callback(true, 0, "NET_RESOLVE_OK", server_name .. ": " ..
server_ip)
+
+ -- ------------------------------------------------------------
+ -- Ping server (SC or SN)
+ callback(true, 0, "NET_PING", server_name)
+
local pingOK = false
local pingProc = Process(jnt, "ping -c 1 " .. server_ip)
pingProc:read(function(chunk)
@@ -2096,9 +2118,9 @@
end
else
if pingOK then
- callback(false, 0, "NET_INFO_PING_OK",
server_name)
+ callback(true, 0, "NET_PING_OK",
server_name .. " (" .. server_ip .. ")")
else
- callback(false, -1,
"NET_ERROR_PING_NOT_OK", server_name)
+ callback(false, -1, "NET_PING_NOK",
server_name .. " (" .. server_ip .. ")")
end
end
end)
@@ -2106,6 +2128,70 @@
-- Wait until ping has finished - takes a while especially if
it fails
while pingProc:status() ~= "dead" do
Task:yield()
+ end
+
+ if not pingOK then
+ return
+ end
+
+ -- ------------------------------------------------------------
+ -- Port 3483 test
+ callback(true, 0, "NET_PORT", server_name .. " (3483)")
+
+ local portOk_3483 = false
+ local tcp_3483 = SocketTcp(jnt, server_ip, 3483, "porttest")
+ tcp_3483:t_connect()
+ tcp_3483:t_addWrite(function(err)
+ local res, err = tcp_3483.t_sock:send(" ")
+ if not err then
+ portOk_3483 = true
+ end
+
+ if portOk_3483 then
+ callback(true, 0, "NET_PORT_OK", server_name ..
" (3483)")
+ else
+ callback(false, 0, "NET_PORT_NOK", server_name
.. " (3483)")
+ end
+ tcp_3483:close()
+ end)
+
+ -- Wait until port test has finished
+ while tcp_3483.t_sock ~= nil do
+ Task:yield()
+ end
+
+ if not portOk_3483 then
+ return
+ end
+
+ -- ------------------------------------------------------------
+ -- Port 9000 test
+ callback(true, 0, "NET_PORT", server_name .. " (" ..
server_port .. ")")
+
+ local portOk = false
+ local tcp = SocketTcp(jnt, server_ip, server_port, "porttest")
+ tcp:t_connect()
+ tcp:t_addWrite(function(err)
+ local res, err = tcp.t_sock:send(" ")
+ if not err then
+ portOk = true
+ end
+
+ if portOk then
+ callback(false, 0, "NET_PORT_OK", server_name
.. " (" .. server_port .. ")")
+ else
+ callback(false, 0, "NET_PORT_NOK", server_name
.. " (" .. server_port .. ")")
+ end
+ tcp:close()
+ end)
+
+ -- Wait until port test has finished
+ while tcp.t_sock ~= nil do
+ Task:yield()
+ end
+
+ if not portOk then
+ return
end
log:info("checkNetworkHealth task done (full)")
@@ -2121,7 +2207,7 @@
- Bring down the active interface - this also stops DHCP
- Disconnect from wireless network / wired network
- Bring up the active network - this also starts DHCP
-- Conncet to wireless network / wired network
+- Connect to wireless network / wired network
While it's running status messages are returned
via callback function. The callback provides three params:
@@ -2143,15 +2229,15 @@
local active = self:_ifstate()
- callback(true, 0, "NET_INFO_BRINGING_NETWORK_DOWN")
+ callback(true, 0, "NET_BRINGING_NETWORK_DOWN")
self:_ifDown()
- callback(true, 0, "NET_INFO_BRINGING_NETWORK_UP")
+ callback(true, 0, "NET_BRINGING_NETWORK_UP")
self:_ifUp(active)
- callback(false, 0, "NET_INFO_REPAIR_NETWORK_DONE")
+ callback(false, 0, "NET_REPAIR_NETWORK_DONE")
log:info("repairNetwork task done")
end):addTask()
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins