ble_agent_pair_page.go 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. package Bluetooth
  2. import (
  3. "fmt"
  4. //"os"
  5. //"log"
  6. //"strings"
  7. //"github.com/fatih/structs"
  8. /*
  9. "github.com/veandco/go-sdl2/ttf"
  10. "github.com/cuu/gogame/draw"
  11. "github.com/cuu/gogame/surface"
  12. "github.com/cuu/gogame/rect"
  13. "github.com/cuu/gogame/color"
  14. "github.com/cuu/gogame/font"
  15. */
  16. "github.com/cuu/gogame/event"
  17. //"github.com/cuu/gogame/time"
  18. //"github.com/godbus/dbus"
  19. //"github.com/muka/go-bluetooth/api"
  20. //"github.com/muka/go-bluetooth/bluez"
  21. //"github.com/muka/go-bluetooth/bluez/profile"
  22. "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
  23. "github.com/muka/go-bluetooth/bluez/profile/device"
  24. )
  25. type BleAgentPairPage struct {
  26. UI.Page
  27. Pin string
  28. Pass string
  29. DevObj *device.Device1
  30. Leader *BluetoothPlugin
  31. }
  32. func NewBleAgentPairPage() *BleAgentPairPage {
  33. p := &BleAgentPairPage{}
  34. p.PageIconMargin = 20
  35. p.SelectedIconTopOffset = 20
  36. p.EasingDur = 10
  37. p.Align = UI.ALIGN["SLeft"]
  38. p.FootMsg = [5]string{"Nav.", "", "", "Back", ""}
  39. return p
  40. }
  41. func (self *BleAgentPairPage) Init() {
  42. self.PosX = self.Index * self.Screen.Width
  43. self.Width = self.Screen.Width
  44. self.Height = self.Screen.Height
  45. self.CanvasHWND = self.Screen.CanvasHWND
  46. }
  47. func (self *BleAgentPairPage) ShowPinCode(device string, pincode string) {
  48. fmt.Println(fmt.Sprintf("ShowPinCode %s %d", device, pincode))
  49. if self.Screen.CurPage() != self {
  50. self.Screen.PushPage(self)
  51. self.ClearCanvas()
  52. self.Screen.Refresh()
  53. }
  54. self.Pin = pincode
  55. txt := self.Pin
  56. if len(self.Pin) > 0 {
  57. txt = fmt.Sprintf("Pin code: %s", self.Pin)
  58. }
  59. self.Screen.MsgBox.SetText(txt)
  60. self.Screen.MsgBox.Draw()
  61. self.Screen.SwapAndShow()
  62. }
  63. func (self *BleAgentPairPage) ShowPassKey(device string, passkey uint32, entered uint16) {
  64. fmt.Println(fmt.Sprintf("ShowPassKey %06d %d", passkey, entered))
  65. if self.Screen.CurPage() != self {
  66. self.Screen.PushPage(self)
  67. self.ClearCanvas()
  68. self.Screen.Refresh()
  69. }
  70. self.Pass = fmt.Sprintf("%06d", passkey)
  71. txt := self.Pass
  72. if len(self.Pass) > 0 {
  73. txt = fmt.Sprintf("Pair code: %s", self.Pass)
  74. }
  75. self.Screen.MsgBox.SetText(txt)
  76. self.Screen.MsgBox.Draw()
  77. self.Screen.SwapAndShow()
  78. }
  79. func (self *BleAgentPairPage) PairOKCb() {
  80. self.ClearCanvas()
  81. self.Screen.Refresh()
  82. self.Screen.ShowMsg("Device paired",1500)
  83. self.ReturnToUpLevelPage()
  84. self.Screen.Refresh()
  85. self.Screen.FootBar.ResetNavText()
  86. }
  87. func (self *BleAgentPairPage) PairErrorCb(err_msg string) {
  88. self.ClearCanvas()
  89. self.Screen.Refresh()
  90. self.Screen.ShowMsg(err_msg,1500)
  91. self.ReturnToUpLevelPage()
  92. self.Screen.Refresh()
  93. self.Screen.FootBar.ResetNavText()
  94. }
  95. func (self *BleAgentPairPage) KeyDown(ev *event.Event) {
  96. if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
  97. if self.DevObj != nil {
  98. err := self.DevObj.CancelPairing()
  99. if err != nil {
  100. fmt.Println(err)
  101. return
  102. }
  103. }
  104. self.ReturnToUpLevelPage()
  105. self.Screen.Refresh()
  106. }
  107. }
  108. func (self *BleAgentPairPage) Draw() {
  109. // DoNothing
  110. }