simplejsble 0.0.4 → 0.0.6
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.
- package/VERSION +1 -0
- package/android/CMakeLists.txt +62 -20
- package/cmake/epilogue.cmake +81 -0
- package/cmake/find/FindDBus1.cmake +20 -0
- package/cmake/find/Findfmt.cmake +41 -0
- package/cmake/find/Findgoogletest.cmake +18 -0
- package/cmake/parse_version.cmake +45 -0
- package/cmake/prelude.cmake +8 -0
- package/dependencies/README +4 -0
- package/dependencies/external/kvn/kvn_bytearray.h +297 -0
- package/dependencies/external/kvn/kvn_safe_callback.hpp +66 -0
- package/dependencies/external/kvn/logfwd.hpp +35 -0
- package/dependencies/internal/include/fmt/LICENSE +27 -0
- package/dependencies/internal/include/fmt/args.h +220 -0
- package/dependencies/internal/include/fmt/base.h +2962 -0
- package/dependencies/internal/include/fmt/chrono.h +2338 -0
- package/dependencies/internal/include/fmt/color.h +610 -0
- package/dependencies/internal/include/fmt/compile.h +539 -0
- package/dependencies/internal/include/fmt/core.h +5 -0
- package/dependencies/internal/include/fmt/format-inl.h +1949 -0
- package/dependencies/internal/include/fmt/format.h +4244 -0
- package/dependencies/internal/include/fmt/os.h +427 -0
- package/dependencies/internal/include/fmt/ostream.h +166 -0
- package/dependencies/internal/include/fmt/printf.h +633 -0
- package/dependencies/internal/include/fmt/ranges.h +850 -0
- package/dependencies/internal/include/fmt/std.h +726 -0
- package/dependencies/internal/include/fmt/xchar.h +373 -0
- package/dependencies/internal/include/nanopb/pb.h +948 -0
- package/dependencies/internal/include/nanopb/pb_common.h +49 -0
- package/dependencies/internal/include/nanopb/pb_decode.h +204 -0
- package/dependencies/internal/include/nanopb/pb_encode.h +195 -0
- package/dependencies/internal/include/simplejni/Common.hpp +598 -0
- package/dependencies/internal/include/simplejni/References.hpp +151 -0
- package/dependencies/internal/include/simplejni/Registry.hpp +249 -0
- package/dependencies/internal/include/simplejni/VM.hpp +93 -0
- package/dependencies/internal/src/nanopb/pb_common.c +388 -0
- package/dependencies/internal/src/nanopb/pb_decode.c +1763 -0
- package/dependencies/internal/src/nanopb/pb_encode.c +1009 -0
- package/dependencies/internal/src/simplejni/Common.cpp +4 -0
- package/package.json +5 -1
- package/simpleble/CMakeLists.txt +519 -0
- package/simpleble/cmake/simpleble.pc.in +11 -0
- package/simpleble/include/simpleble/Adapter.h +102 -0
- package/simpleble/include/simpleble/AdapterSafe.h +58 -0
- package/simpleble/include/simpleble/Advanced.h +50 -0
- package/simpleble/include/simpleble/Characteristic.h +39 -0
- package/simpleble/include/simpleble/Config.h +64 -0
- package/simpleble/include/simpleble/Descriptor.h +30 -0
- package/simpleble/include/simpleble/Exceptions.h +72 -0
- package/simpleble/include/simpleble/Logging.h +73 -0
- package/simpleble/include/simpleble/Peripheral.h +82 -0
- package/simpleble/include/simpleble/PeripheralSafe.h +64 -0
- package/simpleble/include/simpleble/Service.h +34 -0
- package/simpleble/include/simpleble/SimpleBLE.h +8 -0
- package/simpleble/include/simpleble/Types.h +49 -0
- package/simpleble/include/simpleble/Utils.h +13 -0
- package/simpleble/include/simpleble_c/DEPRECATED +2 -0
- package/simpleble/include/simpleble_c/adapter.h +188 -0
- package/simpleble/include/simpleble_c/logging.h +37 -0
- package/simpleble/include/simpleble_c/peripheral.h +304 -0
- package/simpleble/include/simpleble_c/simpleble.h +21 -0
- package/simpleble/include/simpleble_c/types.h +73 -0
- package/simpleble/include/simpleble_c/utils.h +27 -0
- package/simpleble/src/CommonUtils.h +63 -0
- package/simpleble/src/Config.cpp +25 -0
- package/simpleble/src/Exceptions.cpp +31 -0
- package/simpleble/src/Logging.cpp +136 -0
- package/simpleble/src/LoggingInternal.h +85 -0
- package/simpleble/src/Utils.cpp +24 -0
- package/simpleble/src/backends/android/AdapterAndroid.cpp +101 -0
- package/simpleble/src/backends/android/AdapterAndroid.h +67 -0
- package/simpleble/src/backends/android/BackendAndroid.cpp +41 -0
- package/simpleble/src/backends/android/BackendAndroid.h +26 -0
- package/simpleble/src/backends/android/PeripheralAndroid.cpp +365 -0
- package/simpleble/src/backends/android/PeripheralAndroid.h +90 -0
- package/simpleble/src/backends/android/bridge/BluetoothGattCallback.cpp +432 -0
- package/simpleble/src/backends/android/bridge/BluetoothGattCallback.h +102 -0
- package/simpleble/src/backends/android/bridge/ScanCallback.cpp +142 -0
- package/simpleble/src/backends/android/bridge/ScanCallback.h +55 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothAdapter.cpp +107 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothAdapter.h +55 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothDevice.cpp +68 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothDevice.h +54 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGatt.cpp +115 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGatt.h +75 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattCharacteristic.cpp +142 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattCharacteristic.h +66 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattDescriptor.cpp +67 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattDescriptor.h +46 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattService.cpp +106 -0
- package/simpleble/src/backends/android/types/android/bluetooth/BluetoothGattService.h +47 -0
- package/simpleble/src/backends/android/types/android/bluetooth/le/BluetoothScanner.cpp +47 -0
- package/simpleble/src/backends/android/types/android/bluetooth/le/BluetoothScanner.h +37 -0
- package/simpleble/src/backends/android/types/android/bluetooth/le/ScanRecord.cpp +69 -0
- package/simpleble/src/backends/android/types/android/bluetooth/le/ScanRecord.h +41 -0
- package/simpleble/src/backends/android/types/android/bluetooth/le/ScanResult.cpp +63 -0
- package/simpleble/src/backends/android/types/android/bluetooth/le/ScanResult.h +42 -0
- package/simpleble/src/backends/android/types/android/os/ParcelUUID.cpp +32 -0
- package/simpleble/src/backends/android/types/android/os/ParcelUUID.h +30 -0
- package/simpleble/src/backends/android/types/android/util/SparseArray.cpp +54 -0
- package/simpleble/src/backends/android/types/android/util/SparseArray.h +37 -0
- package/simpleble/src/backends/android/types/java/util/Iterator.cpp +36 -0
- package/simpleble/src/backends/android/types/java/util/Iterator.h +28 -0
- package/simpleble/src/backends/android/types/java/util/List.cpp +29 -0
- package/simpleble/src/backends/android/types/java/util/List.h +27 -0
- package/simpleble/src/backends/android/types/java/util/Set.cpp +33 -0
- package/simpleble/src/backends/android/types/java/util/Set.h +28 -0
- package/simpleble/src/backends/android/types/java/util/UUID.cpp +26 -0
- package/simpleble/src/backends/android/types/java/util/UUID.h +29 -0
- package/simpleble/src/backends/common/AdapterBase.cpp +53 -0
- package/simpleble/src/backends/common/AdapterBase.h +81 -0
- package/simpleble/src/backends/common/AdapterBaseTypes.h +22 -0
- package/simpleble/src/backends/common/BackendBase.h +20 -0
- package/simpleble/src/backends/common/BackendUtils.h +33 -0
- package/simpleble/src/backends/common/CharacteristicBase.cpp +28 -0
- package/simpleble/src/backends/common/CharacteristicBase.h +38 -0
- package/simpleble/src/backends/common/DescriptorBase.cpp +7 -0
- package/simpleble/src/backends/common/DescriptorBase.h +19 -0
- package/simpleble/src/backends/common/PeripheralBase.h +82 -0
- package/simpleble/src/backends/common/ServiceBase.cpp +18 -0
- package/simpleble/src/backends/common/ServiceBase.h +28 -0
- package/simpleble/src/backends/dongl/AdapterBaseTypes.h +22 -0
- package/simpleble/src/backends/dongl/AdapterDongl.cpp +369 -0
- package/simpleble/src/backends/dongl/AdapterDongl.h +60 -0
- package/simpleble/src/backends/dongl/BackendDongl.cpp +35 -0
- package/simpleble/src/backends/dongl/PeripheralDongl.cpp +562 -0
- package/simpleble/src/backends/dongl/PeripheralDongl.h +136 -0
- package/simpleble/src/backends/dongl/protocol/basic.pb.c +33 -0
- package/simpleble/src/backends/dongl/protocol/basic.pb.h +172 -0
- package/simpleble/src/backends/dongl/protocol/d2h.pb.c +18 -0
- package/simpleble/src/backends/dongl/protocol/d2h.pb.h +118 -0
- package/simpleble/src/backends/dongl/protocol/h2d.pb.c +12 -0
- package/simpleble/src/backends/dongl/protocol/h2d.pb.h +69 -0
- package/simpleble/src/backends/dongl/protocol/simpleble.pb.c +123 -0
- package/simpleble/src/backends/dongl/protocol/simpleble.pb.h +908 -0
- package/simpleble/src/backends/dongl/protocol/softdevice.pb.c +18 -0
- package/simpleble/src/backends/dongl/protocol/softdevice.pb.h +815 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_gap.pb.c +339 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_gap.pb.h +2086 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_gattc.pb.c +114 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_gattc.pb.h +772 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_gatts.pb.c +117 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_gatts.pb.h +766 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_types.pb.c +207 -0
- package/simpleble/src/backends/dongl/protocol/softdevice_types.pb.h +1686 -0
- package/simpleble/src/backends/dongl/serial/Protocol.cpp +887 -0
- package/simpleble/src/backends/dongl/serial/Protocol.h +117 -0
- package/simpleble/src/backends/dongl/serial/ProtocolBase.cpp +95 -0
- package/simpleble/src/backends/dongl/serial/ProtocolBase.h +54 -0
- package/simpleble/src/backends/dongl/serial/Wire.cpp +133 -0
- package/simpleble/src/backends/dongl/serial/Wire.h +116 -0
- package/simpleble/src/backends/dongl/usb/UsbHelper.cpp +53 -0
- package/simpleble/src/backends/dongl/usb/UsbHelper.h +32 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperApple.cpp +266 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperApple.h +34 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperImpl.h +29 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperLinux.cpp +21 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperLinux.h +22 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperNull.cpp +21 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperNull.h +22 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperWindows.cpp +21 -0
- package/simpleble/src/backends/dongl/usb/UsbHelperWindows.h +22 -0
- package/simpleble/src/backends/linux/AdapterLinux.cpp +102 -0
- package/simpleble/src/backends/linux/AdapterLinux.h +55 -0
- package/simpleble/src/backends/linux/BackendBluez.cpp +90 -0
- package/simpleble/src/backends/linux/PeripheralLinux.cpp +394 -0
- package/simpleble/src/backends/linux/PeripheralLinux.h +90 -0
- package/simpleble/src/backends/linux_legacy/AdapterLinuxLegacy.cpp +102 -0
- package/simpleble/src/backends/linux_legacy/AdapterLinuxLegacy.h +55 -0
- package/simpleble/src/backends/linux_legacy/BackendBluezLegacy.cpp +87 -0
- package/simpleble/src/backends/linux_legacy/PeripheralLinuxLegacy.cpp +376 -0
- package/simpleble/src/backends/linux_legacy/PeripheralLinuxLegacy.h +90 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Adapter.h +46 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Agent.h +52 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Bluez.h +37 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/BluezOrg.h +22 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/BluezOrgBluez.h +26 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/BluezRoot.h +32 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Characteristic.h +47 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Descriptor.h +33 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Device.h +64 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Exceptions.h +43 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Service.h +27 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/Types.h +9 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/Adapter1.h +49 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/Agent1.h +100 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/AgentManager1.h +24 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/Battery1.h +32 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/Device1.h +62 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/GattCharacteristic1.h +48 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/GattDescriptor1.h +41 -0
- package/simpleble/src/backends/linux_legacy/include/simplebluezlegacy/interfaces/GattService1.h +28 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/advanced/Interface.h +67 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/advanced/InterfaceRegistry.h +62 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/advanced/Proxy.h +117 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/base/Connection.h +50 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/base/Exceptions.h +56 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/base/Holder.h +147 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/base/Logging.h +57 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/base/Message.h +89 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/base/Path.h +24 -0
- package/simpleble/src/backends/linux_legacy/include/simpledbuslegacy/interfaces/ObjectManager.h +26 -0
- package/simpleble/src/backends/linux_legacy/src/Adapter.cpp +78 -0
- package/simpleble/src/backends/linux_legacy/src/Agent.cpp +72 -0
- package/simpleble/src/backends/linux_legacy/src/Bluez.cpp +45 -0
- package/simpleble/src/backends/linux_legacy/src/BluezOrg.cpp +20 -0
- package/simpleble/src/backends/linux_legacy/src/BluezOrgBluez.cpp +23 -0
- package/simpleble/src/backends/linux_legacy/src/BluezRoot.cpp +44 -0
- package/simpleble/src/backends/linux_legacy/src/Characteristic.cpp +64 -0
- package/simpleble/src/backends/linux_legacy/src/Descriptor.cpp +27 -0
- package/simpleble/src/backends/linux_legacy/src/Device.cpp +104 -0
- package/simpleble/src/backends/linux_legacy/src/Exceptions.cpp +29 -0
- package/simpleble/src/backends/linux_legacy/src/Service.cpp +33 -0
- package/simpleble/src/backends/linux_legacy/src/advanced/Interface.cpp +155 -0
- package/simpleble/src/backends/linux_legacy/src/advanced/Proxy.cpp +374 -0
- package/simpleble/src/backends/linux_legacy/src/base/Connection.cpp +219 -0
- package/simpleble/src/backends/linux_legacy/src/base/Exceptions.cpp +39 -0
- package/simpleble/src/backends/linux_legacy/src/base/Holder.cpp +739 -0
- package/simpleble/src/backends/linux_legacy/src/base/Message.cpp +622 -0
- package/simpleble/src/backends/linux_legacy/src/base/Path.cpp +129 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/Adapter1.cpp +123 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/Agent1.cpp +143 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/AgentManager1.cpp +34 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/Battery1.cpp +30 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/Device1.cpp +170 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/GattCharacteristic1.cpp +118 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/GattDescriptor1.cpp +78 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/GattService1.cpp +28 -0
- package/simpleble/src/backends/linux_legacy/src/interfaces/ObjectManager.cpp +58 -0
- package/simpleble/src/backends/macos/AdapterBaseMacOS.h +29 -0
- package/simpleble/src/backends/macos/AdapterBaseMacOS.mm +235 -0
- package/simpleble/src/backends/macos/AdapterMac.h +78 -0
- package/simpleble/src/backends/macos/AdapterMac.mm +156 -0
- package/simpleble/src/backends/macos/BackendCoreBluetooth.mm +45 -0
- package/simpleble/src/backends/macos/PeripheralBaseMacOS.h +49 -0
- package/simpleble/src/backends/macos/PeripheralBaseMacOS.mm +714 -0
- package/simpleble/src/backends/macos/PeripheralMac.h +81 -0
- package/simpleble/src/backends/macos/PeripheralMac.mm +229 -0
- package/simpleble/src/backends/macos/Utils.h +9 -0
- package/simpleble/src/backends/macos/Utils.mm +23 -0
- package/simpleble/src/backends/plain/AdapterPlain.cpp +65 -0
- package/simpleble/src/backends/plain/AdapterPlain.h +49 -0
- package/simpleble/src/backends/plain/BackendPlain.cpp +30 -0
- package/simpleble/src/backends/plain/PeripheralPlain.cpp +159 -0
- package/simpleble/src/backends/plain/PeripheralPlain.h +72 -0
- package/simpleble/src/backends/windows/AdapterWindows.cpp +338 -0
- package/simpleble/src/backends/windows/AdapterWindows.h +89 -0
- package/simpleble/src/backends/windows/BackendWinRT.cpp +67 -0
- package/simpleble/src/backends/windows/BackendWinRT.h +18 -0
- package/simpleble/src/backends/windows/MtaManager.cpp +49 -0
- package/simpleble/src/backends/windows/MtaManager.h +90 -0
- package/simpleble/src/backends/windows/PeripheralWindows.cpp +487 -0
- package/simpleble/src/backends/windows/PeripheralWindows.h +129 -0
- package/simpleble/src/backends/windows/Utils.cpp +146 -0
- package/simpleble/src/backends/windows/Utils.h +47 -0
- package/simpleble/src/builders/BuildVec.h +32 -0
- package/simpleble/src/builders/BuilderBase.h +87 -0
- package/simpleble/src/external/TaskRunner.hpp +99 -0
- package/simpleble/src/external/ThreadRunner.h +52 -0
- package/simpleble/src/external/kvn_safe_callback.hpp +66 -0
- package/simpleble/src/external/kvn_safe_map.hpp +94 -0
- package/simpleble/src/external/kvn_threadrunner.hpp +70 -0
- package/simpleble/src/external/logfwd.hpp +35 -0
- package/simpleble/src/frontends/base/Adapter.cpp +111 -0
- package/simpleble/src/frontends/base/Advanced.cpp +34 -0
- package/simpleble/src/frontends/base/Backend.cpp +95 -0
- package/simpleble/src/frontends/base/Backend.h +76 -0
- package/simpleble/src/frontends/base/Characteristic.cpp +56 -0
- package/simpleble/src/frontends/base/Descriptor.cpp +21 -0
- package/simpleble/src/frontends/base/Peripheral.cpp +113 -0
- package/simpleble/src/frontends/base/Service.cpp +26 -0
- package/simpleble/src/frontends/safe/AdapterSafe.cpp +158 -0
- package/simpleble/src/frontends/safe/PeripheralSafe.cpp +219 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "simplejsble",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "React Native Bluetooth Low Energy library using SimpleBLE with Nitro Modules",
|
|
5
5
|
"main": "lib/index",
|
|
6
6
|
"module": "lib/index",
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
"android/",
|
|
15
15
|
"ios/",
|
|
16
16
|
"cpp/",
|
|
17
|
+
"simpleble/",
|
|
18
|
+
"cmake/",
|
|
19
|
+
"dependencies/",
|
|
20
|
+
"VERSION",
|
|
17
21
|
"react-native.config.js",
|
|
18
22
|
"nitro.json",
|
|
19
23
|
"*.podspec",
|
|
@@ -0,0 +1,519 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.21)
|
|
2
|
+
|
|
3
|
+
include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/prelude.cmake)
|
|
4
|
+
|
|
5
|
+
project(
|
|
6
|
+
simpleble
|
|
7
|
+
VERSION ${SIMPLEBLE_VERSION_BASE}
|
|
8
|
+
DESCRIPTION "The ultimate fully-fledged cross-platform library for Bluetooth Low Energy (BLE)."
|
|
9
|
+
HOMEPAGE_URL "https://github.com/simpleble/simpleble"
|
|
10
|
+
LANGUAGES CXX C
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/epilogue.cmake)
|
|
14
|
+
|
|
15
|
+
include(GenerateExportHeader)
|
|
16
|
+
include(GNUInstallDirs)
|
|
17
|
+
|
|
18
|
+
option(SIMPLEBLE_PLAIN "Use plain version of SimpleBLE" OFF)
|
|
19
|
+
option(SIMPLEBLE_EXCLUDE_C "Exclude C bindings from SimpleBLE" OFF)
|
|
20
|
+
|
|
21
|
+
if(SIMPLEBLE_TEST)
|
|
22
|
+
message(STATUS "Building tests requires plain version of SimpleBLE")
|
|
23
|
+
set(SIMPLEBLE_PLAIN ON)
|
|
24
|
+
endif()
|
|
25
|
+
|
|
26
|
+
set(SIMPLEBLE_PRIVATE_INCLUDES
|
|
27
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src
|
|
28
|
+
${CMAKE_CURRENT_SOURCE_DIR}/include
|
|
29
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/builders
|
|
30
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/external
|
|
31
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/common
|
|
32
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl
|
|
33
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/safe
|
|
34
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/external
|
|
35
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/internal/include)
|
|
36
|
+
|
|
37
|
+
set(SIMPLEBLE_SRC
|
|
38
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/base/Advanced.cpp
|
|
39
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/base/Adapter.cpp
|
|
40
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/base/Peripheral.cpp
|
|
41
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/base/Service.cpp
|
|
42
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/base/Characteristic.cpp
|
|
43
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/base/Descriptor.cpp
|
|
44
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/base/Backend.cpp
|
|
45
|
+
|
|
46
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/common/AdapterBase.cpp
|
|
47
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/common/ServiceBase.cpp
|
|
48
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/common/CharacteristicBase.cpp
|
|
49
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/common/DescriptorBase.cpp
|
|
50
|
+
|
|
51
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/Config.cpp
|
|
52
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/Exceptions.cpp
|
|
53
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/Utils.cpp
|
|
54
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/Logging.cpp
|
|
55
|
+
|
|
56
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/safe/AdapterSafe.cpp
|
|
57
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/frontends/safe/PeripheralSafe.cpp)
|
|
58
|
+
|
|
59
|
+
# Define simpleble target
|
|
60
|
+
add_library(simpleble ${SIMPLEBLE_SRC})
|
|
61
|
+
add_library(simpleble::simpleble ALIAS simpleble)
|
|
62
|
+
|
|
63
|
+
set_target_properties(simpleble PROPERTIES
|
|
64
|
+
CXX_VISIBILITY_PRESET hidden
|
|
65
|
+
VISIBILITY_INLINES_HIDDEN YES
|
|
66
|
+
CXX_STANDARD 17
|
|
67
|
+
CXX_STANDARD_REQUIRED YES
|
|
68
|
+
CXX_EXTENSIONS NO
|
|
69
|
+
POSITION_INDEPENDENT_CODE ON
|
|
70
|
+
VERSION "${PROJECT_VERSION}"
|
|
71
|
+
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
|
72
|
+
EXPORT_NAME simpleble
|
|
73
|
+
OUTPUT_NAME simpleble
|
|
74
|
+
RELEASE_POSTFIX ""
|
|
75
|
+
RELWITHDEBINFO_POSTFIX "-relwithdebinfo"
|
|
76
|
+
MINSIZEREL_POSTFIX "-minsizerel"
|
|
77
|
+
DEBUG_POSTFIX "-debug")
|
|
78
|
+
|
|
79
|
+
generate_export_header(
|
|
80
|
+
simpleble
|
|
81
|
+
BASE_NAME simpleble
|
|
82
|
+
EXPORT_FILE_NAME export/simpleble/export.h
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
# Configure include directories for simpleble
|
|
86
|
+
target_include_directories(simpleble PRIVATE ${SIMPLEBLE_PRIVATE_INCLUDES})
|
|
87
|
+
target_include_directories(simpleble INTERFACE
|
|
88
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
89
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/external>
|
|
90
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
|
91
|
+
target_include_directories(simpleble SYSTEM PUBLIC
|
|
92
|
+
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>)
|
|
93
|
+
|
|
94
|
+
append_sanitize_options("${SIMPLEBLE_SANITIZE}")
|
|
95
|
+
|
|
96
|
+
if(NOT SIMPLEBLE_LOG_LEVEL)
|
|
97
|
+
set(SIMPLEBLE_LOG_LEVEL "INFO")
|
|
98
|
+
endif()
|
|
99
|
+
|
|
100
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS SIMPLEBLE_LOG_LEVEL=SIMPLEBLE_LOG_LEVEL_${SIMPLEBLE_LOG_LEVEL})
|
|
101
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS SIMPLEBLE_VERSION="${SIMPLEBLE_VERSION}")
|
|
102
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS FMT_HEADER_ONLY)
|
|
103
|
+
|
|
104
|
+
if(NOT SIMPLEBLE_TEST AND NOT SIMPLEBLE_PLAIN)
|
|
105
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
106
|
+
set(SIMPLEBLE_BACKEND_LINUX ON)
|
|
107
|
+
else()
|
|
108
|
+
set(SIMPLEBLE_BACKEND_LINUX OFF)
|
|
109
|
+
endif()
|
|
110
|
+
|
|
111
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
|
|
112
|
+
set(SIMPLEBLE_BACKEND_WINDOWS ON)
|
|
113
|
+
else()
|
|
114
|
+
set(SIMPLEBLE_BACKEND_WINDOWS OFF)
|
|
115
|
+
endif()
|
|
116
|
+
|
|
117
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|
118
|
+
set(SIMPLEBLE_BACKEND_MACOS ON)
|
|
119
|
+
else()
|
|
120
|
+
set(SIMPLEBLE_BACKEND_MACOS OFF)
|
|
121
|
+
endif()
|
|
122
|
+
|
|
123
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "iOS")
|
|
124
|
+
set(SIMPLEBLE_BACKEND_IOS ON)
|
|
125
|
+
else()
|
|
126
|
+
set(SIMPLEBLE_BACKEND_IOS OFF)
|
|
127
|
+
endif()
|
|
128
|
+
|
|
129
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
|
|
130
|
+
set(SIMPLEBLE_BACKEND_ANDROID ON)
|
|
131
|
+
else()
|
|
132
|
+
set(SIMPLEBLE_BACKEND_ANDROID OFF)
|
|
133
|
+
endif()
|
|
134
|
+
else()
|
|
135
|
+
set(SIMPLEBLE_BACKEND_LINUX OFF)
|
|
136
|
+
set(SIMPLEBLE_BACKEND_WINDOWS OFF)
|
|
137
|
+
set(SIMPLEBLE_BACKEND_MACOS OFF)
|
|
138
|
+
set(SIMPLEBLE_BACKEND_IOS OFF)
|
|
139
|
+
set(SIMPLEBLE_BACKEND_ANDROID OFF)
|
|
140
|
+
endif()
|
|
141
|
+
|
|
142
|
+
target_compile_definitions(simpleble PRIVATE
|
|
143
|
+
SIMPLEBLE_BACKEND_PLAIN=$<BOOL:${SIMPLEBLE_PLAIN}>
|
|
144
|
+
SIMPLEBLE_BACKEND_LINUX=$<BOOL:${SIMPLEBLE_BACKEND_LINUX}>
|
|
145
|
+
SIMPLEBLE_BACKEND_WINDOWS=$<BOOL:${SIMPLEBLE_BACKEND_WINDOWS}>
|
|
146
|
+
SIMPLEBLE_BACKEND_MACOS=$<BOOL:${SIMPLEBLE_BACKEND_MACOS}>
|
|
147
|
+
SIMPLEBLE_BACKEND_IOS=$<BOOL:${SIMPLEBLE_BACKEND_IOS}>
|
|
148
|
+
SIMPLEBLE_BACKEND_ANDROID=$<BOOL:${SIMPLEBLE_BACKEND_ANDROID}>)
|
|
149
|
+
|
|
150
|
+
# Dongl Source File Selection
|
|
151
|
+
set(SIMPLEBLE_DONGL_SOURCES
|
|
152
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/usb/UsbHelper.cpp
|
|
153
|
+
|
|
154
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/BackendDongl.cpp
|
|
155
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/AdapterDongl.cpp
|
|
156
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/PeripheralDongl.cpp
|
|
157
|
+
|
|
158
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/serial/Protocol.cpp
|
|
159
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/serial/ProtocolBase.cpp
|
|
160
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/serial/Wire.cpp
|
|
161
|
+
|
|
162
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/internal/src/nanopb/pb_common.c
|
|
163
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/internal/src/nanopb/pb_decode.c
|
|
164
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../dependencies/internal/src/nanopb/pb_encode.c
|
|
165
|
+
|
|
166
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/d2h.pb.c
|
|
167
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/h2d.pb.c
|
|
168
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/basic.pb.c
|
|
169
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/simpleble.pb.c
|
|
170
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/softdevice.pb.c
|
|
171
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/softdevice_gap.pb.c
|
|
172
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/softdevice_gattc.pb.c
|
|
173
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/softdevice_gatts.pb.c
|
|
174
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/protocol/softdevice_types.pb.c)
|
|
175
|
+
|
|
176
|
+
if(SIMPLEBLE_PLAIN)
|
|
177
|
+
list(APPEND SIMPLEBLE_DONGL_SOURCES
|
|
178
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/usb/UsbHelperNull.cpp)
|
|
179
|
+
elseif(SIMPLEBLE_BACKEND_LINUX)
|
|
180
|
+
list(APPEND SIMPLEBLE_DONGL_SOURCES
|
|
181
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/usb/UsbHelperLinux.cpp)
|
|
182
|
+
elseif(SIMPLEBLE_BACKEND_WINDOWS)
|
|
183
|
+
list(APPEND SIMPLEBLE_DONGL_SOURCES
|
|
184
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/usb/UsbHelperWindows.cpp)
|
|
185
|
+
elseif(SIMPLEBLE_BACKEND_MACOS)
|
|
186
|
+
list(APPEND SIMPLEBLE_DONGL_SOURCES
|
|
187
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/usb/UsbHelperApple.cpp)
|
|
188
|
+
elseif(SIMPLEBLE_BACKEND_IOS)
|
|
189
|
+
list(APPEND SIMPLEBLE_DONGL_SOURCES
|
|
190
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/usb/UsbHelperNull.cpp)
|
|
191
|
+
elseif(SIMPLEBLE_BACKEND_ANDROID)
|
|
192
|
+
list(APPEND SIMPLEBLE_DONGL_SOURCES
|
|
193
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl/usb/UsbHelperNull.cpp)
|
|
194
|
+
endif()
|
|
195
|
+
|
|
196
|
+
# Detect the operating system and load the necessary dependencies
|
|
197
|
+
if(SIMPLEBLE_PLAIN)
|
|
198
|
+
message(STATUS "Plain Flavor Requested")
|
|
199
|
+
|
|
200
|
+
target_sources(simpleble PRIVATE
|
|
201
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/plain/AdapterPlain.cpp
|
|
202
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/plain/PeripheralPlain.cpp
|
|
203
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/plain/BackendPlain.cpp)
|
|
204
|
+
elseif(SIMPLEBLE_BACKEND_LINUX)
|
|
205
|
+
message(STATUS "Linux Host Detected")
|
|
206
|
+
|
|
207
|
+
find_package(DBus1 REQUIRED)
|
|
208
|
+
|
|
209
|
+
if(NOT SIMPLEDBUS_LOG_LEVEL)
|
|
210
|
+
set(SIMPLEDBUS_LOG_LEVEL "FATAL")
|
|
211
|
+
endif()
|
|
212
|
+
|
|
213
|
+
if(NOT SIMPLEBLUEZ_LOG_LEVEL)
|
|
214
|
+
set(SIMPLEBLUEZ_LOG_LEVEL "FATAL")
|
|
215
|
+
endif()
|
|
216
|
+
|
|
217
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS SIMPLEDBUS_LOG_LEVEL=${SIMPLEDBUS_LOG_LEVEL})
|
|
218
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS SIMPLEBLUEZ_LOG_LEVEL=${SIMPLEBLUEZ_LOG_LEVEL})
|
|
219
|
+
|
|
220
|
+
if(SIMPLEBLE_USE_SESSION_DBUS)
|
|
221
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS SIMPLEBLUEZ_USE_SESSION_DBUS)
|
|
222
|
+
endif()
|
|
223
|
+
|
|
224
|
+
target_sources(simpleble PRIVATE
|
|
225
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux/AdapterLinux.cpp
|
|
226
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux/PeripheralLinux.cpp
|
|
227
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux/BackendBluez.cpp
|
|
228
|
+
|
|
229
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Logging.cpp
|
|
230
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Agent.cpp
|
|
231
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Device.cpp
|
|
232
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Characteristic.cpp
|
|
233
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Exceptions.cpp
|
|
234
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Service.cpp
|
|
235
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Adapter.cpp
|
|
236
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Bluez.cpp
|
|
237
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/BluezRoot.cpp
|
|
238
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/BluezOrg.cpp
|
|
239
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/BluezOrgBluez.cpp
|
|
240
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/Descriptor.cpp
|
|
241
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/Adapter1.cpp
|
|
242
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/Agent1.cpp
|
|
243
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/GattDescriptor1.cpp
|
|
244
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/GattCharacteristic1.cpp
|
|
245
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/GattService1.cpp
|
|
246
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/Device1.cpp
|
|
247
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/Battery1.cpp
|
|
248
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/src/interfaces/AgentManager1.cpp
|
|
249
|
+
|
|
250
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/advanced/Interface.cpp
|
|
251
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/advanced/Proxy.cpp
|
|
252
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/base/Connection.cpp
|
|
253
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/base/Exceptions.cpp
|
|
254
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/base/Holder.cpp
|
|
255
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/base/Logging.cpp
|
|
256
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/base/Message.cpp
|
|
257
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/base/Path.cpp
|
|
258
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/interfaces/ObjectManager.cpp
|
|
259
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/src/interfaces/Properties.cpp
|
|
260
|
+
|
|
261
|
+
# Legacy BlueZ backend
|
|
262
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/BackendBluezLegacy.cpp
|
|
263
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/AdapterLinuxLegacy.cpp
|
|
264
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/PeripheralLinuxLegacy.cpp
|
|
265
|
+
|
|
266
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Agent.cpp
|
|
267
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Device.cpp
|
|
268
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Characteristic.cpp
|
|
269
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Exceptions.cpp
|
|
270
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Service.cpp
|
|
271
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Adapter.cpp
|
|
272
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Bluez.cpp
|
|
273
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/BluezRoot.cpp
|
|
274
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/BluezOrg.cpp
|
|
275
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/BluezOrgBluez.cpp
|
|
276
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/Descriptor.cpp
|
|
277
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/Adapter1.cpp
|
|
278
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/Agent1.cpp
|
|
279
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/GattDescriptor1.cpp
|
|
280
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/GattCharacteristic1.cpp
|
|
281
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/GattService1.cpp
|
|
282
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/Device1.cpp
|
|
283
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/Battery1.cpp
|
|
284
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/AgentManager1.cpp
|
|
285
|
+
|
|
286
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/advanced/Interface.cpp
|
|
287
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/advanced/Proxy.cpp
|
|
288
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/base/Connection.cpp
|
|
289
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/base/Exceptions.cpp
|
|
290
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/base/Holder.cpp
|
|
291
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/base/Message.cpp
|
|
292
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/base/Path.cpp
|
|
293
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/src/interfaces/ObjectManager.cpp
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
target_link_libraries(simpleble PUBLIC pthread)
|
|
297
|
+
target_link_libraries(simpleble PRIVATE ${DBus1_LIBRARIES})
|
|
298
|
+
|
|
299
|
+
target_include_directories(simpleble PRIVATE
|
|
300
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simplebluez/include
|
|
301
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../simpledbus/include
|
|
302
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/linux_legacy/include)
|
|
303
|
+
|
|
304
|
+
set_property(TARGET simpleble PROPERTY INSTALL_RPATH $ORIGIN)
|
|
305
|
+
|
|
306
|
+
elseif(SIMPLEBLE_BACKEND_WINDOWS)
|
|
307
|
+
message(STATUS "Windows Host Detected")
|
|
308
|
+
|
|
309
|
+
set(WINVERSION_CODE 0x0A00) # Selected Windows 10 based on https://docs.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt
|
|
310
|
+
|
|
311
|
+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
|
312
|
+
# Add all the special definitions for Visual Studio C++
|
|
313
|
+
|
|
314
|
+
# /D_WIN32_WINNT -> Specifies the minimum version of Windows that the application is compatible with.
|
|
315
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS "/D_WIN32_WINNT=${WINVERSION_CODE}")
|
|
316
|
+
# /D_USE_MATH_DEFINES -> Specifies that the math.h header file should be included.
|
|
317
|
+
list(APPEND PRIVATE_COMPILE_DEFINITIONS "/D_USE_MATH_DEFINES")
|
|
318
|
+
|
|
319
|
+
# /utf-8 -> Set source and executable character sets to utf-8. https://learn.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8
|
|
320
|
+
list(APPEND PRIVATE_COMPILE_OPTIONS "/utf-8")
|
|
321
|
+
# /Gd -> Use __cdecl as the default calling convention. https://docs.microsoft.com/en-us/cpp/cpp/cdecl
|
|
322
|
+
list(APPEND PRIVATE_COMPILE_OPTIONS "/Gd")
|
|
323
|
+
# /EHsc -> Use the standard C++ exception handling model. https://learn.microsoft.com/en-us/cpp/build/reference/eh-exception-handling-model
|
|
324
|
+
list(APPEND PRIVATE_COMPILE_OPTIONS "/EHsc")
|
|
325
|
+
# /WX -> Treats all warnings as errors.
|
|
326
|
+
list(APPEND PRIVATE_COMPILE_OPTIONS "/WX")
|
|
327
|
+
# /W1 -> Use the lowest level of warnings, as there are some unsafe functions that MSVC doesn't like.
|
|
328
|
+
# TODO: This should be removed once the warnings are fixed.
|
|
329
|
+
list(APPEND PRIVATE_COMPILE_OPTIONS "/W1")
|
|
330
|
+
endif()
|
|
331
|
+
|
|
332
|
+
target_sources(simpleble PRIVATE
|
|
333
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/windows/AdapterWindows.cpp
|
|
334
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/windows/PeripheralWindows.cpp
|
|
335
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/windows/BackendWinRT.cpp
|
|
336
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/windows/MtaManager.cpp
|
|
337
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/windows/Utils.cpp)
|
|
338
|
+
|
|
339
|
+
elseif(SIMPLEBLE_BACKEND_MACOS OR SIMPLEBLE_BACKEND_IOS)
|
|
340
|
+
message(STATUS "Darwin / iOS Host Detected")
|
|
341
|
+
|
|
342
|
+
list(APPEND PRIVATE_COMPILE_OPTIONS -fobjc-arc)
|
|
343
|
+
|
|
344
|
+
target_link_libraries(simpleble PUBLIC "-framework Foundation" "-framework CoreBluetooth" ObjC)
|
|
345
|
+
|
|
346
|
+
if(SIMPLEBLE_BACKEND_MACOS)
|
|
347
|
+
target_link_libraries(simpleble PUBLIC "-framework IOBluetooth" "-framework IOKit")
|
|
348
|
+
endif()
|
|
349
|
+
|
|
350
|
+
target_sources(simpleble PRIVATE
|
|
351
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/macos/Utils.mm
|
|
352
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/macos/AdapterMac.mm
|
|
353
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/macos/AdapterBaseMacOS.mm
|
|
354
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/macos/PeripheralMac.mm
|
|
355
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/macos/PeripheralBaseMacOS.mm
|
|
356
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/macos/BackendCoreBluetooth.mm)
|
|
357
|
+
|
|
358
|
+
set_property(TARGET simpleble PROPERTY INSTALL_RPATH @loader_path)
|
|
359
|
+
|
|
360
|
+
elseif(SIMPLEBLE_BACKEND_ANDROID)
|
|
361
|
+
message(STATUS "Configuring for Android")
|
|
362
|
+
|
|
363
|
+
include_directories(${ANDROID_NDK}/sysroot/usr/include)
|
|
364
|
+
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android)
|
|
365
|
+
|
|
366
|
+
#add_compile_options(-DANDROID -D__ANDROID_API__=${ANDROID_NATIVE_API_LEVEL})
|
|
367
|
+
|
|
368
|
+
target_sources(simpleble PRIVATE
|
|
369
|
+
${SIMPLEJNI_SOURCES}
|
|
370
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/AdapterAndroid.cpp
|
|
371
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/PeripheralAndroid.cpp
|
|
372
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/BackendAndroid.cpp
|
|
373
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/bridge/BluetoothGattCallback.cpp
|
|
374
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/bridge/ScanCallback.cpp
|
|
375
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/BluetoothAdapter.cpp
|
|
376
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/BluetoothDevice.cpp
|
|
377
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/BluetoothGatt.cpp
|
|
378
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/BluetoothGattService.cpp
|
|
379
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/BluetoothGattCharacteristic.cpp
|
|
380
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/BluetoothGattDescriptor.cpp
|
|
381
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/le/BluetoothScanner.cpp
|
|
382
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/java/util/UUID.cpp
|
|
383
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/os/ParcelUUID.cpp
|
|
384
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/le/ScanRecord.cpp
|
|
385
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/bluetooth/le/ScanResult.cpp
|
|
386
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/android/util/SparseArray.cpp
|
|
387
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/java/util/Iterator.cpp
|
|
388
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/java/util/List.cpp
|
|
389
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/android/types/java/util/Set.cpp)
|
|
390
|
+
target_link_libraries(simpleble PUBLIC android nativehelper log)
|
|
391
|
+
endif()
|
|
392
|
+
|
|
393
|
+
target_sources(simpleble PRIVATE
|
|
394
|
+
${SIMPLEBLE_DONGL_SOURCES})
|
|
395
|
+
|
|
396
|
+
target_include_directories(simpleble PRIVATE
|
|
397
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src/backends/dongl)
|
|
398
|
+
|
|
399
|
+
apply_build_options(simpleble
|
|
400
|
+
"${PRIVATE_COMPILE_DEFINITIONS}"
|
|
401
|
+
"${PRIVATE_COMPILE_OPTIONS}"
|
|
402
|
+
"${PRIVATE_LINK_OPTIONS}"
|
|
403
|
+
"${PUBLIC_LINK_OPTIONS}")
|
|
404
|
+
|
|
405
|
+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/simpleble.pc.in
|
|
406
|
+
${CMAKE_CURRENT_BINARY_DIR}/simpleble.pc @ONLY)
|
|
407
|
+
|
|
408
|
+
install(
|
|
409
|
+
TARGETS simpleble
|
|
410
|
+
EXPORT simpleble-config
|
|
411
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
412
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
413
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
414
|
+
|
|
415
|
+
install(
|
|
416
|
+
EXPORT simpleble-config
|
|
417
|
+
NAMESPACE simpleble::
|
|
418
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/simpleble)
|
|
419
|
+
|
|
420
|
+
install(
|
|
421
|
+
DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/simpleble/
|
|
422
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/simpleble)
|
|
423
|
+
|
|
424
|
+
install(
|
|
425
|
+
FILES
|
|
426
|
+
${CMAKE_CURRENT_LIST_DIR}/../dependencies/external/kvn/kvn_bytearray.h
|
|
427
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/simpleble/kvn)
|
|
428
|
+
|
|
429
|
+
install(
|
|
430
|
+
DIRECTORY ${PROJECT_BINARY_DIR}/export/simpleble/
|
|
431
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/simpleble)
|
|
432
|
+
|
|
433
|
+
install(
|
|
434
|
+
FILES ${CMAKE_CURRENT_BINARY_DIR}/simpleble.pc
|
|
435
|
+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
436
|
+
|
|
437
|
+
if(SIMPLEBLE_TEST)
|
|
438
|
+
message(STATUS "Building Tests")
|
|
439
|
+
find_package(GTest REQUIRED)
|
|
440
|
+
|
|
441
|
+
add_executable(simpleble_test
|
|
442
|
+
${CMAKE_CURRENT_SOURCE_DIR}/test/src/main.cpp
|
|
443
|
+
${CMAKE_CURRENT_SOURCE_DIR}/test/src/test_utils.cpp
|
|
444
|
+
${CMAKE_CURRENT_SOURCE_DIR}/test/src/test_bytearray.cpp)
|
|
445
|
+
set_target_properties(simpleble_test PROPERTIES
|
|
446
|
+
CXX_VISIBILITY_PRESET hidden
|
|
447
|
+
VISIBILITY_INLINES_HIDDEN YES
|
|
448
|
+
CXX_STANDARD 17
|
|
449
|
+
POSITION_INDEPENDENT_CODE ON
|
|
450
|
+
WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|
451
|
+
|
|
452
|
+
target_link_libraries(simpleble_test PRIVATE simpleble::simpleble GTest::gtest)
|
|
453
|
+
endif()
|
|
454
|
+
|
|
455
|
+
# *** SIMPLEBLE C BINDINGS ***
|
|
456
|
+
|
|
457
|
+
if(NOT SIMPLEBLE_EXCLUDE_C)
|
|
458
|
+
set(SIMPLEBLE_C_SRC
|
|
459
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src_c/simpleble.cpp
|
|
460
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src_c/adapter.cpp
|
|
461
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src_c/peripheral.cpp
|
|
462
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src_c/logging.cpp
|
|
463
|
+
${CMAKE_CURRENT_SOURCE_DIR}/src_c/utils.cpp)
|
|
464
|
+
|
|
465
|
+
add_library(simpleble-c ${SIMPLEBLE_C_SRC})
|
|
466
|
+
add_library(simpleble::simpleble-c ALIAS simpleble-c)
|
|
467
|
+
|
|
468
|
+
set_target_properties(simpleble-c PROPERTIES
|
|
469
|
+
C_VISIBILITY_PRESET hidden
|
|
470
|
+
VISIBILITY_INLINES_HIDDEN YES
|
|
471
|
+
CXX_STANDARD 17
|
|
472
|
+
CXX_STANDARD_REQUIRED YES
|
|
473
|
+
CXX_EXTENSIONS NO
|
|
474
|
+
POSITION_INDEPENDENT_CODE ON
|
|
475
|
+
DEFINE_SYMBOL simpleble_EXPORTS
|
|
476
|
+
VERSION "${PROJECT_VERSION}"
|
|
477
|
+
SOVERSION "${PROJECT_VERSION_MAJOR}"
|
|
478
|
+
EXPORT_NAME simpleble-c
|
|
479
|
+
OUTPUT_NAME simpleble-c
|
|
480
|
+
RELEASE_POSTFIX ""
|
|
481
|
+
RELWITHDEBINFO_POSTFIX "-relwithdebinfo"
|
|
482
|
+
MINSIZEREL_POSTFIX "-minsizerel"
|
|
483
|
+
DEBUG_POSTFIX "-debug")
|
|
484
|
+
|
|
485
|
+
# Configure include directories for simpleble-c
|
|
486
|
+
target_include_directories(simpleble-c PRIVATE ${SIMPLEBLE_PRIVATE_INCLUDES})
|
|
487
|
+
target_include_directories(simpleble-c INTERFACE
|
|
488
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
|
489
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
|
490
|
+
target_include_directories(simpleble-c SYSTEM PUBLIC
|
|
491
|
+
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/export>)
|
|
492
|
+
|
|
493
|
+
# Configure linked libraries for simpleble-c
|
|
494
|
+
target_link_libraries(simpleble-c PRIVATE simpleble::simpleble)
|
|
495
|
+
|
|
496
|
+
# Apply OS-specific settings for simpleble-c
|
|
497
|
+
if(SIMPLEBLE_BACKEND_LINUX)
|
|
498
|
+
set_property(TARGET simpleble-c PROPERTY INSTALL_RPATH $ORIGIN)
|
|
499
|
+
elseif(SIMPLEBLE_BACKEND_MACOS)
|
|
500
|
+
set_property(TARGET simpleble-c PROPERTY INSTALL_RPATH @loader_path)
|
|
501
|
+
endif()
|
|
502
|
+
|
|
503
|
+
apply_build_options(simpleble-c
|
|
504
|
+
"${PRIVATE_COMPILE_DEFINITIONS}"
|
|
505
|
+
"${PRIVATE_COMPILE_OPTIONS}"
|
|
506
|
+
"${PRIVATE_LINK_OPTIONS}"
|
|
507
|
+
"${PUBLIC_LINK_OPTIONS}")
|
|
508
|
+
|
|
509
|
+
install(
|
|
510
|
+
TARGETS simpleble-c
|
|
511
|
+
EXPORT simpleble-config
|
|
512
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
513
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
514
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
515
|
+
|
|
516
|
+
install(
|
|
517
|
+
DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/include/simpleble_c/
|
|
518
|
+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/simpleble_c)
|
|
519
|
+
endif()
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
prefix=@CMAKE_INSTALL_PREFIX@
|
|
2
|
+
exec_prefix=@CMAKE_INSTALL_PREFIX@
|
|
3
|
+
libdir=@CMAKE_INSTALL_FULL_LIBDIR@
|
|
4
|
+
includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
|
|
5
|
+
|
|
6
|
+
Name: SimpleBLE
|
|
7
|
+
Description: "The ultimate fully-fledged cross-platform library for Bluetooth Low Energy (BLE)."
|
|
8
|
+
Version: @simpleble_VERSION@
|
|
9
|
+
Libs: -L${libdir} -lsimpleble @CMAKE_THREAD_LIBS_INIT@
|
|
10
|
+
Cflags: -I${includedir}
|
|
11
|
+
Conflicts:
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <functional>
|
|
4
|
+
#include <memory>
|
|
5
|
+
#include <string>
|
|
6
|
+
#include <vector>
|
|
7
|
+
|
|
8
|
+
#include <simpleble/export.h>
|
|
9
|
+
|
|
10
|
+
#include <simpleble/Exceptions.h>
|
|
11
|
+
#include <simpleble/Peripheral.h>
|
|
12
|
+
#include <simpleble/Types.h>
|
|
13
|
+
|
|
14
|
+
namespace SimpleBLE {
|
|
15
|
+
|
|
16
|
+
class AdapterBase;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Bluetooth Adapter.
|
|
20
|
+
*
|
|
21
|
+
* A default-constructed Adapter object is not initialized. Calling any method
|
|
22
|
+
* other than `initialized()` on an uninitialized Adapter will throw an exception
|
|
23
|
+
* of type `SimpleBLE::NotInitialized`.
|
|
24
|
+
*
|
|
25
|
+
* NOTE: This class is intended to be used by the user only. Library developers
|
|
26
|
+
* should use shared pointers to `AdapterBase` instead.
|
|
27
|
+
*/
|
|
28
|
+
class SIMPLEBLE_EXPORT Adapter {
|
|
29
|
+
public:
|
|
30
|
+
Adapter() = default;
|
|
31
|
+
virtual ~Adapter() = default;
|
|
32
|
+
|
|
33
|
+
bool initialized() const;
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Retrieve the underlying OS object/handle.
|
|
37
|
+
*
|
|
38
|
+
* For certain compatibility with external libraries, we sometimes need to
|
|
39
|
+
* expose the actual OS handle to the user. This is particularly important
|
|
40
|
+
* for MacOS right now.
|
|
41
|
+
*/
|
|
42
|
+
void* underlying() const;
|
|
43
|
+
|
|
44
|
+
std::string identifier();
|
|
45
|
+
BluetoothAddress address();
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Control the power state of the adapter.
|
|
49
|
+
*
|
|
50
|
+
* NOTE: The power on/off functionality is only supported on Windows and Linux (implementation pending).
|
|
51
|
+
* On other platforms, this method will do nothing.
|
|
52
|
+
* NOTE: Callbacks are currently a placeholder for future implementation.
|
|
53
|
+
*/
|
|
54
|
+
void power_on();
|
|
55
|
+
void power_off();
|
|
56
|
+
bool is_powered();
|
|
57
|
+
void set_callback_on_power_on(std::function<void()> on_power_on);
|
|
58
|
+
void set_callback_on_power_off(std::function<void()> on_power_off);
|
|
59
|
+
|
|
60
|
+
void scan_start();
|
|
61
|
+
void scan_stop();
|
|
62
|
+
void scan_for(int timeout_ms);
|
|
63
|
+
bool scan_is_active();
|
|
64
|
+
std::vector<Peripheral> scan_get_results();
|
|
65
|
+
|
|
66
|
+
void set_callback_on_scan_start(std::function<void()> on_scan_start);
|
|
67
|
+
void set_callback_on_scan_stop(std::function<void()> on_scan_stop);
|
|
68
|
+
void set_callback_on_scan_updated(std::function<void(Peripheral)> on_scan_updated);
|
|
69
|
+
void set_callback_on_scan_found(std::function<void(Peripheral)> on_scan_found);
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Retrieve a list of all paired peripherals.
|
|
73
|
+
*
|
|
74
|
+
* NOTE:This method is currently only supported by the Linux, Windows and Android backends.
|
|
75
|
+
*/
|
|
76
|
+
std::vector<Peripheral> get_paired_peripherals();
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Retrieve a list of all connected peripherals.
|
|
80
|
+
*
|
|
81
|
+
* NOTE: This method is currently only supported by the Windows backend. (More backends coming soon.)
|
|
82
|
+
*/
|
|
83
|
+
std::vector<Peripheral> get_connected_peripherals();
|
|
84
|
+
|
|
85
|
+
static bool bluetooth_enabled();
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Fetches a list of all available adapters from all available backends.
|
|
89
|
+
*
|
|
90
|
+
* This will cause backends to be instantiated/initialized and adapters
|
|
91
|
+
* too.
|
|
92
|
+
*/
|
|
93
|
+
static std::vector<Adapter> get_adapters();
|
|
94
|
+
|
|
95
|
+
protected:
|
|
96
|
+
AdapterBase* operator->();
|
|
97
|
+
const AdapterBase* operator->() const;
|
|
98
|
+
|
|
99
|
+
std::shared_ptr<AdapterBase> internal_;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
} // namespace SimpleBLE
|