plugin_init.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package Bluetooth
  2. import (
  3. "fmt"
  4. "log"
  5. "os"
  6. "github.com/muka/go-bluetooth/api"
  7. "github.com/muka/go-bluetooth/emitter"
  8. "github.com/muka/go-bluetooth/linux"
  9. /*
  10. "github.com/veandco/go-sdl2/ttf"
  11. "github.com/cuu/gogame/surface"
  12. "github.com/cuu/gogame/event"
  13. "github.com/cuu/gogame/rect"
  14. "github.com/cuu/gogame/color"
  15. */
  16. "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
  17. //"github.com/clockworkpi/LauncherGoDev/sysgo/DBUS"
  18. )
  19. /******************************************************************************/
  20. type BluetoothPlugin struct {
  21. UI.Plugin
  22. BluetoothPage *BluetoothPage
  23. }
  24. const (
  25. adapterID = "hci0"
  26. )
  27. func (self *BluetoothPlugin) Init( main_screen *UI.MainScreen ) {
  28. log.Println("Reset bluetooth device")
  29. a := linux.NewBtMgmt(adapterID)
  30. err := a.Reset()
  31. if err != nil {
  32. log.Fatal(err)
  33. os.Exit(1)
  34. }
  35. self.BluetoothPage = NewBluetoothPage()
  36. self.BluetoothPage.SetScreen( main_screen)
  37. self.BluetoothPage.SetName("Bluetooth")
  38. self.BluetoothPage.Init()
  39. err = api.On("discovery", emitter.NewCallback(func(ev emitter.Event) {
  40. //discoveryEvent := ev.GetData().(api.DiscoveredDeviceEvent)
  41. //dev := discoveryEvent.Device
  42. //showDeviceInfo(dev)
  43. self.BluetoothPage.RefreshDevices()
  44. self.BluetoothPage.GenNetworkList()
  45. main_screen.Draw()
  46. main_screen.SwapAndShow()
  47. }))
  48. if err != nil {
  49. fmt.Println(err)
  50. }
  51. }
  52. func (self *BluetoothPlugin) Run( main_screen *UI.MainScreen ) {
  53. if main_screen != nil {
  54. main_screen.PushCurPage()
  55. main_screen.SetCurPage(self.BluetoothPage)
  56. main_screen.Draw()
  57. main_screen.SwapAndShow()
  58. }
  59. }
  60. var APIOBJ BluetoothPlugin