ble_agent_pair_page.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  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/time"
  17. "github.com/cuu/gogame/event"
  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/muka/go-bluetooth/bluez/profile/device"
  23. "github.com/clockworkpi/LauncherGoDev/sysgo/UI"
  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.Draw()
  53. self.Screen.SwapAndShow()
  54. }
  55. self.Pin = pincode
  56. txt := self.Pin
  57. if len(self.Pin) > 0 {
  58. txt = fmt.Sprintf("Pin code: %s",self.Pin)
  59. }
  60. self.Screen.MsgBox.SetText(txt)
  61. self.Screen.MsgBox.Draw()
  62. self.Screen.SwapAndShow()
  63. }
  64. func (self *BleAgentPairPage) ShowPassKey(device string,passkey uint32,entered uint16) {
  65. fmt.Println(fmt.Sprintf("ShowPassKey %06d %d",passkey,entered) )
  66. if self.Screen.CurPage() != self {
  67. self.Screen.PushPage(self)
  68. self.ClearCanvas()
  69. self.Screen.Draw()
  70. self.Screen.SwapAndShow()
  71. }
  72. self.Pass = fmt.Sprintf("%06d",passkey)
  73. txt := self.Pass
  74. if len(self.Pass) > 0 {
  75. txt = fmt.Sprintf("Pair code: %s",self.Pass)
  76. }
  77. self.Screen.MsgBox.SetText(txt)
  78. self.Screen.MsgBox.Draw()
  79. self.Screen.SwapAndShow()
  80. }
  81. func (self *BleAgentPairPage) PairOKCb() {
  82. self.ClearCanvas()
  83. self.Screen.Draw()
  84. self.Screen.SwapAndShow()
  85. self.Screen.MsgBox.SetText("Device paired")
  86. self.Screen.MsgBox.Draw()
  87. self.Screen.SwapAndShow()
  88. time.BlockDelay(1500)
  89. self.ReturnToUpLevelPage()
  90. self.Screen.Draw()
  91. self.Screen.SwapAndShow()
  92. self.Screen.FootBar.ResetNavText()
  93. }
  94. func (self *BleAgentPairPage) PairErrorCb( err_msg string) {
  95. self.ClearCanvas()
  96. self.Screen.Draw()
  97. self.Screen.SwapAndShow()
  98. self.Screen.MsgBox.SetText(err_msg)
  99. self.Screen.MsgBox.Draw()
  100. self.Screen.SwapAndShow()
  101. time.BlockDelay(1500)
  102. self.ReturnToUpLevelPage()
  103. self.Screen.Draw()
  104. self.Screen.SwapAndShow()
  105. self.Screen.FootBar.ResetNavText()
  106. }
  107. func (self *BleAgentPairPage) KeyDown(ev *event.Event) {
  108. if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
  109. if self.DevObj != nil {
  110. err := self.DevObj.CancelPairing()
  111. if err != nil {
  112. fmt.Println(err)
  113. return
  114. }
  115. }
  116. self.ReturnToUpLevelPage()
  117. self.Screen.Draw()
  118. self.Screen.SwapAndShow()
  119. }
  120. }
  121. func (self *BleAgentPairPage) Draw() {
  122. // DoNothing
  123. }