Author: bklaas
Date: Wed Jul 14 08:19:30 2010
New Revision: 8946

URL: http://svn.slimdevices.com/jive?rev=8946&view=rev
Log:
 r39...@daddymac (orig r8923):  fmueller | 2010-07-02 03:17:11 -0500
 Bug: n/a 
 Description: Get rid of another 'ifconfig' shell call and use new C method to 
get ip address. 
 
 r39...@daddymac (orig r8924):  ayoung | 2010-07-02 05:04:26 -0500
 Get rid of party and playlist modes,
 r39...@daddymac (orig r8925):  bklaas | 2010-07-02 08:10:58 -0500
 Bug: n/a
 Description: final cull of playlist/party mode cruft
 
 r39...@daddymac (orig r8930):  fmueller | 2010-07-02 11:25:02 -0500
 Bug: n/a 
 Description: Cleanup of wireless signal strength functions. 
 
 r39...@daddymac (orig r8931):  fmueller | 2010-07-02 11:25:19 -0500
 Bug: n/a 
 Description: Cleanup of wireless signal strength functions. 
 
 r39...@daddymac (orig r8932):  fmueller | 2010-07-02 11:25:36 -0500
 Bug: n/a 
 Description: Cleanup of wireless signal strength functions. 
 
 r39...@daddymac (orig r8933):  fmueller | 2010-07-02 11:26:44 -0500
 Bug: n/a 
 Description: Cleanup of wireless signal strength functions. 
 
 r39...@daddymac (orig r8934):  fmueller | 2010-07-02 11:26:56 -0500
 Bug: n/a 
 Description: Cleanup of wireless signal strength functions. 
 
 r39...@daddymac (orig r8935):  fmueller | 2010-07-07 10:06:32 -0500
 Bug: n/a 
 Description: Fix in ifUp() and ifDown() to support ssids which already have 
spaces replaced. 
 
 r39...@daddymac (orig r8937):  fmueller | 2010-07-08 09:09:49 -0500
 Bug: n/a 
 Description: 
 - Added missing function descriptions
 - Added a repair network function 
 
 r39...@daddymac (orig r8944):  ayoung | 2010-07-14 07:39:32 -0500
 Use EVENT_SCROLL instead of EVENT_KEY_PRESS for up/down events in menus
 r39...@daddymac (orig r8945):  bklaas | 2010-07-14 09:20:57 -0500
 Bug: n/a
 Description: move a harmless log message from error to warn
 add batteryCapable to allCapabilities table
 

Modified:
    7.6/branches/new-setup/   (props changed)
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/DebugSkin/DebugSkinApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/MacroPlay/MacroPlayApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAbaseSkin/QVGAbaseSkinApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimMenus/SlimMenusApplet.lua
    7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/Iconbar.lua
    7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/System.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
    
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/SetupSSH/SetupSSHApplet.lua
    
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 14 08:19:30 2010
@@ -14,7 +14,7 @@
 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:8918
-bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.6/trunk:8920
+bbe22326-0783-4b3a-ac2b-7ab96b24c8d9:/7.6/trunk:8945
 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/DebugSkin/DebugSkinApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/DebugSkin/DebugSkinApplet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/DebugSkin/DebugSkinApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/DebugSkin/DebugSkinApplet.lua
 Wed Jul 14 08:19:30 2010
@@ -214,8 +214,6 @@
        -- global icons
        "background",
        "button_battery_NONE",
-       "button_playlist_mode_OFF",
-       "button_playlist_mode_PARTY",
        "button_playmode_OFF",
        "button_playmode_STOP",
        "button_playmode_PLAY",

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/MacroPlay/MacroPlayApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/MacroPlay/MacroPlayApplet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/MacroPlay/MacroPlayApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/MacroPlay/MacroPlayApplet.lua
 Wed Jul 14 08:19:30 2010
@@ -25,6 +25,7 @@
 local dumper           = require("jive.utils.dumper")
 
 local Applet           = require("jive.Applet")
+local System           = require("jive.System")
 local Event            = require("jive.ui.Event")
 local Framework        = require("jive.ui.Framework")
 local Icon             = require("jive.ui.Icon")
@@ -367,7 +368,7 @@
        end
 
        while menu:getSelectedIndex() ~= index do
-               macroEvent(100, EVENT_KEY_PRESS, KEY_DOWN)
+               macroEvent(100, EVENT_SCROLL, 1)
        end
 
        macroDelay(interval)
@@ -383,9 +384,9 @@
        end
 
        local index = menu:getSelectedIndex() or 1
