Author: bklaas
Date: Tue Aug 3 12:39:46 2010
New Revision: 9014
URL: http://svn.slimdevices.com/jive?rev=9014&view=rev
Log:
r40...@daddymac-520 (orig r9003): fmueller | 2010-07-30 06:22:18 -0500
Bug: 16408
Description: Diagnostics applet modifications and bug fixes
- Put items belonging together into sub-menus
- Fixed silly values if no battery is installed (bug 15453)
- Integrated Network Health option (Network Health and Network Repair)
r40...@daddymac-520 (orig r9004): fmueller | 2010-07-30 09:04:06 -0500
Bug: 16279
Description: Make sure the change how msp430 is initialized is picked up when
building locally. Else you can end up with a Baby where msp430 is not
initialized / programmed at all.
r40...@daddymac-520 (orig r9005): fmueller | 2010-07-30 09:44:49 -0500
Bug: 16411
Description: Fix missing parameter for help text.
r40...@daddymac-520 (orig r9006): bklaas | 2010-07-30 11:44:40 -0500
Bug: n/a
Description: support for a jive.ui.HomeMenu driven My Apps menu
uses an isApp flag to decide if the home menu item is an app, and builds the
items into the MyApps node accordingly
requires 7.6 r31139 server checkin to have the CM add/remove/reorder functions
work.
r40...@daddymac-520 (orig r9007): bklaas | 2010-08-02 14:53:11 -0500
Bug: 16427
Description: comment out code block that creates new MyApps node and items
until all apps are included in this menu
r40...@daddymac-520 (orig r9013): bklaas | 2010-08-03 14:39:24 -0500
r40...@daddymac-520 (orig r9008): vferey | 2010-08-02 16:51:26 -0500
Increased the revision of the file for the private builds.
r40...@daddymac-520 (orig r9009): vferey | 2010-08-02 17:00:47 -0500
Increased the revision of the file for the private builds.
Modified:
7.6/branches/new-setup/ (props changed)
7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/base-files/squeezeos-base-files_1.0.bb
7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/linux/linux-imx25_svn.bb
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/CustomizeHomeMenu/CustomizeHomeMenuApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAbaseSkin/QVGAbaseSkinApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/strings.txt
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
Propchange: 7.6/branches/new-setup/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Tue Aug 3 12:39:46 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:8996
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.6/trunk:9000
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.5/trunk:9009
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.6/trunk:9013
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/squeezeos/poky/meta-squeezeos/packages/base-files/squeezeos-base-files_1.0.bb
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/base-files/squeezeos-base-files_1.0.bb?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/base-files/squeezeos-base-files_1.0.bb
(original)
+++
7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/base-files/squeezeos-base-files_1.0.bb
Tue Aug 3 12:39:46 2010
@@ -3,7 +3,7 @@
PRIORITY = "required"
LICENSE = "GPL"
-PR = "r119"
+PR = "r120"
SRC_URI = " \
file://asound.conf \
Modified:
7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/linux/linux-imx25_svn.bb
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/linux/linux-imx25_svn.bb?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/linux/linux-imx25_svn.bb
(original)
+++
7.6/branches/new-setup/squeezeos/poky/meta-squeezeos/packages/linux/linux-imx25_svn.bb
Tue Aug 3 12:39:46 2010
@@ -5,7 +5,7 @@
LINUX_ARCH = imx25
LINUX_VERSION = "2.6.26"
PV = "${LINUX_VERSION}+${DISTRO_VERSION}+svnr${SRCREV}"
-PR = "r7"
+PR = "r8"
inherit kernel
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=9014&r1=9013&r2=9014&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
Tue Aug 3 12:39:46 2010
@@ -179,6 +179,26 @@
local settings = self:getSettings()
+ -- theItem is either the special custom home item for an app
+ -- use theItem instead of item for the add/remove to home actions
+ -- use item for the reordering actions
+ local theItem = item
+ local customHomeItem = nil
+ local hiddenCustomHomeItem = nil
+ if item.node ~= 'home' then
+ local id = 'hm_' .. item.id
+ customHomeItem = jiveMain:getNodeItemById(id, 'home')
+ if not customHomeItem then
+ customHomeItem = jiveMain:getNodeItemById(id, 'hidden')
+ if customHomeItem then
+ hiddenCustomHomeItem = true
+ end
+ end
+ end
+ if customHomeItem then
+ theItem = customHomeItem
+ end
+
if item.noCustom and item.node == 'home' then
menu:addItem({
text = self:string('ITEM_CANNOT_BE_HIDDEN'),
@@ -187,24 +207,24 @@
return EVENT_CONSUME
end
})
- elseif item.node == 'home' or settings[item.id] == 'home' then
+ elseif item.node == 'home' or settings[item.id] == 'home' or
(customHomeItem and not hiddenCustomHomeItem) then
menu:addItem({
text = self:string('REMOVE_FROM_HOME'),
callback = function()
- if item.node == 'home' then
+ if theItem.node == 'home' then
self:_timedExec(
function()
-
jiveMain:setNode(item, 'hidden')
-
self:getSettings()[item.id] = 'hidden'
+
jiveMain:setNode(theItem, 'hidden')
+
self:getSettings()[theItem.id] = 'hidden'
end
)
else
self:_timedExec(
function()
-
self:getSettings()[item.id] = nil
-
jiveMain:removeItemFromNode(item, 'home')
+
self:getSettings()[theItem.id] = nil
+
jiveMain:removeItemFromNode(theItem, 'home')
end
)
@@ -218,8 +238,8 @@
menu:addItem({
text = self:string('ADD_TO_HOME'),
callback = function()
- self:getSettings()[item.id] = 'home'
- local homeItem = jiveMain:addItemToNode(item,
'home')
+ self:getSettings()[theItem.id] = 'home'
+ local homeItem =
jiveMain:addItemToNode(theItem, 'home')
jiveMain:itemToBottom(homeItem, 'home')
window:hide()
self:_storeSettings('home')
@@ -228,7 +248,7 @@
function()
appletManager:callService("goHome")
local menu =
jiveMain:getNodeMenu('home')
- local restoredItemIdx =
menu:getIdIndex(item.id)
+ local restoredItemIdx =
menu:getIdIndex(theItem.id)
menu:setSelectedIndex(restoredItemIdx)
end
)
@@ -247,7 +267,6 @@
-- e.g. move to top when already at top
local nodeMenu = jiveMain:getNodeMenu(node)
local itemIdx = nodeMenu:getIdIndex(item.id)
-
if itemIdx > 1 then
menu:addItem({
text = self:string("MOVE_TO_TOP"),
@@ -317,6 +336,7 @@
window:show(Window.transitionFadeIn)
return
end
+
-- many of the UI functions of repositioning items work better
-- if there's a small delay before execution so the user sees them happening
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAbaseSkin/QVGAbaseSkinApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAbaseSkin/QVGAbaseSkinApplet.lua?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAbaseSkin/QVGAbaseSkinApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAbaseSkin/QVGAbaseSkinApplet.lua
Tue Aug 3 12:39:46 2010
@@ -2091,6 +2091,9 @@
s.hm_radios = _uses(s._buttonicon, {
img = _loadImage(self, "IconsResized/icon_internet_radio" ..
skinSuffix),
})
+ s.hm_myApps = _uses(s._buttonicon, {
+ img = _loadImage(self, "IconsResized/icon_my_apps" ..
skinSuffix),
+ })
s.hm_myMusic = _uses(s._buttonicon, {
img = _loadImage(self, "IconsResized/icon_mymusic" ..
skinSuffix),
})
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SetupSqueezebox/SetupSqueezeboxApplet.lua
Tue Aug 3 12:39:46 2010
@@ -1394,7 +1394,7 @@
})
- local helpText = self:string("SQUEEZEBOX_PROBLEM_HELP")
+ local helpText = self:string("SQUEEZEBOX_PROBLEM_HELP",
self.networkSSID)
if self.interface == 'wired' then
helpText = self:string("SQUEEZEBOX_ETHERNET_PROBLEM_HELP")
end
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
Tue Aug 3 12:39:46 2010
@@ -1,6 +1,6 @@
-- stuff we use
-local tostring, tonumber, type, sort = tostring, tonumber, type, sort
+local tostring, tonumber, type, sort, setmetatable = tostring, tonumber, type,
sort, setmetatable
local pairs, ipairs, select, _assert = pairs, ipairs, select, _assert
local oo = require("loop.simple")
@@ -110,6 +110,23 @@
return res
end
+-- defines a new item that inherits from an existing item
+local function _uses(parent, value)
+ local item = {}
+ setmetatable(item, { __index = parent })
+
+ for k,v in pairs(value or {}) do
+ if type(v) == "table" and type(parent[k]) == "table" then
+ -- recursively inherrit from parent item
+ item[k] = _uses(parent[k], v)
+ else
+ item[k] = v
+ end
+ end
+
+ return item
+end
+
function init(self)
jnt:subscribe(self)
@@ -317,15 +334,21 @@
end
end
--add item to home menu only if this is for the current server or it doesn't
exist. Only current server responses may replace existing items.
-function _addItem(self, item, isCurrentServer)
+function _addItem(self, item, isCurrentServer, addToHome)
if isCurrentServer or not _playerMenus[item.id] then
_playerMenus[item.id] = item
jiveMain:addItem(item)
+ if addToHome then
+ local customHomeItem = _uses(item, {
+ id = 'hm_' .. item.id,
+ node = 'home',
+ })
+ jiveMain:addItem(customHomeItem)
+ end
else
log:debug("item already present: ", item.id)
end
end
-
--register remote ss only if it doesn't exist. Only current server responses
may replace existing items.
function _registerRemoteScreensaver(self, serverData)
@@ -394,6 +417,16 @@
return appType
end
+
+function _addMyAppsNode(self)
+ jiveMain:addNode( { id = 'myApps', iconStyle = 'hm_myApps', node =
'home', text = self:string('MENUS_MY_APPS'), weight = 30 } )
+ -- remove the old style My Apps item, if it exists
+ jiveMain:removeItemById('opmlmyapps')
+ self.myAppsNode = true
+ return
+end
+
+
-- _menuSink
-- returns a sink with a closure to self
-- cmd is passed in so we know what process function to call
@@ -442,9 +475,11 @@
for k, v in pairs(menuItems) do
+ local addAppToHome = false
local item = {
id = v.id,
node = v.node,
+ isApp = v.isApp,
style = v.style,
text = v.text,
homeMenuText = v.homeMenuText,
@@ -452,7 +487,19 @@
window = v.window,
sound = "WINDOWSHOW",
screensavers = v.screensavers
- }
+ }
+
+ --[[ FIXME: This block is commented out until all apps
show up under this new myapps model (e.g., podcast player)
+ if item.isApp == 1 then
+ if not self.myAppsNode then
+ self:_addMyAppsNode()
+ end
+ if item.node == 'home' then
+ addAppToHome = true
+ end
+ item.node = 'myApps'
+ end
+ --]]
local itemIcon
if v.window then
@@ -529,6 +576,8 @@
if not item.id then
log:info("no id for menu item: ", item.text)
+ elseif item.id == 'opmlmyapps' and self.myAppsNode then
+ --ignore, if self.myAppsNode is set that means
we're delivering My Apps via a node and opml home menu items
elseif item.id == "playerpower" and
System:hasSoftPower() and System:getMachine() ~= 'squeezeplay' then
--ignore, playerpower no longer shown to users
since we use power button, unless this is a device without a power button
elseif item.id == "settingsPIN" then
@@ -584,7 +633,7 @@
item.removeOnServerChange = true
--add the item to the menu
- self:_addItem(item, isCurrentServer)
+ self:_addItem(item, isCurrentServer,
addAppToHome)
else
local actionInternal = function (noLocking)
@@ -705,7 +754,8 @@
end
end
end
- self:_addItem(item, isCurrentServer)
+
+ self:_addItem(item, isCurrentServer,
addAppToHome)
end
end
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/strings.txt
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/strings.txt?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/strings.txt
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/strings.txt
Tue Aug 3 12:39:46 2010
@@ -17,6 +17,21 @@
RU ÐÐ¾Ñ Ð¼ÑзÑка
SV Min musik
+MENUS_MY_APPS
+ CS Moje aplikace
+ DA Mine programmer
+ DE Eigene Anwendungen
+ EN My Apps
+ ES Mis aplicaciones
+ FI Omat sovellukset
+ FR Mes applications
+ IT Applicazioni
+ NL Mijn toepassingen
+ NO Mine tjenester
+ PL Moje aplikacje
+ RU Ðои пÑиложениÑ
+ SV Mina program
+
MENUS_INTERNET_RADIO
CS Internetové rádio
DA Internetradio
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/WQVGAsmallSkin/WQVGAsmallSkinApplet.lua
Tue Aug 3 12:39:46 2010
@@ -2634,6 +2634,9 @@
})
s.hm_radios = _uses(_buttonicon, {
img = _loadImage(self, "IconsResized/icon_internet_radio" ..
skinSuffix),
+ })
+ s.hm_myApps = _uses(_buttonicon, {
+ img = _loadImage(self, "IconsResized/icon_my_apps" ..
skinSuffix),
})
s.hm_myMusic = _uses(_buttonicon, {
img = _loadImage(self, "IconsResized/icon_mymusic" ..
skinSuffix),
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/DiagnosticsApplet.lua
Tue Aug 3 12:39:46 2010
@@ -1,5 +1,8 @@
local ipairs, tostring, tonumber = ipairs, tostring, tonumber
+
+-- NETWORK HEALTH STUFF
+local type, pairs, setmetatable = type, pairs, setmetatable
-- stuff we use
local oo = require("loop.simple")
@@ -7,7 +10,6 @@
local math = require("math")
local string = require("string")
local table = require("jive.utils.table")
-local lfs = require("lfs")
local Applet = require("jive.Applet")
local System = require("jive.System")
@@ -24,8 +26,11 @@
local Textarea = require("jive.ui.Textarea")
local Window = require("jive.ui.Window")
-local debug = require("jive.utils.debug")
-
+-- NETWORK HEALTH STUFF
+local Popup = require("jive.ui.Popup")
+local Icon = require("jive.ui.Icon")
+local Tile = require("jive.ui.Tile")
+local jive = jive
local jnt = jnt
local appletManager = appletManager
@@ -36,19 +41,36 @@
oo.class(_M, Applet)
-local tests = {
+local generalTests = {
"FIRMWARE_VERSION",
"HARDWARE_VERSION",
"MAC_ADDRESS",
+ "CURRENT_PLAYER",
+ "PLAYER_TYPE",
+ "UPTIME",
+ "MEMORY",
+}
+
+local wirelessTests = {
"WLAN_SSID",
"WLAN_ENCRYPTION",
"WLAN_STRENGTH",
-- (for testing): "WLAN_SNR",
+ "IP_ADDRESS",
+ "SUBNET_MASK",
+ "GATEWAY",
+ "DNS_SERVER",
+}
+
+local ethernetTests = {
"ETH_CONNECTION",
"IP_ADDRESS",
"SUBNET_MASK",
"GATEWAY",
"DNS_SERVER",
+}
+
+local serverTests = {
"SN_ADDRESS",
"SN_PING",
"SN_PORT_3483",
@@ -59,21 +81,17 @@
"SC_PING",
"SC_PORT_3483",
"SC_PORT_9000",
- "CURRENT_PLAYER",
- "PLAYER_TYPE",
- "UPTIME",
- "MEMORY",
}
local powerTests = {
"MSP_VERSION",
+ "POWER_MODE",
+ "WALL_VOLTAGE",
+ "CHARGE_STATE",
+ "BATTERY_TEMPERATURE",
"BATTERY_VOLTAGE",
"BATTERY_VMON1",
"BATTERY_VMON2",
- "WALL_VOLTAGE",
- "BATTERY_TEMPERATURE",
- "POWER_MODE",
- "CHARGE_STATE",
}
local powerMode = {
@@ -91,6 +109,7 @@
["24"] = "BATT_CHARGING_PAUSED",
}
+
function setValue(self, key, value, customLabel)
if not value then
value = '-'
@@ -98,18 +117,10 @@
-- if we have customLabelArgs, we want to insert those first to the
string args
if customLabel then
- self.diagMenu:setText(self.labels[key], self:string(key,
tostring(customLabel), value))
+ self.menu:setText(self.labels[key], self:string(key,
tostring(customLabel), value))
else
- self.diagMenu:setText(self.labels[key], self:string(key, value))
- end
-end
-
-
-function setPowerValue(self, key, value)
- if not value then
- value = '-'
- end
- self.powerDiagMenu:setText(self.labels[key], self:string(key, value))
+ self.menu:setText(self.labels[key], self:string(key, value))
+ end
end
@@ -333,6 +344,7 @@
self:setValue("MEMORY", memory)
end
+
function _getSysValue(self, param)
local f = io.open("/sys/bus/i2c/devices/1-0010/" .. param)
@@ -343,6 +355,7 @@
return value
end
+
function _getPowerSysValue(self, param)
local f = io.open("/sys/devices/platform/i2c-adapter:i2c-1/1-0010/" ..
param)
@@ -354,27 +367,61 @@
return value
end
-function dovalues(self, menu)
+
+-- DO VALUES
+
+function doGeneralValues(self, menu)
+ self.menu = menu
+
local machine, revision = System:getMachine();
- -- fixed values
self:setValue("FIRMWARE_VERSION", JIVE_VERSION)
if revision then
self:setValue("HARDWARE_VERSION", tostring(revision))
end
self:setValue("MAC_ADDRESS", System:getMacAddress())
- -- networks
+ self:systemStatus()
+
+ local currentPlayer = appletManager:callService("getCurrentPlayer")
+ if currentPlayer then
+ self:setValue("CURRENT_PLAYER", currentPlayer:getName())
+ if currentPlayer:isLocal() then
+ self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_LOCAL")))
+ else
+ self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_REMOTE")))
+ end
+ else
+ self:setValue("CURRENT_PLAYER",
tostring(self:string("DIAGNOSTICS_NONE")))
+ self:setValue("PLAYER_TYPE", "")
+
+ end
+end
+
+
+function doWirelessValues(self, menu)
+ self.menu = menu
+
local wlanIface = Networking:wirelessInterface(jnt)
+
+ self:wlanStatus(wlanIface)
+end
+
+
+function doEthernetValues(self, menu)
+ self.menu = menu
+
local ethIface = Networking:wiredInterface(jnt)
- self:wlanStatus(wlanIface)
if System:hasWiredNetworking() then
self:ethStatus(ethIface)
end
-
-
- -- servers
+end
+
+
+function doServerValues(self, menu)
+ self.menu = menu
+
local sn = false
for name, server in SlimServer:iterate() do
if server:isSqueezeNetwork() then
@@ -383,7 +430,6 @@
end
local sc = SlimServer:getCurrentServer()
-
self:serverPing(sn, "SN_ADDRESS", "SN_PING", "SN_REG")
self:serverPort(sn, 3483, "SN_PORT_3483")
@@ -403,39 +449,178 @@
local ip, port = sc:getIpPort()
self:serverPort(sc, port, "SC_PORT_9000", port)
end
-
-
- local currentPlayer = appletManager:callService("getCurrentPlayer")
- if currentPlayer then
- self:setValue("CURRENT_PLAYER", currentPlayer:getName())
- if currentPlayer:isLocal() then
- self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_LOCAL")))
+end
+
+
+function roundNumber(num, idp)
+ return tonumber(string.format("%." .. (idp or 0) .. "f", num))
+end
+
+
+function doPowerValues(self, menu)
+ self.menu = menu
+
+ self:setValue("MSP_VERSION", self:_getSysValue("fw"))
+
+ local mode = self:_getPowerSysValue("power_mode"):gsub("^%s*(.-)%s*$",
"%1")
+ self:setValue("POWER_MODE", tostring(self:string(powerMode[mode])))
+
+ -- Battery only
+ if mode == "5" then
+ self:setValue("WALL_VOLTAGE", "-")
+ -- AC (maybe Battery)
+ else
+ local wallVoltage =
roundNumber(self:_getPowerSysValue("wall_voltage") / 1000.0, 1)
+ self:setValue("WALL_VOLTAGE", tostring(wallVoltage .. " V"))
+ end
+
+ local mode =
self:_getPowerSysValue("charger_state"):gsub("^%s*(.-)%s*$", "%1")
+ self:setValue("CHARGE_STATE", tostring(self:string(chargerState[mode])))
+
+ -- No battery installed
+ if mode == "1" then
+ self:setValue("BATTERY_TEMPERATURE", "-")
+ self:setValue("BATTERY_VOLTAGE", "-")
+ self:setValue("BATTERY_VMON1", "-")
+ self:setValue("BATTERY_VMON2", "-")
+
+ -- Battery installed
+ else
+ local batteryTemperature =
roundNumber(self:_getPowerSysValue("battery_temperature") / 32.0, 1)
+ local batteryVoltage =
roundNumber(self:_getPowerSysValue("battery_voltage") / 1000.0, 1)
+ local batteryMonitor1 =
roundNumber(self:_getPowerSysValue("battery_vmon1_voltage") / 1000.0, 1)
+ local batteryMonitor2 =
roundNumber(self:_getPowerSysValue("battery_vmon2_voltage") / 1000.0, 1)
+
+ self:setValue("BATTERY_TEMPERATURE",
tostring(batteryTemperature) .. " C")
+ self:setValue("BATTERY_VOLTAGE", tostring(batteryVoltage) .. "
V")
+ self:setValue("BATTERY_VMON1", tostring(batteryMonitor1) .. "
V")
+ self:setValue("BATTERY_VMON2", tostring(batteryMonitor2) .. "
V")
+ end
+end
+
+
+-- SUB MENUS
+
+function showGeneralDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_GENERAL"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(generalTests) do
+ self.labels[name] = {
+ text = self:string(name, ''),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doGeneralValues(self, menu)
+ menu:addTimer(5000, function()
+ doGeneralValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
+end
+
+
+function showWirelessDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_WIRELESS"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(wirelessTests) do
+ self.labels[name] = {
+ text = self:string(name, ''),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doWirelessValues(self, menu)
+ menu:addTimer(5000, function()
+ doWirelessValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
+end
+
+
+function showEthernetDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_ETHERNET"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(ethernetTests) do
+ self.labels[name] = {
+ text = self:string(name, ''),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doEthernetValues(self, menu)
+ menu:addTimer(5000, function()
+ doEthernetValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
+end
+
+
+function showServerDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_SERVER"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+
+ for i,name in ipairs(serverTests) do
+ local label
+ if name == 'SC_PORT_9000' then
+ label = self:string(name, '9000', '-')
else
- self:setValue("PLAYER_TYPE",
tostring(self:string("DIAGNOSTICS_REMOTE")))
- end
- else
- self:setValue("CURRENT_PLAYER",
tostring(self:string("DIAGNOSTICS_NONE")))
- self:setValue("PLAYER_TYPE", "")
-
- end
-
- self:systemStatus()
-
-end
-
-
-function doPowerValues(self, menu)
- self:setValue("MSP_VERSION", self:_getSysValue("fw"))
- self:setValue("BATTERY_VOLTAGE" ,
tostring(self:_getPowerSysValue("battery_voltage") /1000.0) .. " V")
- self:setValue("BATTERY_VMON1" ,
tostring(self:_getPowerSysValue("battery_vmon1_voltage")/1000.0) .. " V")
- self:setValue("BATTERY_VMON2" ,
tostring(self:_getPowerSysValue("battery_vmon2_voltage")/1000.0) .. " V")
- self:setValue("WALL_VOLTAGE" ,
tostring(self:_getPowerSysValue("wall_voltage") /1000.0) .. " V")
- self:setValue("BATTERY_TEMPERATURE",
tostring(self:_getPowerSysValue("battery_temperature") /32.0 ) .. " C")
-
- local mode = self:_getPowerSysValue("power_mode"):gsub("^%s*(.-)%s*$",
"%1")
- self:setValue("POWER_MODE" ,
tostring(self:string(powerMode[mode])))
- local mode =
self:_getPowerSysValue("charger_state"):gsub("^%s*(.-)%s*$", "%1")
- self:setValue("CHARGE_STATE" ,
tostring(self:string(chargerState[mode])))
+ label = self:string(name, '-')
+ end
+
+ self.labels[name] = {
+ text = label,
+ style = 'item_info',
+ }
+ menu:addItem(self.labels[name])
+ end
+
+ doServerValues(self, menu)
+ menu:addTimer(5000, function()
+ doServerValues(self, menu)
+ end)
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+ return window
end
@@ -456,7 +641,6 @@
menu:addItem(self.labels[name])
end
- self.powerDiagMenu = menu
doPowerValues(self, menu)
menu:addTimer(5000, function()
doPowerValues(self, menu)
@@ -468,6 +652,10 @@
return window
end
+
+-- MAIN MENU
+
+-- Service menu
function diagnosticsMenu(self, suppressNetworkingItem)
local window = Window("text_list", self:string("DIAGNOSTICS"))
window:setAllowScreensaver(false)
@@ -475,24 +663,47 @@
local menu = SimpleMenu("menu")
- self.labels = {}
-
- for i,name in ipairs(tests) do
- if name ~= 'ETH_CONNECTION' or System:getMachine() ~= 'jive'
then
- local label
- if name == 'SC_PORT_9000' then
- label = self:string(name, '9000', '-')
- else
- label = self:string(name, '-')
- end
-
- self.labels[name] = {
- text = label,
- style = 'item_info',
- }
- menu:addItem(self.labels[name])
- end
- end
+ menu:addItem({
+ text = self:string("MENU_GENERAL"),
+ style = 'item',
+ callback = function ()
+ self:showGeneralDiagnosticsMenu()
+ end
+ })
+
+ menu:addItem({
+ text = self:string("MENU_NETWORK_HEALTH"),
+ style = 'item',
+ callback = function ()
+ self:showNetworkHealthDiagnosticsMenu()
+ end
+ })
+
+ menu:addItem({
+ text = self:string("MENU_WIRELESS"),
+ style = 'item',
+ callback = function ()
+ self:showWirelessDiagnosticsMenu()
+ end
+ })
+
+ if System:getMachine() ~= 'jive' then
+ menu:addItem({
+ text = self:string("MENU_ETHERNET"),
+ style = 'item',
+ callback = function ()
+ self:showEthernetDiagnosticsMenu()
+ end
+ })
+ end
+
+ menu:addItem({
+ text = self:string("MENU_SERVER"),
+ style = 'item',
+ callback = function ()
+ self:showServerDiagnosticsMenu()
+ end
+ })
if System:getMachine() == "baby" then
menu:addItem({
@@ -527,11 +738,7 @@
self.notConnected = tostring(self:string('NOT_CONNECTED'))
- self.diagMenu = menu
- dovalues(self, menu)
- menu:addTimer(5000, function()
- dovalues(self, menu)
- end)
+ self.menu = menu
window:addWidget(menu)
@@ -539,7 +746,7 @@
return window
end
-
+-- Service menu
function supportMenu(self)
local window = Window("help_list", self:string("SUPPORT"))
window:setAllowScreensaver(false)
@@ -563,6 +770,196 @@
end
+
+
+-- NETWORK HEALTH STUFF
+function showNetworkHealthDiagnosticsMenu(self)
+ local window = Window("text_list", self:string("MENU_NETWORK_HEALTH"))
+ window:setAllowScreensaver(false)
+ window:setButtonAction("rbutton", nil)
+
+ local menu = SimpleMenu("menu")
+
+ self.labels = {}
+ self.labels["NETWORK_STATUS"] = {
+ text = self:string("NETWORK_STATUS", '-'),
+ style = 'item_info',
+ }
+ menu:addItem(self.labels["NETWORK_STATUS"])
+
+ menu:addItem({
+ text = self:string("CHECK_NETWORK"),
+ style = 'item',
+ callback = function ()
+ self:manualCheckNetworkHealth(true)
+ end
+ })
+
+-- menu:addItem({
+-- text = self:string("CHECK_NETWORK_PART"),
+-- style = 'item',
+-- callback = function ()
+-- self:manualCheckNetworkHealth(false)
+-- end
+-- })
+
+ menu:addItem({
+ text = self:string("REPAIR_NETWORK"),
+ style = 'item',
+ callback = function ()
+ self:manualRepairNetwork()
+ end
+ })
+
+ self.networkHealthMenu = menu
+
+ window:addWidget(menu)
+
+ self:tieAndShowWindow(window)
+
+ return window
+end
+
+
+function manualCheckNetworkHealth(self, full_check)
+ local popup = Popup("waiting_popup")
+ popup:setAllowScreensaver(false)
+ popup:ignoreAllInputExcept()
+
+ popup:addWidget(Icon("icon_connecting"))
+
+ if full_check then
+ popup:addWidget(Label("text", self:string("CHECK_NETWORK")))
+ else
+ popup:addWidget(Label("text",
self:string("CHECK_NETWORK_PART")))
+ end
+
+ local status = Label("subtext", self:string("STATUS_MSG", "-"))
+ popup:addWidget(status)
+
+ -- Get current server
+ local server = SlimServer:getCurrentServer()
+
+ -- Get SN if SC is not available
+ if not server then
+ -- Get SN
+ for n, s in SlimServer:iterate() do
+ if s:isSqueezeNetwork() then
+ server = s
+ end
+ end
+ end
+
+ local ifObj = Networking:activeInterface()
+
+ ifObj:checkNetworkHealth( function(continue, err, msg, msg_param)
+ local message = self:string(msg, msg_param)
+ log:debug("checkNetworkHealth status: ", message)
+-- TODO: remove
+ log:warn("checkNetworkHealth status: ", message)
+
+ if continue then
+ -- Update spinny message
+ status:setValue(self:string("STATUS_MSG",
message))
+ else
+ log:debug("Network health error: ", err)
+
+ -- Update final message
+ self:setResult("NETWORK_STATUS", err)
+
+-- self:setValue("NETWORK_STATUS", message)
+
self.networkHealthMenu:setText(self.labels["NETWORK_STATUS"],
self:string("NETWORK_STATUS", message))
+
+ self.networkHealthMenu:setSelectedIndex(1)
+
+ popup:hide()
+ end
+ end,
+ full_check, -- true full check (includes arping, DNS
resolution and ping)
+ server
+ )
+
+ self:tieAndShowWindow(popup)
+end
+
+function setResult(self, index, err)
+ self:addExtraStyle(jive.ui.style)
+
+ local myItem = self.labels[index]
+
+ if err == 0 then
+ myItem.style = "item_info_green"
+ else
+ myItem.style = "item_info_red"
+ end
+-- TODO: needed?
+-- self.networkHealthMenu:replaceIndex(myItem, 1)
+end
+
+
+function manualRepairNetwork(self)
+ local popup = Popup("waiting_popup")
+ popup:setAllowScreensaver(false)
+ popup:ignoreAllInputExcept()
+
+ popup:addWidget(Icon("icon_connecting"))
+ popup:addWidget(Label("text", self:string("REPAIR_NETWORK")))
+
+ local status = Label("subtext", self:string("STATUS_MSG", "-"))
+ popup:addWidget(status)
+
+ local ifObj = Networking:activeInterface()
+
+ ifObj:repairNetwork( function(continue, err, msg, msg_param)
+ local message = self:string(msg, msg_param)
+ log:debug("repairNetwork status: ", message)
+
+ if continue then
+ -- Update spinny message
+ status:setValue(self:string("STATUS_MSG",
message))
+ else
+ -- Update final message
+ log:debug("Repair network error: ", err)
+
+ popup:hide()
+ end
+ end
+ )
+
+ self:tieAndShowWindow(popup)
+end
+
+
+-- defines a new style that inherrits from an existing style
+local function _uses(parent, value)
+ if parent == nil then
+ log:warn("nil parent in _uses at:\n", debug.traceback())
+ end
+ local style = {}
+ setmetatable(style, { __index = parent })
+ for k,v in pairs(value or {}) do
+ if type(v) == "table" and type(parent[k]) == "table" then
+ -- recursively inherrit from parent style
+ style[k] = _uses(parent[k], v)
+ else
+ style[k] = v
+ end
+ end
+
+ return style
+end
+
+
+function addExtraStyle(self, s)
+ s.item_info_green = _uses(s.item_info, {
+ bgImg = Tile:fillColor(0x00ff0088),
+ })
+ s.item_info_red = _uses(s.item_info, {
+ bgImg = Tile:fillColor(0xff000088),
+ })
+end
+
+
--[[
=head1 LICENSE
Modified:
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
URL:
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt?rev=9014&r1=9013&r2=9014&view=diff
==============================================================================
---
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
(original)
+++
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/Diagnostics/strings.txt
Tue Aug 3 12:39:46 2010
@@ -963,3 +963,121 @@
RU СоÑÑоÑние ÑÑÑÑойÑÑва заÑÑдки\n%s
SV Laddningsstatus\n%s
+MENU_GENERAL
+ EN General Info
+
+MENU_NETWORK_HEALTH
+ EN Network Health
+
+MENU_WIRELESS
+ EN Wireless Info
+
+MENU_ETHERNET
+ EN Ethernet Info
+
+MENU_SERVER
+ EN Server Info
+
+NETWORK_STATUS
+ EN Network Status\n%s
+
+REPAIR_NETWORK
+ EN Repair Network
+
+CHECK_NETWORK
+ EN Check Network
+
+CHECK_NETWORK_PART
+ EN Check Network (part)
+
+STATUS_MSG
+ EN %s
+
+NET_BRINGING_NETWORK_DOWN
+ EN Bringing network down ...
+
+NET_BRINGING_NETWORK_UP
+ EN Bringing network up ...
+
+NET_REPAIR_NETWORK_DONE
+ EN Repair network done
+
+NET_CONNECTION_NOK
+ EN Not connected
+
+NET_INTERFACE_NOK
+ EN No network interface
+
+NET_LINK
+ EN Check network link
+
+NET_LINK_WIRELESS_OK
+ EN Wireless - link ok
+
+NET_LINK_WIRELESS_NOK
+ EN Wireless - no link
+
+NET_LINK_ETHERNET_OK
+ EN Ethernet link ok
+
+NET_LINK_ETHERNET_NOK
+ EN Ethernet - no link
+
+NET_IP_OK
+ EN IP: %s
+
+NET_IP_NOK
+ EN No valid IP
+
+NET_GATEWAY_OK
+ EN Gateway IP: %s
+
+NET_GATEWAY_NOK
+ EN No valid gateway IP
+
+NET_DNS_OK
+ EN DNS IP: %s
+
+NET_DNS_NOK
+ EN No valid DNS IP
+
+NET_ARPING
+ EN Arping %s ...
+
+NET_ARPING_OK
+ EN Arping ok
+
+NET_ARPING_NOK
+ EN IP %s already in use.
+
+NET_SERVER_NOK
+ EN No server
+
+NET_RESOLVE
+ EN Getting IP for %s ...
+
+NET_RESOLVE_OK
+ EN IP for %s
+
+NET_RESOLVE_NOK
+ EN DNS resolution failed for %s
+
+NET_PING
+ EN Pinging %s ...
+
+NET_PING_OK
+ EN Ping %s ok
+
+NET_PING_NOK
+ EN Ping %s not ok
+
+NET_PORT
+ EN Test connection to %s
+
+NET_PORT_OK
+ EN Connection to %s ok
+
+NET_PORT_NOK
+ EN Connection to %s not ok
+
+
_______________________________________________
Jive-checkins mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/jive-checkins