mirror of
https://github.com/clockworkpi/LauncherGoDev.git
synced 2025-12-13 16:38:52 +01:00
wifi alpha
This commit is contained in:
parent
594e78d2f4
commit
b7ad646046
Binary file not shown.
Binary file not shown.
@ -36,6 +36,14 @@ func (self *WifiPlugin) Init( main_screen *UI.MainScreen ) {
|
|||||||
|
|
||||||
self.ScanPage.Init()
|
self.ScanPage.Init()
|
||||||
|
|
||||||
|
if self.ScanPage.Daemon != nil {
|
||||||
|
self.ScanPage.Daemon.EnableSignal("StatusChanged")
|
||||||
|
self.ScanPage.Daemon.EnableSignal("ConnectResultsSent")
|
||||||
|
self.ScanPage.Wireless.EnableSignal("SendStartScanSignal")
|
||||||
|
self.ScanPage.Wireless.EnableSignal("SendEndScanSignal")
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *WifiPlugin) Run( main_screen *UI.MainScreen ) {
|
func (self *WifiPlugin) Run( main_screen *UI.MainScreen ) {
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
gotime "time"
|
gotime "time"
|
||||||
|
|
||||||
|
"github.com/godbus/dbus"
|
||||||
|
|
||||||
"github.com/veandco/go-sdl2/ttf"
|
"github.com/veandco/go-sdl2/ttf"
|
||||||
|
|
||||||
"github.com/cuu/gogame/surface"
|
"github.com/cuu/gogame/surface"
|
||||||
@ -351,7 +353,7 @@ type WifiListMessageBox struct{
|
|||||||
|
|
||||||
func NewWifiListMessageBox() *WifiListMessageBox{
|
func NewWifiListMessageBox() *WifiListMessageBox{
|
||||||
p := &WifiListMessageBox{}
|
p := &WifiListMessageBox{}
|
||||||
|
p.Color = &color.Color{83,83,83,255}
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -499,13 +501,81 @@ func (self *WifiList) Rescan(sync bool) { // sync default should be false
|
|||||||
}
|
}
|
||||||
|
|
||||||
// dbus signal functions
|
// dbus signal functions
|
||||||
func (self *WifiList) DbusScanFinishedSig() {
|
func (self *WifiList) WifiDbusScanFinishedSig(body []interface{}) {
|
||||||
}
|
if self.Screen.CurrentPage != self {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (self *WifiList) DbusScanStarted() {
|
self.ResetPageSelector()
|
||||||
|
|
||||||
|
self.UpdateNetList(-1,[]string{}, true,false)
|
||||||
|
|
||||||
|
self.Scanning= false
|
||||||
|
self.HideBox()
|
||||||
|
|
||||||
|
self.BlockingUI = false
|
||||||
|
fmt.Println("dbus says scan finished")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *WifiList) WifiDbusScanStarted(body []interface{} ) {
|
||||||
|
if self.Screen.CurrentPage != self {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
self.Scanning = true
|
||||||
|
self.ShowBox("Wifi scanning...")
|
||||||
|
self.BlockingUI = true
|
||||||
|
fmt.Println("dbus says start scan")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func (self *WifiList) DbusDaemonStatusChangedSig(body []interface{}) {
|
||||||
|
var state int
|
||||||
|
var info []dbus.Variant
|
||||||
|
|
||||||
|
err := dbus.Store(body,&state,&info)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}else {
|
||||||
|
fmt.Println(state," ", info)
|
||||||
|
}
|
||||||
|
|
||||||
|
var info_str []string
|
||||||
|
for i,v := range info {
|
||||||
|
info_str = append(info_str, v.String())
|
||||||
|
}
|
||||||
|
|
||||||
|
self.UpdateNetList(state,info_str,false,false)
|
||||||
|
if len(info_str) > 0 {
|
||||||
|
self.Screen.Draw()
|
||||||
|
self.Screen.SwapAndShow()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *WifiList) DbusConnectResultsSent(body []interface{}) {
|
||||||
|
var ret_val string
|
||||||
|
err := dbus.Store(body,&ret_val)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}else {
|
||||||
|
fmt.Println(ret_val)
|
||||||
|
}
|
||||||
|
|
||||||
|
self.Connecting = flase
|
||||||
|
self.BlockingUI = false
|
||||||
|
if self.BlockCb != nil {
|
||||||
|
self.BlockCb()
|
||||||
|
self.BlockCb = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
self.Screen.FootBar.ResetNavText()
|
||||||
|
}
|
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
func (self *WifiList) UpdateNetList(state int,info []string ,force_check bool,firstrun bool) { //force_check default ==false, firstrun default == false
|
func (self *WifiList) UpdateNetList(state int,info []string ,force_check bool,firstrun bool) { //force_check default ==false, firstrun default == false
|
||||||
if self.Daemon == nil {
|
if self.Daemon == nil {
|
||||||
@ -640,14 +710,6 @@ func (self *WifiList) UpdateStatus() bool {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *WifiList) DbusDaemonStatusChangedSig(state int,info []string) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *WifiList) DbusConnectResultsSent( result string) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//set_status == "" not used
|
//set_status == "" not used
|
||||||
func (self *WifiList) CheckForWireless(iwconfig string, wireless_ip string , set_status string ) bool {
|
func (self *WifiList) CheckForWireless(iwconfig string, wireless_ip string , set_status string ) bool {
|
||||||
if len(wireless_ip) == 0 {
|
if len(wireless_ip) == 0 {
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@ -11,6 +11,7 @@ type DbusInterface struct {
|
|||||||
Path dbus.ObjectPath
|
Path dbus.ObjectPath
|
||||||
Iface string
|
Iface string
|
||||||
Obj *dbus.Object
|
Obj *dbus.Object
|
||||||
|
SigFuncs map[string]interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDbusInterface(conn *dbus.Conn,dest string, path dbus.ObjectPath ,iface string) *DbusInterface {
|
func NewDbusInterface(conn *dbus.Conn,dest string, path dbus.ObjectPath ,iface string) *DbusInterface {
|
||||||
@ -21,6 +22,8 @@ func NewDbusInterface(conn *dbus.Conn,dest string, path dbus.ObjectPath ,iface s
|
|||||||
m.Dest = dest
|
m.Dest = dest
|
||||||
m.Path = path
|
m.Path = path
|
||||||
|
|
||||||
|
m.SigFuncs = make(map[string]interface{})
|
||||||
|
|
||||||
if len(iface) > 2 {
|
if len(iface) > 2 {
|
||||||
m.Iface = iface
|
m.Iface = iface
|
||||||
}
|
}
|
||||||
@ -55,6 +58,34 @@ func (self *DbusInterface) Get( thecall *dbus.Call, retvalues ...interface{}) er
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *DbusInterface) EnableSignal(signame string) {
|
||||||
|
iface := self.Dest
|
||||||
|
if self.Iface != "" {
|
||||||
|
iface = iface+ "."+self.Iface
|
||||||
|
}
|
||||||
|
self.Obj.AddMatchSignal(iface,signame)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func (self *DbusInterface) HandleSignal( sig *dbus.Signal) {
|
||||||
|
|
||||||
|
iface := self.Dest
|
||||||
|
if self.Iface != "" {
|
||||||
|
iface = iface+ "."+self.Iface
|
||||||
|
}
|
||||||
|
|
||||||
|
if strings.HasPrefix(sig.Name,iface) {
|
||||||
|
func_name := strings.Replace( sig.Name, iface, "",-1)[1:]
|
||||||
|
for k,v := range self.SigFuncs {
|
||||||
|
if k == func_name {
|
||||||
|
v.(func([]interface{}))(sig.Body)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
type DBusInterface interface {
|
type DBusInterface interface {
|
||||||
WifiStrength() int
|
WifiStrength() int
|
||||||
IsWifiConnectedNow() bool
|
IsWifiConnectedNow() bool
|
||||||
@ -72,7 +103,11 @@ func NewDBus() *DBus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *DBus) Init() {
|
func (self *DBus) Init() {
|
||||||
|
//conn_option := dbus.WithSignalHandler(self)
|
||||||
|
|
||||||
conn, err := dbus.SystemBus()
|
conn, err := dbus.SystemBus()
|
||||||
|
//conn,err := dbus.SystemBusPrivate(conn_option)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(fmt.Sprintf("Failed to connect to system bus:", err))
|
panic(fmt.Sprintf("Failed to connect to system bus:", err))
|
||||||
}
|
}
|
||||||
@ -164,8 +199,14 @@ func (self *DBus) IsWifiConnectedNow() bool {
|
|||||||
func (self *DBus) ListenSignal() {
|
func (self *DBus) ListenSignal() {
|
||||||
c := make(chan *dbus.Signal, 10)
|
c := make(chan *dbus.Signal, 10)
|
||||||
self.Conn.Signal(c)
|
self.Conn.Signal(c)
|
||||||
|
|
||||||
for v := range c {
|
for v := range c {
|
||||||
fmt.Printf("%+v %#v\n",v,v)
|
fmt.Printf("%+v %#v\n",v,v)
|
||||||
|
fmt.Printf("body len:%d \n\n",len(v.Body))
|
||||||
|
|
||||||
|
self.Wifi.HandleSignal(v)
|
||||||
|
self.Daemon.HandleSignal(v)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,4 +216,7 @@ func init() {
|
|||||||
DBusHandler = NewDBus()
|
DBusHandler = NewDBus()
|
||||||
DBusHandler.Init()
|
DBusHandler.Init()
|
||||||
|
|
||||||
|
go DBusHandler.ListenSignal()
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -821,6 +821,8 @@ func (self *Page) ReturnToUpLevelPage() {
|
|||||||
page_ := pop_page.(PageInterface)
|
page_ := pop_page.(PageInterface)
|
||||||
page_.Draw()
|
page_.Draw()
|
||||||
self.Screen.SetCurPage(page_)
|
self.Screen.SetCurPage(page_)
|
||||||
|
self.Screen.CurrentPage.OnReturnBackCb()
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
if self.Screen.MyPageStack.Length() == 0 {
|
if self.Screen.MyPageStack.Length() == 0 {
|
||||||
if len(self.Screen.Pages) > 0 {
|
if len(self.Screen.Pages) > 0 {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user