simpleble 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +88 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +350 -0
  5. data/ext/simpleble/extconf.rb +57 -0
  6. data/ext/simpleble/simpleble_ruby.c +682 -0
  7. data/lib/simpleble/adapter.rb +10 -0
  8. data/lib/simpleble/characteristic.rb +36 -0
  9. data/lib/simpleble/descriptor.rb +8 -0
  10. data/lib/simpleble/exceptions.rb +25 -0
  11. data/lib/simpleble/peripheral.rb +64 -0
  12. data/lib/simpleble/service.rb +16 -0
  13. data/lib/simpleble/version.rb +3 -0
  14. data/lib/simpleble.rb +40 -0
  15. data/vendor/simpleble/build_simplecble/CMakeFiles/4.0.3/CompilerIdCXX/CMakeCXXCompilerId.cpp +920 -0
  16. data/vendor/simpleble/build_simplecble/CMakeFiles/4.0.3/CompilerIdCXX/apple-sdk.cpp +1 -0
  17. data/vendor/simpleble/build_simplecble/CMakeFiles/4.1.0/CompilerIdCXX/CMakeCXXCompilerId.cpp +949 -0
  18. data/vendor/simpleble/build_simplecble/CMakeFiles/4.1.0/CompilerIdCXX/apple-sdk.cpp +1 -0
  19. data/vendor/simpleble/build_simplecble/export/simplecble/export.h +43 -0
  20. data/vendor/simpleble/build_simplecble/simpleble/export/simpleble/export.h +43 -0
  21. data/vendor/simpleble/dependencies/external/kvn/kvn_bytearray.h +222 -0
  22. data/vendor/simpleble/dependencies/external/kvn/kvn_safe_callback.hpp +66 -0
  23. data/vendor/simpleble/dependencies/external/kvn/logfwd.hpp +35 -0
  24. data/vendor/simpleble/dependencies/internal/fmt/args.h +220 -0
  25. data/vendor/simpleble/dependencies/internal/fmt/base.h +2962 -0
  26. data/vendor/simpleble/dependencies/internal/fmt/chrono.h +2338 -0
  27. data/vendor/simpleble/dependencies/internal/fmt/color.h +610 -0
  28. data/vendor/simpleble/dependencies/internal/fmt/compile.h +539 -0
  29. data/vendor/simpleble/dependencies/internal/fmt/core.h +5 -0
  30. data/vendor/simpleble/dependencies/internal/fmt/format-inl.h +1949 -0
  31. data/vendor/simpleble/dependencies/internal/fmt/format.h +4244 -0
  32. data/vendor/simpleble/dependencies/internal/fmt/os.h +427 -0
  33. data/vendor/simpleble/dependencies/internal/fmt/ostream.h +166 -0
  34. data/vendor/simpleble/dependencies/internal/fmt/printf.h +633 -0
  35. data/vendor/simpleble/dependencies/internal/fmt/ranges.h +850 -0
  36. data/vendor/simpleble/dependencies/internal/fmt/std.h +726 -0
  37. data/vendor/simpleble/dependencies/internal/fmt/xchar.h +373 -0
  38. data/vendor/simpleble/dependencies/internal/simplejni/Common.hpp +579 -0
  39. data/vendor/simpleble/dependencies/internal/simplejni/References.hpp +151 -0
  40. data/vendor/simpleble/dependencies/internal/simplejni/Registry.hpp +183 -0
  41. data/vendor/simpleble/dependencies/internal/simplejni/VM.hpp +88 -0
  42. data/vendor/simpleble/examples/simpleble/src/connect.cpp +67 -0
  43. data/vendor/simpleble/examples/simpleble/src/connect_safe.cpp +91 -0
  44. data/vendor/simpleble/examples/simpleble/src/list_adapters.cpp +22 -0
  45. data/vendor/simpleble/examples/simpleble/src/list_adapters_safe.cpp +33 -0
  46. data/vendor/simpleble/examples/simpleble/src/list_paired.cpp +27 -0
  47. data/vendor/simpleble/examples/simpleble/src/multiconnect.cpp +60 -0
  48. data/vendor/simpleble/examples/simpleble/src/notify.cpp +85 -0
  49. data/vendor/simpleble/examples/simpleble/src/notify_multi.cpp +101 -0
  50. data/vendor/simpleble/examples/simpleble/src/power_cycle.cpp +43 -0
  51. data/vendor/simpleble/examples/simpleble/src/read.cpp +82 -0
  52. data/vendor/simpleble/examples/simpleble/src/scan.cpp +62 -0
  53. data/vendor/simpleble/examples/simpleble/src/utils.cpp +59 -0
  54. data/vendor/simpleble/examples/simpleble/src/utils.hpp +27 -0
  55. data/vendor/simpleble/examples/simpleble/src/write.cpp +81 -0
  56. data/vendor/simpleble/examples/simplebluez/ble_nus/ble_nus.cpp +138 -0
  57. data/vendor/simpleble/examples/simplebluez/connect/connect.cpp +119 -0
  58. data/vendor/simpleble/examples/simplebluez/list_adapters/list_adapters.cpp +44 -0
  59. data/vendor/simpleble/examples/simplebluez/list_paired/list_paired.cpp +48 -0
  60. data/vendor/simpleble/examples/simplebluez/notify/notify.cpp +145 -0
  61. data/vendor/simpleble/examples/simplebluez/pair/pair.cpp +181 -0
  62. data/vendor/simpleble/examples/simplebluez/read/read.cpp +141 -0
  63. data/vendor/simpleble/examples/simplebluez/scan/scan.cpp +85 -0
  64. data/vendor/simpleble/examples/simplecble/c/connect.c +163 -0
  65. data/vendor/simpleble/examples/simplecble/c/notify.c +217 -0
  66. data/vendor/simpleble/examples/simplecble/c/scan.c +164 -0
  67. data/vendor/simpleble/examples/simpledbus/notification.cpp +24 -0
  68. data/vendor/simpleble/hitl/src/test_sanity.cpp +48 -0
  69. data/vendor/simpleble/install_simplecble/include/simpleble/Adapter.h +102 -0
  70. data/vendor/simpleble/install_simplecble/include/simpleble/AdapterSafe.h +58 -0
  71. data/vendor/simpleble/install_simplecble/include/simpleble/Advanced.h +50 -0
  72. data/vendor/simpleble/install_simplecble/include/simpleble/Characteristic.h +39 -0
  73. data/vendor/simpleble/install_simplecble/include/simpleble/Config.h +55 -0
  74. data/vendor/simpleble/install_simplecble/include/simpleble/Descriptor.h +30 -0
  75. data/vendor/simpleble/install_simplecble/include/simpleble/Exceptions.h +72 -0
  76. data/vendor/simpleble/install_simplecble/include/simpleble/Logging.h +73 -0
  77. data/vendor/simpleble/install_simplecble/include/simpleble/Peripheral.h +82 -0
  78. data/vendor/simpleble/install_simplecble/include/simpleble/PeripheralSafe.h +64 -0
  79. data/vendor/simpleble/install_simplecble/include/simpleble/Service.h +34 -0
  80. data/vendor/simpleble/install_simplecble/include/simpleble/SimpleBLE.h +8 -0
  81. data/vendor/simpleble/install_simplecble/include/simpleble/Types.h +49 -0
  82. data/vendor/simpleble/install_simplecble/include/simpleble/Utils.h +13 -0
  83. data/vendor/simpleble/install_simplecble/include/simpleble/export.h +43 -0
  84. data/vendor/simpleble/install_simplecble/include/simpleble/kvn/kvn_bytearray.h +222 -0
  85. data/vendor/simpleble/install_simplecble/include/simplecble/adapter.h +188 -0
  86. data/vendor/simpleble/install_simplecble/include/simplecble/logging.h +37 -0
  87. data/vendor/simpleble/install_simplecble/include/simplecble/peripheral.h +304 -0
  88. data/vendor/simpleble/install_simplecble/include/simplecble/simpleble.h +21 -0
  89. data/vendor/simpleble/install_simplecble/include/simplecble/types.h +73 -0
  90. data/vendor/simpleble/install_simplecble/include/simplecble/utils.h +27 -0
  91. data/vendor/simpleble/simpleble/include/simpleble/Adapter.h +102 -0
  92. data/vendor/simpleble/simpleble/include/simpleble/AdapterSafe.h +58 -0
  93. data/vendor/simpleble/simpleble/include/simpleble/Characteristic.h +39 -0
  94. data/vendor/simpleble/simpleble/include/simpleble/Config.h +55 -0
  95. data/vendor/simpleble/simpleble/include/simpleble/Descriptor.h +30 -0
  96. data/vendor/simpleble/simpleble/include/simpleble/Exceptions.h +72 -0
  97. data/vendor/simpleble/simpleble/include/simpleble/Logging.h +73 -0
  98. data/vendor/simpleble/simpleble/include/simpleble/Peripheral.h +82 -0
  99. data/vendor/simpleble/simpleble/include/simpleble/PeripheralSafe.h +64 -0
  100. data/vendor/simpleble/simpleble/include/simpleble/Service.h +34 -0
  101. data/vendor/simpleble/simpleble/include/simpleble/SimpleBLE.h +8 -0
  102. data/vendor/simpleble/simpleble/include/simpleble/Types.h +49 -0
  103. data/vendor/simpleble/simpleble/include/simpleble/Utils.h +13 -0
  104. data/vendor/simpleble/simpleble/include/simpleble_c/adapter.h +188 -0
  105. data/vendor/simpleble/simpleble/include/simpleble_c/logging.h +37 -0
  106. data/vendor/simpleble/simpleble/include/simpleble_c/peripheral.h +304 -0
  107. data/vendor/simpleble/simpleble/include/simpleble_c/simpleble.h +21 -0
  108. data/vendor/simpleble/simpleble/include/simpleble_c/types.h +73 -0
  109. data/vendor/simpleble/simpleble/include/simpleble_c/utils.h +27 -0
  110. data/vendor/simpleble/simpleble/src/CommonUtils.h +63 -0
  111. data/vendor/simpleble/simpleble/src/Exceptions.cpp +31 -0
  112. data/vendor/simpleble/simpleble/src/Logging.cpp +136 -0
  113. data/vendor/simpleble/simpleble/src/LoggingInternal.h +85 -0
  114. data/vendor/simpleble/simpleble/src/Utils.cpp +24 -0
  115. data/vendor/simpleble/simpleble/src/backends/android/AdapterAndroid.cpp +101 -0
  116. data/vendor/simpleble/simpleble/src/backends/android/AdapterAndroid.h +70 -0
  117. data/vendor/simpleble/simpleble/src/backends/android/BackendAndroid.cpp +40 -0
  118. data/vendor/simpleble/simpleble/src/backends/android/BackendAndroid.h +20 -0
  119. data/vendor/simpleble/simpleble/src/backends/android/PeripheralAndroid.cpp +365 -0
  120. data/vendor/simpleble/simpleble/src/backends/android/PeripheralAndroid.h +90 -0
  121. data/vendor/simpleble/simpleble/src/backends/android/bridge/BluetoothGattCallback.cpp +432 -0
  122. data/vendor/simpleble/simpleble/src/backends/android/bridge/BluetoothGattCallback.h +102 -0
  123. data/vendor/simpleble/simpleble/src/backends/android/bridge/ScanCallback.cpp +142 -0
  124. data/vendor/simpleble/simpleble/src/backends/android/bridge/ScanCallback.h +55 -0
  125. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothAdapter.cpp +107 -0
  126. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothAdapter.h +55 -0
  127. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothDevice.cpp +68 -0
  128. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothDevice.h +54 -0
  129. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGatt.cpp +115 -0
  130. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGatt.h +75 -0
  131. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattCharacteristic.cpp +142 -0
  132. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattCharacteristic.h +66 -0
  133. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattDescriptor.cpp +67 -0
  134. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattDescriptor.h +46 -0
  135. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattService.cpp +106 -0
  136. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattService.h +47 -0
  137. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/BluetoothScanner.cpp +47 -0
  138. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/BluetoothScanner.h +37 -0
  139. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanRecord.cpp +69 -0
  140. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanRecord.h +41 -0
  141. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanResult.cpp +63 -0
  142. data/vendor/simpleble/simpleble/src/backends/android/types/android/bluetooth/le/ScanResult.h +42 -0
  143. data/vendor/simpleble/simpleble/src/backends/android/types/android/os/ParcelUUID.cpp +32 -0
  144. data/vendor/simpleble/simpleble/src/backends/android/types/android/os/ParcelUUID.h +30 -0
  145. data/vendor/simpleble/simpleble/src/backends/android/types/android/util/SparseArray.cpp +54 -0
  146. data/vendor/simpleble/simpleble/src/backends/android/types/android/util/SparseArray.h +37 -0
  147. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Iterator.cpp +36 -0
  148. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Iterator.h +28 -0
  149. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/List.cpp +29 -0
  150. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/List.h +27 -0
  151. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Set.cpp +33 -0
  152. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/Set.h +28 -0
  153. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/UUID.cpp +26 -0
  154. data/vendor/simpleble/simpleble/src/backends/android/types/java/util/UUID.h +29 -0
  155. data/vendor/simpleble/simpleble/src/backends/common/AdapterBase.cpp +53 -0
  156. data/vendor/simpleble/simpleble/src/backends/common/AdapterBase.h +81 -0
  157. data/vendor/simpleble/simpleble/src/backends/common/AdapterBaseTypes.h +22 -0
  158. data/vendor/simpleble/simpleble/src/backends/common/BackendBase.h +20 -0
  159. data/vendor/simpleble/simpleble/src/backends/common/BackendUtils.h +33 -0
  160. data/vendor/simpleble/simpleble/src/backends/common/CharacteristicBase.cpp +28 -0
  161. data/vendor/simpleble/simpleble/src/backends/common/CharacteristicBase.h +38 -0
  162. data/vendor/simpleble/simpleble/src/backends/common/DescriptorBase.cpp +7 -0
  163. data/vendor/simpleble/simpleble/src/backends/common/DescriptorBase.h +19 -0
  164. data/vendor/simpleble/simpleble/src/backends/common/PeripheralBase.h +82 -0
  165. data/vendor/simpleble/simpleble/src/backends/common/ServiceBase.cpp +18 -0
  166. data/vendor/simpleble/simpleble/src/backends/common/ServiceBase.h +28 -0
  167. data/vendor/simpleble/simpleble/src/backends/linux/AdapterLinux.cpp +102 -0
  168. data/vendor/simpleble/simpleble/src/backends/linux/AdapterLinux.h +55 -0
  169. data/vendor/simpleble/simpleble/src/backends/linux/BackendBluez.cpp +87 -0
  170. data/vendor/simpleble/simpleble/src/backends/linux/PeripheralLinux.cpp +376 -0
  171. data/vendor/simpleble/simpleble/src/backends/linux/PeripheralLinux.h +90 -0
  172. data/vendor/simpleble/simpleble/src/backends/macos/AdapterBaseMacOS.h +29 -0
  173. data/vendor/simpleble/simpleble/src/backends/macos/AdapterMac.h +78 -0
  174. data/vendor/simpleble/simpleble/src/backends/macos/PeripheralBaseMacOS.h +49 -0
  175. data/vendor/simpleble/simpleble/src/backends/macos/PeripheralMac.h +81 -0
  176. data/vendor/simpleble/simpleble/src/backends/macos/Utils.h +9 -0
  177. data/vendor/simpleble/simpleble/src/backends/plain/AdapterPlain.cpp +65 -0
  178. data/vendor/simpleble/simpleble/src/backends/plain/AdapterPlain.h +49 -0
  179. data/vendor/simpleble/simpleble/src/backends/plain/BackendPlain.cpp +30 -0
  180. data/vendor/simpleble/simpleble/src/backends/plain/PeripheralPlain.cpp +159 -0
  181. data/vendor/simpleble/simpleble/src/backends/plain/PeripheralPlain.h +72 -0
  182. data/vendor/simpleble/simpleble/src/backends/windows/AdapterWindows.cpp +330 -0
  183. data/vendor/simpleble/simpleble/src/backends/windows/AdapterWindows.h +89 -0
  184. data/vendor/simpleble/simpleble/src/backends/windows/BackendWinRT.cpp +67 -0
  185. data/vendor/simpleble/simpleble/src/backends/windows/BackendWinRT.h +18 -0
  186. data/vendor/simpleble/simpleble/src/backends/windows/MtaManager.cpp +49 -0
  187. data/vendor/simpleble/simpleble/src/backends/windows/MtaManager.h +90 -0
  188. data/vendor/simpleble/simpleble/src/backends/windows/PeripheralWindows.cpp +487 -0
  189. data/vendor/simpleble/simpleble/src/backends/windows/PeripheralWindows.h +129 -0
  190. data/vendor/simpleble/simpleble/src/backends/windows/Utils.cpp +146 -0
  191. data/vendor/simpleble/simpleble/src/backends/windows/Utils.h +47 -0
  192. data/vendor/simpleble/simpleble/src/builders/BuildVec.h +32 -0
  193. data/vendor/simpleble/simpleble/src/builders/BuilderBase.h +87 -0
  194. data/vendor/simpleble/simpleble/src/external/TaskRunner.hpp +99 -0
  195. data/vendor/simpleble/simpleble/src/external/ThreadRunner.h +52 -0
  196. data/vendor/simpleble/simpleble/src/external/kvn_safe_callback.hpp +66 -0
  197. data/vendor/simpleble/simpleble/src/external/kvn_safe_map.hpp +94 -0
  198. data/vendor/simpleble/simpleble/src/external/kvn_threadrunner.hpp +70 -0
  199. data/vendor/simpleble/simpleble/src/external/logfwd.hpp +35 -0
  200. data/vendor/simpleble/simpleble/src/frontends/base/Adapter.cpp +111 -0
  201. data/vendor/simpleble/simpleble/src/frontends/base/Backend.cpp +83 -0
  202. data/vendor/simpleble/simpleble/src/frontends/base/Backend.h +76 -0
  203. data/vendor/simpleble/simpleble/src/frontends/base/Characteristic.cpp +56 -0
  204. data/vendor/simpleble/simpleble/src/frontends/base/Descriptor.cpp +21 -0
  205. data/vendor/simpleble/simpleble/src/frontends/base/Peripheral.cpp +113 -0
  206. data/vendor/simpleble/simpleble/src/frontends/base/Service.cpp +26 -0
  207. data/vendor/simpleble/simpleble/src/frontends/safe/AdapterSafe.cpp +158 -0
  208. data/vendor/simpleble/simpleble/src/frontends/safe/PeripheralSafe.cpp +219 -0
  209. data/vendor/simpleble/simpleble/src_c/adapter.cpp +204 -0
  210. data/vendor/simpleble/simpleble/src_c/logging.cpp +19 -0
  211. data/vendor/simpleble/simpleble/src_c/peripheral.cpp +444 -0
  212. data/vendor/simpleble/simpleble/src_c/simpleble.cpp +5 -0
  213. data/vendor/simpleble/simpleble/src_c/utils.cpp +15 -0
  214. data/vendor/simpleble/simpleble/test/src/main.cpp +8 -0
  215. data/vendor/simpleble/simpleble/test/src/test_bytearray.cpp +246 -0
  216. data/vendor/simpleble/simpleble/test/src/test_utils.cpp +24 -0
  217. data/vendor/simpleble/simplebluez/include/simplebluez/Adapter.h +46 -0
  218. data/vendor/simpleble/simplebluez/include/simplebluez/Agent.h +52 -0
  219. data/vendor/simpleble/simplebluez/include/simplebluez/Bluez.h +37 -0
  220. data/vendor/simpleble/simplebluez/include/simplebluez/BluezOrg.h +22 -0
  221. data/vendor/simpleble/simplebluez/include/simplebluez/BluezOrgBluez.h +26 -0
  222. data/vendor/simpleble/simplebluez/include/simplebluez/BluezRoot.h +32 -0
  223. data/vendor/simpleble/simplebluez/include/simplebluez/Characteristic.h +46 -0
  224. data/vendor/simpleble/simplebluez/include/simplebluez/Descriptor.h +33 -0
  225. data/vendor/simpleble/simplebluez/include/simplebluez/Device.h +64 -0
  226. data/vendor/simpleble/simplebluez/include/simplebluez/Exceptions.h +43 -0
  227. data/vendor/simpleble/simplebluez/include/simplebluez/Service.h +27 -0
  228. data/vendor/simpleble/simplebluez/include/simplebluez/Types.h +9 -0
  229. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Adapter1.h +49 -0
  230. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Agent1.h +100 -0
  231. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/AgentManager1.h +24 -0
  232. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Battery1.h +32 -0
  233. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/Device1.h +62 -0
  234. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/GattCharacteristic1.h +48 -0
  235. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/GattDescriptor1.h +41 -0
  236. data/vendor/simpleble/simplebluez/include/simplebluez/interfaces/GattService1.h +28 -0
  237. data/vendor/simpleble/simplebluez/src/Adapter.cpp +78 -0
  238. data/vendor/simpleble/simplebluez/src/Agent.cpp +72 -0
  239. data/vendor/simpleble/simplebluez/src/Bluez.cpp +45 -0
  240. data/vendor/simpleble/simplebluez/src/BluezOrg.cpp +20 -0
  241. data/vendor/simpleble/simplebluez/src/BluezOrgBluez.cpp +23 -0
  242. data/vendor/simpleble/simplebluez/src/BluezRoot.cpp +44 -0
  243. data/vendor/simpleble/simplebluez/src/Characteristic.cpp +64 -0
  244. data/vendor/simpleble/simplebluez/src/Descriptor.cpp +27 -0
  245. data/vendor/simpleble/simplebluez/src/Device.cpp +104 -0
  246. data/vendor/simpleble/simplebluez/src/Exceptions.cpp +29 -0
  247. data/vendor/simpleble/simplebluez/src/Logging.cpp +52 -0
  248. data/vendor/simpleble/simplebluez/src/Logging.h +57 -0
  249. data/vendor/simpleble/simplebluez/src/Service.cpp +33 -0
  250. data/vendor/simpleble/simplebluez/src/interfaces/Adapter1.cpp +123 -0
  251. data/vendor/simpleble/simplebluez/src/interfaces/Agent1.cpp +143 -0
  252. data/vendor/simpleble/simplebluez/src/interfaces/AgentManager1.cpp +34 -0
  253. data/vendor/simpleble/simplebluez/src/interfaces/Battery1.cpp +30 -0
  254. data/vendor/simpleble/simplebluez/src/interfaces/Device1.cpp +170 -0
  255. data/vendor/simpleble/simplebluez/src/interfaces/GattCharacteristic1.cpp +118 -0
  256. data/vendor/simpleble/simplebluez/src/interfaces/GattDescriptor1.cpp +78 -0
  257. data/vendor/simpleble/simplebluez/src/interfaces/GattService1.cpp +28 -0
  258. data/vendor/simpleble/simplebluez/test/src/helpers/PythonRunner.cpp +53 -0
  259. data/vendor/simpleble/simplebluez/test/src/helpers/PythonRunner.h +24 -0
  260. data/vendor/simpleble/simplebluez/test/src/main.cpp +16 -0
  261. data/vendor/simpleble/simplecble/include/simplecble/adapter.h +188 -0
  262. data/vendor/simpleble/simplecble/include/simplecble/logging.h +37 -0
  263. data/vendor/simpleble/simplecble/include/simplecble/peripheral.h +304 -0
  264. data/vendor/simpleble/simplecble/include/simplecble/simpleble.h +21 -0
  265. data/vendor/simpleble/simplecble/include/simplecble/types.h +73 -0
  266. data/vendor/simpleble/simplecble/include/simplecble/utils.h +27 -0
  267. data/vendor/simpleble/simplecble/src/adapter.cpp +204 -0
  268. data/vendor/simpleble/simplecble/src/logging.cpp +19 -0
  269. data/vendor/simpleble/simplecble/src/peripheral.cpp +444 -0
  270. data/vendor/simpleble/simplecble/src/simpleble.cpp +5 -0
  271. data/vendor/simpleble/simplecble/src/utils.cpp +15 -0
  272. data/vendor/simpleble/simpledbus/include/simpledbus/advanced/Interface.h +67 -0
  273. data/vendor/simpleble/simpledbus/include/simpledbus/advanced/InterfaceRegistry.h +64 -0
  274. data/vendor/simpleble/simpledbus/include/simpledbus/advanced/Proxy.h +117 -0
  275. data/vendor/simpleble/simpledbus/include/simpledbus/base/Connection.h +50 -0
  276. data/vendor/simpleble/simpledbus/include/simpledbus/base/Exceptions.h +56 -0
  277. data/vendor/simpleble/simpledbus/include/simpledbus/base/Holder.h +147 -0
  278. data/vendor/simpleble/simpledbus/include/simpledbus/base/Logging.h +57 -0
  279. data/vendor/simpleble/simpledbus/include/simpledbus/base/Message.h +89 -0
  280. data/vendor/simpleble/simpledbus/include/simpledbus/base/Path.h +24 -0
  281. data/vendor/simpleble/simpledbus/include/simpledbus/interfaces/ObjectManager.h +26 -0
  282. data/vendor/simpleble/simpledbus/src/advanced/Interface.cpp +155 -0
  283. data/vendor/simpleble/simpledbus/src/advanced/Proxy.cpp +375 -0
  284. data/vendor/simpleble/simpledbus/src/base/Connection.cpp +222 -0
  285. data/vendor/simpleble/simpledbus/src/base/Exceptions.cpp +39 -0
  286. data/vendor/simpleble/simpledbus/src/base/Holder.cpp +739 -0
  287. data/vendor/simpleble/simpledbus/src/base/Logging.cpp +52 -0
  288. data/vendor/simpleble/simpledbus/src/base/Message.cpp +622 -0
  289. data/vendor/simpleble/simpledbus/src/base/Path.cpp +129 -0
  290. data/vendor/simpleble/simpledbus/src/interfaces/ObjectManager.cpp +58 -0
  291. data/vendor/simpleble/simpledbus/test/src/helpers/PythonRunner.cpp +53 -0
  292. data/vendor/simpleble/simpledbus/test/src/helpers/PythonRunner.h +24 -0
  293. data/vendor/simpleble/simpledbus/test/src/main.cpp +16 -0
  294. data/vendor/simpleble/simpledbus/test/src/test_holder.cpp +184 -0
  295. data/vendor/simpleble/simpledbus/test/src/test_message.cpp +397 -0
  296. data/vendor/simpleble/simpledbus/test/src/test_path.cpp +76 -0
  297. data/vendor/simpleble/simpledbus/test/src/test_proxy_children.cpp +109 -0
  298. data/vendor/simpleble/simpledbus/test/src/test_proxy_interfaces.cpp +102 -0
  299. data/vendor/simpleble/simpledbus/test/src/test_proxy_lifetime.cpp +18 -0
  300. data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/ThreadRunner.h +89 -0
  301. data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/android_utils.cpp +55 -0
  302. data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/android_utils.h +18 -0
  303. data/vendor/simpleble/simpledroidble/simpledroidble/src/main/cpp/simpleble_android.cpp +813 -0
  304. data/vendor/simpleble/simplejavable/cpp/src/core/AdapterWrapper.cpp +37 -0
  305. data/vendor/simpleble/simplejavable/cpp/src/core/AdapterWrapper.h +23 -0
  306. data/vendor/simpleble/simplejavable/cpp/src/core/Cache.cpp +58 -0
  307. data/vendor/simpleble/simplejavable/cpp/src/core/Cache.h +34 -0
  308. data/vendor/simpleble/simplejavable/cpp/src/core/PeripheralWrapper.cpp +17 -0
  309. data/vendor/simpleble/simplejavable/cpp/src/core/PeripheralWrapper.h +19 -0
  310. data/vendor/simpleble/simplejavable/cpp/src/java/lang/ArrayList.cpp +257 -0
  311. data/vendor/simpleble/simplejavable/cpp/src/java/lang/ArrayList.h +78 -0
  312. data/vendor/simpleble/simplejavable/cpp/src/java/lang/HashMap.cpp +96 -0
  313. data/vendor/simpleble/simplejavable/cpp/src/java/lang/HashMap.h +54 -0
  314. data/vendor/simpleble/simplejavable/cpp/src/java/lang/Integer.cpp +93 -0
  315. data/vendor/simpleble/simplejavable/cpp/src/java/lang/Integer.h +49 -0
  316. data/vendor/simpleble/simplejavable/cpp/src/java/lang/Iterator.cpp +85 -0
  317. data/vendor/simpleble/simplejavable/cpp/src/java/lang/Iterator.h +48 -0
  318. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/AdapterCallback.cpp +91 -0
  319. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/AdapterCallback.h +90 -0
  320. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Characteristic.cpp +35 -0
  321. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Characteristic.h +60 -0
  322. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/DataCallback.cpp +33 -0
  323. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/DataCallback.h +45 -0
  324. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Descriptor.cpp +30 -0
  325. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Descriptor.h +49 -0
  326. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/PeripheralCallback.cpp +41 -0
  327. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/PeripheralCallback.h +51 -0
  328. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Service.cpp +33 -0
  329. data/vendor/simpleble/simplejavable/cpp/src/org/simplejavable/Service.h +54 -0
  330. data/vendor/simpleble/simplejavable/cpp/src/simplejavable.cpp +361 -0
  331. data/vendor/simpleble/simplepyble/src/main.cpp +55 -0
  332. data/vendor/simpleble/simplepyble/src/wrap_adapter.cpp +106 -0
  333. data/vendor/simpleble/simplepyble/src/wrap_characteristic.cpp +56 -0
  334. data/vendor/simpleble/simplepyble/src/wrap_config.cpp +136 -0
  335. data/vendor/simpleble/simplepyble/src/wrap_descriptor.cpp +21 -0
  336. data/vendor/simpleble/simplepyble/src/wrap_peripheral.cpp +217 -0
  337. data/vendor/simpleble/simplepyble/src/wrap_service.cpp +32 -0
  338. data/vendor/simpleble/simplepyble/src/wrap_types.cpp +21 -0
  339. data/vendor/simpleble/simplersble/src/bindings/Bindings.cpp +338 -0
  340. data/vendor/simpleble/simplersble/src/bindings/Bindings.hpp +178 -0
  341. metadata +430 -0