-       local dir = KEY_DOWN
+       local dir = 1
        if index ~= 1 then
-               dir = KEY_UP
+               dir = -1
        end
 
        local ok = false
@@ -395,7 +396,7 @@
                        break
                end
 
-               macroEvent(100, EVENT_KEY_PRESS, dir)
+               macroEvent(100, EVENT_SCROLL, dir)
        until menu:getSelectedIndex() == index
 
        macroDelay(interval)

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=8946&r1=8945&r2=8946&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
 Wed Jul 14 08:19:30 2010
@@ -2287,21 +2287,6 @@
                img = _loadImage(self, "Icons/icon_repeat_on.png"),
        })
 
-       s.button_playlist_mode_OFF = _uses(s._button_repeat, {
-               img = false,
-       })
-       s.button_playlist_mode_DISABLED = _uses(s._button_repeat, {
-               img = false,
-       })
-
-       -- XXX: these two can probably be removed after party mode is fully 
dead and buried
-       s.button_playlist_mode_ON = _uses(s._button_repeat, {
-               img = false,
-       })
-       s.button_playlist_mode_PARTY = _uses(s._button_repeat, {
-               img = false,
-       })
-
        s._button_shuffle = _uses(s._iconbar_icon)
        s.button_shuffle_OFF = _uses(s._button_shuffle, {
                img = false,

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/QVGAportraitSkin/QVGAportraitSkinApplet.lua
 Wed Jul 14 08:19:30 2010
@@ -438,11 +438,6 @@
        s.button_repeat_1.border                = s._button_repeat.border
        s.button_repeat_2.border                = s._button_repeat.border
 
-       s.button_playlist_mode_OFF.border       = _iconbarBorder
-       s.button_playlist_mode_DISABLED.border  = _iconbarBorder 
-       s.button_playlist_mode_ON.border        = _iconbarBorder 
-       s.button_playlist_mode_PARTY.border     = _iconbarBorder
-
        s._button_shuffle.border                = _iconbarBorder
        s.button_shuffle_OFF.border             = s._button_shuffle.border
        s.button_shuffle_0.border               = s._button_shuffle.border

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/applets/SlimBrowser/SlimBrowserApplet.lua
 Wed Jul 14 08:19:30 2010
@@ -1741,6 +1741,7 @@
        ["play"]      = "playAction",
        ["play-hold"] = "playHoldAction",
        ["add"]       = "addAction",
+       ["go"]        = "goAction",     
 }
 
 

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=8946&r1=8945&r2=8946&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
 Wed Jul 14 08:19:30 2010
@@ -745,8 +745,8 @@
                        else
                                if iface:isWireless() then
                                        -- wireless strength
-                                       local quality = iface:getLinkQuality()
-                                       if not quality or quality == 0 then
+                                       local percentage = 
iface:getSignalStrength()
+                                       if not percentage or percentage == 0 
then
                                                return 
failureCallback(self:_networkFailureWindow(false, successCallback))
                                        end
                                else

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/Iconbar.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/Iconbar.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/Iconbar.lua 
(original)
+++ 7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/Iconbar.lua 
Wed Jul 14 08:19:30 2010
@@ -64,29 +64,6 @@
        log:debug("Iconbar:setPlaymode(", val, ")")
        self.iconPlaymode:setStyle("button_playmode_" .. string.upper((val or 
"OFF")))
 end
-
---[[
-
-=head2 Iconbar:setPlaylistMode(val)
-
-Set the playlistmode of the iconbar. Values are nil (no mode), 1 for playlist 
mode and 2 for party mode.
-When not 1 or 2, setRepeat()
-
-=cut
---]]
-function setPlaylistMode(self, val)
-       log:debug("Iconbar:setPlaylistMode(", val, ")")
-
-       local mode = string.upper((val or "OFF"))
-       if mode ~= "OFF" and mode ~= "DISABLED" then
-               self.preferPlaylistModeIcon = true
-               self.iconRepeat:setStyle("button_playlist_mode_" .. mode)
-       else
-               self.preferPlaylistModeIcon = false
-               self:setRepeat(self.repeatMode)
-       end
-end
-
 
 --[[
 

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/System.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/System.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/System.lua 
(original)
+++ 7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/System.lua 
Wed Jul 14 08:19:30 2010
@@ -64,6 +64,7 @@
        ["coreKeys"] = 1,
        ["sdcard"] = 1,
        ["usb"] = 1,
+       ["batteryCapable"] = 1,
 }
 
 local _capabilities = {} -- of form string, 1 so
@@ -74,7 +75,7 @@
 
        for capability, value in pairs(capabilities) do
                if not allCapabilities[capability] then
-                       log:error("Unknown capability: ", capability)
+                       log:warn("Unknown capability: ", capability)
                end
        end
        

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua 
(original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay/share/jive/slim/Player.lua 
Wed Jul 14 08:19:30 2010
@@ -1110,7 +1110,6 @@
        iconbar:setPlaymode(nil)
        iconbar:setRepeat(nil)
        iconbar:setShuffle(nil)
-       iconbar:setPlaylistMode(nil)
 
        self.browseHistory = {}
 
@@ -1148,16 +1147,7 @@
                        iconbar:setAlarm('OFF')
                end
 
-               -- set the playlist mode (nil, 0=off, 1=playlist, 2=party)
-               if self.state['playlist mode'] and
-                       ( self.state['playlist mode'] == 'disabled' or 
self.state['playlist mode'] == 'off' or self.state['playlist mode'] == 
json.null )
-                       then
-                       iconbar:setPlaylistMode('off')
-                       iconbar:setRepeat(self.state["playlist repeat"])
-               else
-                       iconbar:setRepeat(0)
-                       iconbar:setPlaylistMode(self.state["playlist mode"])
-               end
+               iconbar:setRepeat(0)
 
                --[[ useful for layout skinning debug, set all modes to show 
icons
                        iconbar:setPlaymode('play')

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_baby/share/applets/SqueezeboxBaby/SqueezeboxBabyApplet.lua
 Wed Jul 14 08:19:30 2010
@@ -701,14 +701,15 @@
 
        if not iface then
                iconbar:setWirelessSignal(nil)
+               player:setSignalStrength(nil)
        else
                if iface:isWireless() then
                        -- wireless strength
-                       local quality, strength = iface:getLinkQuality()
+                       local percentage, quality = iface:getSignalStrength()
                        iconbar:setWirelessSignal(quality ~= nil and quality or 
"ERROR")
 
                        if player then
-                               player:setSignalStrength(strength)
+                               player:setSignalStrength(percentage)
                        end
                else
                        -- wired

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_fab4/share/applets/SqueezeboxFab4/SqueezeboxFab4Applet.lua
 Wed Jul 14 08:19:30 2010
@@ -533,11 +533,11 @@
        else    
                if iface:isWireless() then
                        -- wireless strength
-                       local quality, strength = iface:getLinkQuality()
+                       local percentage, quality = iface:getSignalStrength()
                        iconbar:setWirelessSignal(quality ~= nil and quality or 
"ERROR")
 
                        if player then
-                               player:setSignalStrength(strength)
+                               player:setSignalStrength(percentage)
                        end
                else
                        -- wired

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_jive/share/applets/SqueezeboxJive/SqueezeboxJiveApplet.lua
 Wed Jul 14 08:19:30 2010
@@ -346,10 +346,10 @@
        end
 
        -- wireless strength
-       local quality = self.wireless:getLinkQuality()
+       local percentage, quality = self.wireless:getSignalStrength()
        iconbar:setWirelessSignal(quality ~= nil and quality or "ERROR")
        if player then
-               player:setSignalStrength(strength)
+               player:setSignalStrength(percentage)
        end
 end
 

Modified: 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/SetupSSH/SetupSSHApplet.lua
URL: 
http://svn.slimdevices.com/jive/7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/SetupSSH/SetupSSHApplet.lua?rev=8946&r1=8945&r2=8946&view=diff
==============================================================================
--- 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/SetupSSH/SetupSSHApplet.lua
 (original)
+++ 
7.6/branches/new-setup/squeezeplay/src/squeezeplay_squeezeos/share/applets/SetupSSH/SetupSSHApplet.lua
 Wed Jul 14 08:19:30 2010
@@ -100,14 +100,14 @@
 
 
 function _getIPAddress()
-       local ipaddr
+       local ip_address, ip_subnet
        local ifObj = Networking:activeInterface()
 
        if ifObj then
-               ipaddr = Networking:getIP(ifObj)
-       end
-
-       return ipaddr or "?.?.?.?"
+               ip_address, ip_subnet = ifObj:getIPAddressAndSubnet()
+       end
+
+       return ip_address or "?.?.?.?"
 end
 
 

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=8946&r1=8945&r2=8946&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 14 08:19:30 2010
@@ -134,6 +134,18 @@
        return obj
 end
 
+
+--[[
+
+=head2 jive.net.Networking:detectChipset()
+
+Returns chipset used on particular platform
+- Jive - Marvell (gspi8686)
+- Radio - Atheros (ar6000)
+- Touch - Marvell (sd8686)
+
+=cut
+--]]
 
 function detectChipset(self)
        local f = io.popen("/sbin/lsmod 2> /dev/null")
@@ -354,24 +366,27 @@
 
 --[[
 
-=head2 networking:getIP(self, interface)
-
-Returns the ip address, if any, of the object I<interface>
-
-=cut
---]]
-
-function getIP(self, interfaceObj)
-       local ipaddr
-       local cmd = io.popen("/sbin/ifconfig " .. interfaceObj.interface)
-       for line in cmd:lines() do
-               ipaddr = string.match(line, "inet addr:([%d%.]+)")
-               if ipaddr ~= nil then 
-                       break 
-               end
-       end
-       cmd:close()
-       return ipaddr
+=head2 networking:getIPAddressAndSubnet(self)
+
+Returns the ip address and subnet, if any
+
+=cut
+--]]
+
+function getIPAddressAndSubnet(self)
+       if not self.t_sock then
+               return
+       end
+
+       local ip_address, ip_subnet
+
+       local ifdata = self.t_sock:getIfConfig()
+       if ifdata ~= nil then
+               ip_address = ifdata[1]
+               ip_subnet = ifdata[2]
+       end
+
+       return ip_address, ip_subnet
 end
 
 
@@ -626,7 +641,9 @@
        -- Bug #5227 if we are associated use the same quality indicator
        -- as the icon bar
        if associated and self._scanResults[associated] then
-               self._scanResults[associated].quality = self:getLinkQuality()
+               local percentage, quality = self:getSignalStrength()
+
+               self._scanResults[associated].quality = quality
        end
 
        if callback then
@@ -637,7 +654,20 @@
 end
 
 
+--[[
+
+=head2 jive.net.Networking:_ethernetScanTask(callback)
+
+Similar to wireless scan task, but for wired interfaces
+
+=cut
+--]]
+
 function _ethernetScanTask(self, callback)
+       if not self.t_sock then
+               return 0
+       end
+
        local status = self.t_sock:ethStatus()
 
        local active = self:_ifstate()
@@ -654,8 +684,16 @@
 end
 
 
--- check the ifup interface state. returns true if the interface is enabled
--- or the enabled ssid for wireless interfaces.
+--[[
+
+=head2 jive.net.Networking:_ifstate()
+
+Check the ifup interface state. returns true if the interface is enabled
+or the enabled ssid for wireless interfaces.
+
+=cut
+--]]
+
 function _ifstate(self)
         local active = false
 
@@ -678,6 +716,16 @@
 end
 
 
+--[[
+
+=head2 jive.net.Networking:status()
+
+Get status information for wireless or wired interface.
+- Wired: link, speed, fullDuplex
+- Wireless: ssid, encryption, ...
+
+=cut
+--]]
 
 function status(self)
        assert(Task:running(), "Networking:basicStatus must be called in a 
Task")
@@ -691,6 +739,9 @@
                        status[k] = v
                end
        else
+               if not self.t_sock then
+                       return 0
+               end
                status = self.t_sock:ethStatus()
                status.wpa_state = "COMPLETED"
        end
@@ -719,11 +770,11 @@
                return status
        end
 
-       -- Get ip address and net mask
-       local ifdata = self.t_sock:getIfConfig()
-       if ifdata ~= nil then
-               status.ip_address = ifdata[1]
-               status.ip_subnet = ifdata[2]
+       local ip_address, ip_subnet = self:getIPAddressAndSubnet()
+
+       if ip_address and ip_subnet then
+               status.ip_address = ip_address
+               status.ip_subnet = ip_subnet
        end
 
        -- exit early if we do not have an ip address
@@ -1070,11 +1121,19 @@
                                id = nid
                                break
                        end
+
+                       -- In wpa_supplicant.conf ssids do not have spaces 
replaced
+                       --  doublecheck with spaces replaced
+                       nssid = string.gsub(nssid, "[ \t]", "_")
+                       if nssid == ssid then
+                               id = nid
+                               break
+                       end
                end
 
                -- Select network
                if not id then
-                       log:warn("can't find network ", ssid)
+                       log:warn("_ifUp - can't find network ", ssid)
                        return
                end
 
@@ -1154,24 +1213,45 @@
                                id = nid
                                break
                        end
-               end
-
-               if id then
-                       -- Disconnect from existing network
-                       local request = 'DISCONNECT'
-                       assert(self:request(request) == "OK\n", "wpa_cli 
failed:" .. request)
-
-                       -- Disable network
-                       local request = 'DISABLE_NETWORK ' .. id
-                       assert(self:request(request) == "OK\n", "wpa_cli 
failed:" .. request)
-
-                       -- Save configuration
-                       request = 'SAVE_CONFIG'
-                       assert(self:request(request) == "OK\n", "wpa_cli 
failed:" .. request)
-
-               end
-       end
-end
+
+                       -- In wpa_supplicant.conf ssids do not have spaces 
replaced
+                       --  doublecheck with spaces replaced
+                       nssid = string.gsub(nssid, "[ \t]", "_")
+                       if nssid == active then
+                               id = nid
+                               break
+                       end
+               end
+
+               -- Select network
+               if not id then
+                       log:warn("_ifDown - can't find network ", active)
+                       return
+               end
+
+               -- Disconnect from existing network
+               local request = 'DISCONNECT'
+               assert(self:request(request) == "OK\n", "wpa_cli failed:" .. 
request)
+
+               -- Disable network
+               local request = 'DISABLE_NETWORK ' .. id
+               assert(self:request(request) == "OK\n", "wpa_cli failed:" .. 
request)
+
+               -- Save configuration
+               request = 'SAVE_CONFIG'
+               assert(self:request(request) == "OK\n", "wpa_cli failed:" .. 
request)
+
+       end
+end
+
+--[[
+
+=head2 jive.net.Networking:_ifUpDown(cmd)
+
+Utility function to call ifup and ifdown in a process.
+
+=cut
+--]]
 
 
 function _ifUpDown(self, cmd)
@@ -1196,6 +1276,15 @@
        end
 end
 
+
+--[[
+
+=head2 jive.net.Networking:_editAutoInterfaces( ssid)
+
+Handles the 'auto' entry for the active interface in /etc/network/interfaces
+
+=cut
+--]]
 
 function _editAutoInterfaces(self, ssid)
        local interface = self.interface
@@ -1246,6 +1335,15 @@
        System:atomicWrite("/etc/network/interfaces", outStr)
 end
 
+--[[
+
+=head2 jive.net.Networking:_editNetworkInterfacesBlock( outStr, iface_name, 
method, ...)
+
+Helper function for _editInterfaces()
+
+=cut
+--]]
+
 
 function _editNetworkInterfacesBlock( self, outStr, iface_name, method, ...)
 
@@ -1261,6 +1359,15 @@
        return outStr
 end
 
+
+--[[
+
+=head2 jive.net.Networking:_editInterfaces(ssid, method, ...)
+
+Add and removes interfaces to /etc/network/interfaces
+
+=cut
+--]]
 
 function _editNetworkInterfaces( self, ssid, method, ...)
        local iface = self.interface
@@ -1329,9 +1436,11 @@
 --]]
 
 function getLinkQuality(self)
-       local strength = getSignalStrength(self)
-
-       return math.ceil(strength / 25), strength
+       log:error("**** This function is deprecated - use getSignalStrength() 
instead")
+
+       local percentage, quality = self:getSignalStrength()
+
+       return quality, percentage
 end
 
 
@@ -1382,7 +1491,15 @@
 end
 
 
--- returns wireless signal strength as a percentage
+--[[
+
+=head2 jive.net.Networking:getSignalStrength()
+
+Returns wireless signal strength as a percentage (0-100) and quality (0-4)
+
+=cut
+--]]
+
 function getSignalStrength(self)
        local snr = getSNR(self)
 
@@ -1390,10 +1507,14 @@
        -- jive: 5 - 71
        -- baby: 5 - 72
 
-       -- an SNR of 20dB should be adequate, this is
-       -- tuned so 40 SNR = 100%
-
-       return math.ceil((math.min(snr, 40) / 40) * 100), snr
+       -- an SNR of 20dB should be adequate, this is tuned so
+       -- percentage: 100% = 40 SNR
+       -- quality: 0 - 4
+
+       local percentage = math.ceil((math.min(snr, 40) / 40) * 100)
+       local quality = math.ceil(percentage / 25)
+
+       return percentage, quality
 end
 
 
@@ -1815,6 +1936,33 @@
 
 --[[
 
+=head2 jive.net.Networking:repairNetwork()
+
+Attempt to repair network connction doing the following:
+- 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
+
+=cut
+--]]
+
+function repairNetwork(self)
+       Task("repairnetwork", self, function()
+               log:info("Repair network - start")
+
+               local active = self:_ifstate()
+
+               self:_ifDown()
+               self:_ifUp(active)
+
+               log:info("Repair network - done")
+       end):addTask()
+end
+
+
+--[[
+
 =head1 LICENSE
 
 Copyright 2010 Logitech. All Rights Reserved.

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

Reply via email to