From 22ab9c463f0d5ef1227611393d61939175009977 Mon Sep 17 00:00:00 2001 From: cuu Date: Thu, 3 Jan 2019 19:33:39 +0800 Subject: [PATCH] add GetDevices in bluetooth_page --- .../10_Settings/Bluetooth/bluetooth_page.go | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/Menu/GameShell/10_Settings/Bluetooth/bluetooth_page.go b/Menu/GameShell/10_Settings/Bluetooth/bluetooth_page.go index 96027af..50f2d3e 100644 --- a/Menu/GameShell/10_Settings/Bluetooth/bluetooth_page.go +++ b/Menu/GameShell/10_Settings/Bluetooth/bluetooth_page.go @@ -18,7 +18,7 @@ import ( "github.com/cuu/gogame/font" bleapi "github.com/muka/go-bluetooth/api" - + "github.com/muka/go-bluetooth/bluez" "github.com/muka/go-bluetooth/bluez/profile" "github.com/clockworkpi/LauncherGoDev/sysgo/UI" @@ -604,12 +604,43 @@ func (self *BluetoothPage) TryConnect() { self.Screen.FootBar.ResetNavText() } +//GetDevices returns a list of bluetooth discovered Devices +func (self *BluetoothPage) GetDevices() ([]bleapi.Device, error) { + + manager, err := bleapi.GetManager() + if err != nil { + return nil, err + } + + manager.LoadObjects() + + list, err := bleapi.GetDeviceList() + if err != nil { + return nil, err + } + + objects := manager.GetObjects() + + var devices = make([]bleapi.Device, 0) + for _, path := range list { + props := (*objects)[path][bluez.Device1Interface] + dev, err := bleapi.ParseDevice(path, props) + if err != nil { + fmt.Println(err) + return nil, err + } + devices = append(devices, *dev) + } + + return devices, nil +} + func (self *BluetoothPage) RefreshDevices() { // sync the cached devices self.Devices = nil - devices, err := bleapi.GetDevices() + devices, err := self.GetDevices() if err != nil { panic(err) os.Exit(1)