@@ -0,0 +1,219 @@
1
+ #include <simpleble/Exceptions.h>
2
+ #include <simpleble/PeripheralSafe.h>
3
+
4
+ using namespace SimpleBLE::Safe;
5
+
6
+ using SPeripheral = SimpleBLE::Safe::Peripheral;
7
+ using UPeripheral = SimpleBLE::Peripheral;
8
+
9
+ SPeripheral::Peripheral(UPeripheral& peripheral) : internal_(peripheral) {}
10
+ SPeripheral::Peripheral(UPeripheral&& peripheral) : internal_(std::move(peripheral)) {}
11
+
12
+ std::optional<std::string> SPeripheral::identifier() noexcept {
13
+ try {
14
+ return internal_.identifier();
15
+ } catch (...) {
16
+ return std::nullopt;
17
+ }
18
+ }
19
+
20
+ std::optional<SimpleBLE::BluetoothAddress> SPeripheral::address() noexcept {
21
+ try {
22
+ return internal_.address();
23
+ } catch (...) {
24
+ return std::nullopt;
25
+ }
26
+ }
27
+
28
+ std::optional<SimpleBLE::BluetoothAddressType> SPeripheral::address_type() noexcept {
29
+ try {
30
+ return internal_.address_type();
31
+ } catch (...) {
32
+ return std::nullopt;
33
+ }
34
+ }
35
+
36
+ std::optional<int16_t> SPeripheral::rssi() noexcept {
37
+ try {
38
+ return internal_.rssi();
39
+ } catch (...) {
40
+ return std::nullopt;
41
+ }
42
+ }
43
+
44
+ std::optional<int16_t> SPeripheral::tx_power() noexcept {
45
+ try {
46
+ return internal_.tx_power();
47
+ } catch (...) {
48
+ return std::nullopt;
49
+ }
50
+ }
51
+ std::optional<uint16_t> SPeripheral::mtu() noexcept {
52
+ try {
53
+ return internal_.mtu();
54
+ } catch (...) {
55
+ return std::nullopt;
56
+ }
57
+ }
58
+
59
+ bool SPeripheral::connect() noexcept {
60
+ try {
61
+ internal_.connect();
62
+ return true;
63
+ } catch (...) {
64
+ return false;
65
+ }
66
+ }
67
+
68
+ bool SPeripheral::disconnect() noexcept {
69
+ try {
70
+ internal_.disconnect();
71
+ return true;
72
+ } catch (...) {
73
+ return false;
74
+ }
75
+ }
76
+
77
+ std::optional<bool> SPeripheral::is_connected() noexcept {
78
+ try {
79
+ return internal_.is_connected();
80
+ } catch (...) {
81
+ return std::nullopt;
82
+ }
83
+ }
84
+
85
+ std::optional<bool> SPeripheral::is_connectable() noexcept {
86
+ try {
87
+ return internal_.is_connectable();
88
+ } catch (...) {
89
+ return std::nullopt;
90
+ }
91
+ }
92
+
93
+ std::optional<bool> SPeripheral::is_paired() noexcept {
94
+ try {
95
+ return internal_.is_paired();
96
+ } catch (...) {
97
+ return std::nullopt;
98
+ }
99
+ }
100
+
101
+ bool SPeripheral::unpair() noexcept {
102
+ try {
103
+ internal_.unpair();
104
+ return true;
105
+ } catch (...) {
106
+ return false;
107
+ }
108
+ }
109
+
110
+ std::optional<std::map<uint16_t, SimpleBLE::ByteArray>> SPeripheral::manufacturer_data() noexcept {
111
+ try {
112
+ return internal_.manufacturer_data();
113
+ } catch (...) {
114
+ return std::nullopt;
115
+ }
116
+ }
117
+
118
+ std::optional<std::vector<SimpleBLE::Service>> SPeripheral::services() noexcept {
119
+ try {
120
+ return internal_.services();
121
+ } catch (...) {
122
+ return std::nullopt;
123
+ }
124
+ }
125
+
126
+ std::optional<SimpleBLE::ByteArray> SPeripheral::read(BluetoothUUID const& service,
127
+ BluetoothUUID const& characteristic) noexcept {
128
+ try {
129
+ return internal_.read(service, characteristic);
130
+ } catch (...) {
131
+ return std::nullopt;
132
+ }
133
+ }
134
+
135
+ bool SPeripheral::write_request(BluetoothUUID const& service, BluetoothUUID const& characteristic,
136
+ ByteArray const& data) noexcept {
137
+ try {
138
+ internal_.write_request(service, characteristic, data);
139
+ return true;
140
+ } catch (...) {
141
+ return false;
142
+ }
143
+ }
144
+
145
+ bool SPeripheral::write_command(BluetoothUUID const& service, BluetoothUUID const& characteristic,
146
+ ByteArray const& data) noexcept {
147
+ try {
148
+ internal_.write_command(service, characteristic, data);
149
+ return true;
150
+ } catch (...) {
151
+ return false;
152
+ }
153
+ }
154
+
155
+ bool SPeripheral::notify(BluetoothUUID const& service, BluetoothUUID const& characteristic,
156
+ std::function<void(ByteArray payload)> callback) noexcept {
157
+ try {
158
+ internal_.notify(service, characteristic, std::move(callback));
159
+ return true;
160
+ } catch (...) {
161
+ return false;
162
+ }
163
+ }
164
+
165
+ bool SPeripheral::indicate(BluetoothUUID const& service, BluetoothUUID const& characteristic,
166
+ std::function<void(ByteArray payload)> callback) noexcept {
167
+ try {
168
+ internal_.indicate(service, characteristic, std::move(callback));
169
+ return true;
170
+ } catch (...) {
171
+ return false;
172
+ }
173
+ }
174
+
175
+ bool SPeripheral::unsubscribe(BluetoothUUID const& service, BluetoothUUID const& characteristic) noexcept {
176
+ try {
177
+ internal_.unsubscribe(service, characteristic);
178
+ return true;
179
+ } catch (...) {
180
+ return false;
181
+ }
182
+ }
183
+
184
+ std::optional<SimpleBLE::ByteArray> SPeripheral::read(BluetoothUUID const& service, BluetoothUUID const& characteristic,
185
+ BluetoothUUID const& descriptor) noexcept {
186
+ try {
187
+ return internal_.read(service, characteristic, descriptor);
188
+ } catch (...) {
189
+ return std::nullopt;
190
+ }
191
+ }
192
+
193
+ bool SPeripheral::write(BluetoothUUID const& service, BluetoothUUID const& characteristic,
194
+ BluetoothUUID const& descriptor, ByteArray const& data) noexcept {
195
+ try {
196
+ internal_.write(service, characteristic, descriptor, data);
197
+ return true;
198
+ } catch (...) {
199
+ return false;
200
+ }
201
+ }
202
+
203
+ bool SPeripheral::set_callback_on_connected(std::function<void()> on_connected) noexcept {
204
+ try {
205
+ internal_.set_callback_on_connected(std::move(on_connected));
206
+ return true;
207
+ } catch (...) {
208
+ return false;
209
+ }
210
+ }
211
+
212
+ bool SPeripheral::set_callback_on_disconnected(std::function<void()> on_disconnected) noexcept {
213
+ try {
214
+ internal_.set_callback_on_disconnected(std::move(on_disconnected));
215
+ return true;
216
+ } catch (...) {
217
+ return false;
218
+ }
219
+ }
@@ -0,0 +1,204 @@
1
+ #include <simpleble_c/adapter.h>
2
+
3
+ #include <simpleble/AdapterSafe.h>
4
+
5
+ #include <cstring>
6
+
7
+ bool simpleble_adapter_is_bluetooth_enabled(void) {
8
+ return SimpleBLE::Safe::Adapter::bluetooth_enabled().value_or(false);
9
+ }
10
+
11
+ size_t simpleble_adapter_get_count(void) {
12
+ return SimpleBLE::Safe::Adapter::get_adapters().value_or(std::vector<SimpleBLE::Safe::Adapter>()).size();
13
+ }
14
+
15
+ simpleble_adapter_t simpleble_adapter_get_handle(size_t index) {
16
+ auto adapter_list = SimpleBLE::Safe::Adapter::get_adapters().value_or(std::vector<SimpleBLE::Safe::Adapter>());
17
+
18
+ if (index >= adapter_list.size()) {
19
+ return nullptr;
20
+ }
21
+
22
+ SimpleBLE::Safe::Adapter* handle = new SimpleBLE::Safe::Adapter(adapter_list[index]);
23
+ return handle;
24
+ }
25
+
26
+ void simpleble_adapter_release_handle(simpleble_adapter_t handle) {
27
+ if (handle == nullptr) {
28
+ return;
29
+ }
30
+
31
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
32
+ delete adapter;
33
+ }
34
+
35
+ char* simpleble_adapter_identifier(simpleble_adapter_t handle) {
36
+ if (handle == nullptr) {
37
+ return nullptr;
38
+ }
39
+
40
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
41
+ std::string identifier = adapter->identifier().value_or("");
42
+ char* c_identifier = (char*)malloc(identifier.size() + 1);
43
+ strcpy(c_identifier, identifier.c_str());
44
+ return c_identifier;
45
+ }
46
+
47
+ char* simpleble_adapter_address(simpleble_adapter_t handle) {
48
+ if (handle == nullptr) {
49
+ return nullptr;
50
+ }
51
+
52
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
53
+ std::string address = adapter->address().value_or("");
54
+ char* c_address = (char*)malloc(address.size() + 1);
55
+ strcpy(c_address, address.c_str());
56
+ return c_address;
57
+ }
58
+
59
+ simpleble_err_t simpleble_adapter_scan_start(simpleble_adapter_t handle) {
60
+ if (handle == nullptr) {
61
+ return SIMPLEBLE_FAILURE;
62
+ }
63
+
64
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
65
+ return adapter->scan_start() ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
66
+ }
67
+
68
+ simpleble_err_t simpleble_adapter_scan_stop(simpleble_adapter_t handle) {
69
+ if (handle == nullptr) {
70
+ return SIMPLEBLE_FAILURE;
71
+ }
72
+
73
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
74
+ return adapter->scan_stop() ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
75
+ }
76
+
77
+ simpleble_err_t simpleble_adapter_scan_is_active(simpleble_adapter_t handle, bool* active) {
78
+ if (handle == nullptr || active == nullptr) {
79
+ return SIMPLEBLE_FAILURE;
80
+ }
81
+
82
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
83
+
84
+ std::optional<bool> is_active = adapter->scan_is_active();
85
+ *active = is_active.value_or(false);
86
+ return is_active.has_value() ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
87
+ }
88
+
89
+ simpleble_err_t simpleble_adapter_scan_for(simpleble_adapter_t handle, int timeout_ms) {
90
+ if (handle == nullptr) {
91
+ return SIMPLEBLE_FAILURE;
92
+ }
93
+
94
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
95
+ return adapter->scan_for(timeout_ms) ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
96
+ }
97
+
98
+ size_t simpleble_adapter_scan_get_results_count(simpleble_adapter_t handle) {
99
+ if (handle == nullptr) {
100
+ return 0;
101
+ }
102
+
103
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
104
+ return adapter->scan_get_results().value_or(std::vector<SimpleBLE::Safe::Peripheral>()).size();
105
+ }
106
+
107
+ simpleble_peripheral_t simpleble_adapter_scan_get_results_handle(simpleble_adapter_t handle, size_t index) {
108
+ if (handle == nullptr) {
109
+ return nullptr;
110
+ }
111
+
112
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
113
+ auto results = adapter->scan_get_results().value_or(std::vector<SimpleBLE::Safe::Peripheral>());
114
+
115
+ if (index >= results.size()) {
116
+ return nullptr;
117
+ }
118
+
119
+ SimpleBLE::Safe::Peripheral* peripheral_handle = new SimpleBLE::Safe::Peripheral(results[index]);
120
+ return peripheral_handle;
121
+ }
122
+
123
+ size_t simpleble_adapter_get_paired_peripherals_count(simpleble_adapter_t handle) {
124
+ if (handle == nullptr) {
125
+ return 0;
126
+ }
127
+
128
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
129
+ return adapter->get_paired_peripherals().value_or(std::vector<SimpleBLE::Safe::Peripheral>()).size();
130
+ }
131
+
132
+ simpleble_peripheral_t simpleble_adapter_get_paired_peripherals_handle(simpleble_adapter_t handle, size_t index) {
133
+ if (handle == nullptr) {
134
+ return nullptr;
135
+ }
136
+
137
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
138
+ auto results = adapter->get_paired_peripherals().value_or(std::vector<SimpleBLE::Safe::Peripheral>());
139
+
140
+ if (index >= results.size()) {
141
+ return nullptr;
142
+ }
143
+
144
+ SimpleBLE::Safe::Peripheral* peripheral_handle = new SimpleBLE::Safe::Peripheral(results[index]);
145
+ return peripheral_handle;
146
+ }
147
+
148
+ simpleble_err_t simpleble_adapter_set_callback_on_scan_start(simpleble_adapter_t handle,
149
+ void (*callback)(simpleble_adapter_t, void*),
150
+ void* userdata) {
151
+ if (handle == nullptr) {
152
+ return SIMPLEBLE_FAILURE;
153
+ }
154
+
155
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
156
+
157
+ bool success = adapter->set_callback_on_scan_start([=]() { callback(handle, userdata); });
158
+ return success ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
159
+ }
160
+
161
+ simpleble_err_t simpleble_adapter_set_callback_on_scan_stop(simpleble_adapter_t handle,
162
+ void (*callback)(simpleble_adapter_t, void*),
163
+ void* userdata) {
164
+ if (handle == nullptr) {
165
+ return SIMPLEBLE_FAILURE;
166
+ }
167
+
168
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
169
+
170
+ bool success = adapter->set_callback_on_scan_stop([=]() { callback(handle, userdata); });
171
+ return success ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
172
+ }
173
+
174
+ simpleble_err_t simpleble_adapter_set_callback_on_scan_updated(
175
+ simpleble_adapter_t handle, void (*callback)(simpleble_adapter_t, simpleble_peripheral_t, void*), void* userdata) {
176
+ if (handle == nullptr) {
177
+ return SIMPLEBLE_FAILURE;
178
+ }
179
+
180
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
181
+
182
+ bool success = adapter->set_callback_on_scan_updated([=](SimpleBLE::Safe::Peripheral peripheral) {
183
+ // Create a peripheral handle
184
+ SimpleBLE::Safe::Peripheral* peripheral_handle = new SimpleBLE::Safe::Peripheral(peripheral);
185
+ callback(handle, peripheral_handle, userdata);
186
+ });
187
+ return success ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
188
+ }
189
+
190
+ simpleble_err_t simpleble_adapter_set_callback_on_scan_found(
191
+ simpleble_adapter_t handle, void (*callback)(simpleble_adapter_t, simpleble_peripheral_t, void*), void* userdata) {
192
+ if (handle == nullptr) {
193
+ return SIMPLEBLE_FAILURE;
194
+ }
195
+
196
+ SimpleBLE::Safe::Adapter* adapter = (SimpleBLE::Safe::Adapter*)handle;
197
+
198
+ bool success = adapter->set_callback_on_scan_found([=](SimpleBLE::Safe::Peripheral peripheral) {
199
+ // Create a peripheral handle
200
+ SimpleBLE::Safe::Peripheral* peripheral_handle = new SimpleBLE::Safe::Peripheral(peripheral);
201
+ callback(handle, peripheral_handle, userdata);
202
+ });
203
+ return success ? SIMPLEBLE_SUCCESS : SIMPLEBLE_FAILURE;
204
+ }
@@ -0,0 +1,19 @@
1
+ #include <simpleble/Logging.h>
2
+ #include <simpleble_c/logging.h>
3
+
4
+ void simpleble_logging_set_level(simpleble_log_level_t level) {
5
+ SimpleBLE::Logging::Logger::get()->set_level(static_cast<SimpleBLE::Logging::Level>(level));
6
+ }
7
+
8
+ void simpleble_logging_set_callback(simpleble_log_callback_t callback) {
9
+ SimpleBLE::Logging::Logger::get()->set_callback(
10
+ [callback](SimpleBLE::Logging::Level level, const std::string& module, const std::string& file, uint32_t line,
11
+ const std::string& function, const std::string& message) {
12
+ try {
13
+ callback(static_cast<simpleble_log_level_t>(level), module.c_str(), file.c_str(), line,
14
+ function.c_str(), message.c_str());
15
+ } catch (...) {
16
+ // Clearly, if the logging callback throws an exception, we should not crash.
17
+ }
18
+ });
19
+ }