Index: src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua =================================================================== --- src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua (revision 6560) +++ src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua Tue Jul 14 16:42:25 CDT 2009 @@ -124,6 +124,14 @@ self:storeSettings() end + +--service method +function performHalfDuplexBugTest(self) + return true +end + + +--service method function getDefaultWallpaper(self) local wallpaper = "bb_encore.png" -- default, if none found examining serial if self._serial then Index: src/squeezeplay_squeezeos/share/applets/SetupNetworking/SetupNetworkingApplet.lua =================================================================== --- src/squeezeplay_squeezeos/share/applets/SetupNetworking/SetupNetworkingApplet.lua (revision 6554) +++ src/squeezeplay_squeezeos/share/applets/SetupNetworking/SetupNetworkingApplet.lua Tue Jul 14 16:42:25 CDT 2009 @@ -334,11 +334,21 @@ -- for ethernet, automatically connect if not iface:isWireless() then + local nextStep = function() - _scanResults(self, iface) + _scanResults(self, iface) - return _connect(self, iface, iface:getName(), true, false) + _connect(self, iface, iface:getName(), true, false) - end + end + if appletManager:callService("performHalfDuplexBugTest") then + _halfDuplexBugTest(self, iface, nextStep) + return + else + nextStep() + return + end + end + local window = Window("text_list", self:string("NETWORK_WIRELESS_NETWORKS"), 'setuptitle') window:setAllowScreensaver(false) @@ -442,7 +452,61 @@ _setCurrentSSID(self, associated) end +function _halfDuplexBugTest(self, iface, nextStep, useShowInstead) + log:info("_halfDuplexBugTest:") + local status = iface:t_wpaStatus() + if not status.link or (status.link and status.fullduplex) then + log:info("_halfDuplexBugTest: success. Link status: ", status.link) + if nextStep then + nextStep() + end + return + end + local window = Window("help_info", self:string("NETWORK_CONNECTION_PROBLEM"), "helptitle") + window:setAllowScreensaver(false) + + local menu = SimpleMenu("menu") + + menu:addItem({ + text = (self:string("NETWORK_TRY_AGAIN")), + sound = "WINDOWSHOW", + callback = function() + log:info("_halfDuplexBugTest: try again") + _halfDuplexBugTest(self, iface, nextStep, true) + end, + weight = 1 + }) + + menu:addItem({ + text = (self:string("NETWORK_CONNECTION_TYPE_WIRELESS")), + sound = "WINDOWSHOW", + callback = function() + _networkScan(self, self.wlanIface) + end, + weight = 2 + }) + + window:addWidget(menu) + + _helpAction(self, window, nil, nil, menu) + + + local textarea = Textarea("help_text", self:string("NETWORK_HALF_SPEED_HUB")) + window:addWidget(menu) + menu:setHeaderWidget(textarea) + + if not useShowInstead then + self:tieAndShowWindow(window) + else + window:showInstead() + end + +-- window:playSound("WINDOWSHOW") + + +end + -------- WIRELESS SSID AND PASSWORD -------- Index: src/squeezeplay_squeezeos/share/applets/SetupNetworking/strings.txt =================================================================== --- src/squeezeplay_squeezeos/share/applets/SetupNetworking/strings.txt (revision 6554) +++ src/squeezeplay_squeezeos/share/applets/SetupNetworking/strings.txt Tue Jul 14 15:55:21 CDT 2009 @@ -1066,6 +1066,9 @@ NETWORK_HALF_SPEED_HUB EN You are using a half-duplex ethernet hub that is not supported by this Squeezebox.\n\nPlease attach a full-duplex ethernet device, or choose an available wireless network. For more information, please contact customer support. +NETWORK_CONNECTION_PROBLEM + EN Connection Problem + NETWORK_ETH_MBPS CS %s Mb/s DA %s Mbps Index: src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyMeta.lua =================================================================== --- src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyMeta.lua (revision 6480) +++ src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyMeta.lua Tue Jul 14 16:42:25 CDT 2009 @@ -62,6 +62,7 @@ meta:registerService("getBrightness") meta:registerService("setBrightness") meta:registerService("getDefaultWallpaper") + meta:registerService("performHalfDuplexBugTest") end