react-native-ble-nitro 1.0.0-beta.6 → 1.0.0-beta.7

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 (169) hide show
  1. package/android/src/main/kotlin/co/zyke/ble/BleNitroBleManager.kt +1 -1
  2. package/android/src/main/kotlin/co/zyke/ble/BleNitroPackage.kt +4 -4
  3. package/ios/BleNitro.podspec +1 -1
  4. package/ios/BleNitroModule.swift +11 -9
  5. package/nitrogen/generated/.gitattributes +1 -0
  6. package/nitrogen/generated/android/BleNitro+autolinking.cmake +86 -0
  7. package/nitrogen/generated/android/BleNitro+autolinking.gradle +27 -0
  8. package/nitrogen/generated/android/BleNitroOnLoad.cpp +52 -0
  9. package/nitrogen/generated/android/BleNitroOnLoad.hpp +25 -0
  10. package/nitrogen/generated/android/c++/JBleATTErrorCode.hpp +107 -0
  11. package/nitrogen/generated/android/c++/JBleAndroidErrorCode.hpp +101 -0
  12. package/nitrogen/generated/android/c++/JBleErrorCode.hpp +170 -0
  13. package/nitrogen/generated/android/c++/JBleIOSErrorCode.hpp +92 -0
  14. package/nitrogen/generated/android/c++/JBleManagerNitroOptions.hpp +54 -0
  15. package/nitrogen/generated/android/c++/JBleRestoredState.hpp +76 -0
  16. package/nitrogen/generated/android/c++/JCharacteristicSubscriptionType.hpp +59 -0
  17. package/nitrogen/generated/android/c++/JConnectionOptions.hpp +61 -0
  18. package/nitrogen/generated/android/c++/JConnectionPriority.hpp +62 -0
  19. package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
  20. package/nitrogen/generated/android/c++/JFunc_void_State.hpp +76 -0
  21. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.hpp +88 -0
  22. package/nitrogen/generated/android/c++/JFunc_void_std__optional_NativeBleError__std__optional_NativeDevice_.hpp +91 -0
  23. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.cpp +653 -0
  24. package/nitrogen/generated/android/c++/JHybridBleManagerSpec.hpp +92 -0
  25. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.cpp +253 -0
  26. package/nitrogen/generated/android/c++/JHybridCharacteristicSpec.hpp +79 -0
  27. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.cpp +115 -0
  28. package/nitrogen/generated/android/c++/JHybridDescriptorSpec.hpp +70 -0
  29. package/nitrogen/generated/android/c++/JHybridDeviceSpec.cpp +476 -0
  30. package/nitrogen/generated/android/c++/JHybridDeviceSpec.hpp +90 -0
  31. package/nitrogen/generated/android/c++/JHybridServiceSpec.cpp +232 -0
  32. package/nitrogen/generated/android/c++/JHybridServiceSpec.hpp +72 -0
  33. package/nitrogen/generated/android/c++/JLogLevel.hpp +71 -0
  34. package/nitrogen/generated/android/c++/JNativeBleError.hpp +98 -0
  35. package/nitrogen/generated/android/c++/JNativeCharacteristic.hpp +98 -0
  36. package/nitrogen/generated/android/c++/JNativeDescriptor.hpp +82 -0
  37. package/nitrogen/generated/android/c++/JNativeDevice.hpp +173 -0
  38. package/nitrogen/generated/android/c++/JNativeService.hpp +65 -0
  39. package/nitrogen/generated/android/c++/JScanCallbackType.hpp +62 -0
  40. package/nitrogen/generated/android/c++/JScanMode.hpp +65 -0
  41. package/nitrogen/generated/android/c++/JScanOptions.hpp +69 -0
  42. package/nitrogen/generated/android/c++/JServiceDataEntry.hpp +57 -0
  43. package/nitrogen/generated/android/c++/JState.hpp +71 -0
  44. package/nitrogen/generated/android/c++/JSubscription.hpp +64 -0
  45. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleATTErrorCode.kt +41 -0
  46. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleAndroidErrorCode.kt +39 -0
  47. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleErrorCode.kt +62 -0
  48. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleIOSErrorCode.kt +36 -0
  49. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleManagerNitroOptions.kt +26 -0
  50. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleNitroOnLoad.kt +35 -0
  51. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/BleRestoredState.kt +26 -0
  52. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/CharacteristicSubscriptionType.kt +25 -0
  53. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ConnectionOptions.kt +28 -0
  54. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ConnectionPriority.kt +26 -0
  55. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void.kt +80 -0
  56. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_State.kt +80 -0
  57. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.kt +80 -0
  58. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.kt +80 -0
  59. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridBleManagerSpec.kt +192 -0
  60. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridCharacteristicSpec.kt +127 -0
  61. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDescriptorSpec.kt +86 -0
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridDeviceSpec.kt +176 -0
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/HybridServiceSpec.kt +99 -0
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/LogLevel.kt +29 -0
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeBleError.kt +35 -0
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeCharacteristic.kt +37 -0
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDescriptor.kt +33 -0
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeDevice.kt +38 -0
  69. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/NativeService.kt +29 -0
  70. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanCallbackType.kt +26 -0
  71. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanMode.kt +27 -0
  72. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ScanOptions.kt +29 -0
  73. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/ServiceDataEntry.kt +27 -0
  74. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/State.kt +29 -0
  75. package/nitrogen/generated/android/kotlin/com/margelo/nitro/co/zyke/ble/Subscription.kt +30 -0
  76. package/nitrogen/generated/ios/BleNitro+autolinking.rb +60 -0
  77. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.cpp +236 -0
  78. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Bridge.hpp +1069 -0
  79. package/nitrogen/generated/ios/BleNitro-Swift-Cxx-Umbrella.hpp +131 -0
  80. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.cpp +11 -0
  81. package/nitrogen/generated/ios/c++/HybridBleManagerSpecSwift.hpp +377 -0
  82. package/nitrogen/generated/ios/c++/HybridCharacteristicSpecSwift.cpp +11 -0
  83. package/nitrogen/generated/ios/c++/HybridCharacteristicSpecSwift.hpp +192 -0
  84. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.cpp +11 -0
  85. package/nitrogen/generated/ios/c++/HybridDescriptorSpecSwift.hpp +112 -0
  86. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.cpp +11 -0
  87. package/nitrogen/generated/ios/c++/HybridDeviceSpecSwift.hpp +294 -0
  88. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.cpp +11 -0
  89. package/nitrogen/generated/ios/c++/HybridServiceSpecSwift.hpp +170 -0
  90. package/nitrogen/generated/ios/swift/BleATTErrorCode.swift +104 -0
  91. package/nitrogen/generated/ios/swift/BleAndroidErrorCode.swift +96 -0
  92. package/nitrogen/generated/ios/swift/BleErrorCode.swift +188 -0
  93. package/nitrogen/generated/ios/swift/BleIOSErrorCode.swift +84 -0
  94. package/nitrogen/generated/ios/swift/BleManagerNitroOptions.swift +53 -0
  95. package/nitrogen/generated/ios/swift/BleRestoredState.swift +47 -0
  96. package/nitrogen/generated/ios/swift/CharacteristicSubscriptionType.swift +40 -0
  97. package/nitrogen/generated/ios/swift/ConnectionOptions.swift +57 -0
  98. package/nitrogen/generated/ios/swift/ConnectionPriority.swift +44 -0
  99. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  100. package/nitrogen/generated/ios/swift/Func_void_LogLevel.swift +46 -0
  101. package/nitrogen/generated/ios/swift/Func_void_NativeCharacteristic.swift +46 -0
  102. package/nitrogen/generated/ios/swift/Func_void_NativeDescriptor.swift +46 -0
  103. package/nitrogen/generated/ios/swift/Func_void_NativeDevice.swift +46 -0
  104. package/nitrogen/generated/ios/swift/Func_void_State.swift +46 -0
  105. package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
  106. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  107. package/nitrogen/generated/ios/swift/Func_void_std__optional_BleRestoredState_.swift +52 -0
  108. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.swift +58 -0
  109. package/nitrogen/generated/ios/swift/Func_void_std__optional_NativeBleError__std__optional_NativeDevice_.swift +58 -0
  110. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridCharacteristicSpec_.swift +50 -0
  111. package/nitrogen/generated/ios/swift/Func_void_std__shared_ptr_margelo__nitro__co__zyke__ble__HybridDescriptorSpec_.swift +50 -0
  112. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeCharacteristic_.swift +46 -0
  113. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeDescriptor_.swift +46 -0
  114. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeDevice_.swift +46 -0
  115. package/nitrogen/generated/ios/swift/Func_void_std__vector_NativeService_.swift +46 -0
  116. package/nitrogen/generated/ios/swift/HybridBleManagerSpec.swift +78 -0
  117. package/nitrogen/generated/ios/swift/HybridBleManagerSpec_cxx.swift +852 -0
  118. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec.swift +65 -0
  119. package/nitrogen/generated/ios/swift/HybridCharacteristicSpec_cxx.swift +384 -0
  120. package/nitrogen/generated/ios/swift/HybridDescriptorSpec.swift +56 -0
  121. package/nitrogen/generated/ios/swift/HybridDescriptorSpec_cxx.swift +218 -0
  122. package/nitrogen/generated/ios/swift/HybridDeviceSpec.swift +76 -0
  123. package/nitrogen/generated/ios/swift/HybridDeviceSpec_cxx.swift +702 -0
  124. package/nitrogen/generated/ios/swift/HybridServiceSpec.swift +58 -0
  125. package/nitrogen/generated/ios/swift/HybridServiceSpec_cxx.swift +338 -0
  126. package/nitrogen/generated/ios/swift/LogLevel.swift +56 -0
  127. package/nitrogen/generated/ios/swift/NativeBleError.swift +278 -0
  128. package/nitrogen/generated/ios/swift/NativeCharacteristic.swift +174 -0
  129. package/nitrogen/generated/ios/swift/NativeDescriptor.swift +130 -0
  130. package/nitrogen/generated/ios/swift/NativeDevice.swift +377 -0
  131. package/nitrogen/generated/ios/swift/NativeService.swift +68 -0
  132. package/nitrogen/generated/ios/swift/ScanCallbackType.swift +44 -0
  133. package/nitrogen/generated/ios/swift/ScanMode.swift +48 -0
  134. package/nitrogen/generated/ios/swift/ScanOptions.swift +116 -0
  135. package/nitrogen/generated/ios/swift/ServiceDataEntry.swift +46 -0
  136. package/nitrogen/generated/ios/swift/State.swift +56 -0
  137. package/nitrogen/generated/ios/swift/Subscription.swift +46 -0
  138. package/nitrogen/generated/shared/c++/BleATTErrorCode.hpp +80 -0
  139. package/nitrogen/generated/shared/c++/BleAndroidErrorCode.hpp +78 -0
  140. package/nitrogen/generated/shared/c++/BleErrorCode.hpp +101 -0
  141. package/nitrogen/generated/shared/c++/BleIOSErrorCode.hpp +75 -0
  142. package/nitrogen/generated/shared/c++/BleManagerNitroOptions.hpp +70 -0
  143. package/nitrogen/generated/shared/c++/BleRestoredState.hpp +71 -0
  144. package/nitrogen/generated/shared/c++/CharacteristicSubscriptionType.hpp +64 -0
  145. package/nitrogen/generated/shared/c++/ConnectionOptions.hpp +77 -0
  146. package/nitrogen/generated/shared/c++/ConnectionPriority.hpp +65 -0
  147. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.cpp +51 -0
  148. package/nitrogen/generated/shared/c++/HybridBleManagerSpec.hpp +137 -0
  149. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.cpp +39 -0
  150. package/nitrogen/generated/shared/c++/HybridCharacteristicSpec.hpp +101 -0
  151. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.cpp +30 -0
  152. package/nitrogen/generated/shared/c++/HybridDescriptorSpec.hpp +75 -0
  153. package/nitrogen/generated/shared/c++/HybridDeviceSpec.cpp +50 -0
  154. package/nitrogen/generated/shared/c++/HybridDeviceSpec.hpp +123 -0
  155. package/nitrogen/generated/shared/c++/HybridServiceSpec.cpp +32 -0
  156. package/nitrogen/generated/shared/c++/HybridServiceSpec.hpp +90 -0
  157. package/nitrogen/generated/shared/c++/LogLevel.hpp +68 -0
  158. package/nitrogen/generated/shared/c++/NativeBleError.hpp +117 -0
  159. package/nitrogen/generated/shared/c++/NativeCharacteristic.hpp +114 -0
  160. package/nitrogen/generated/shared/c++/NativeDescriptor.hpp +98 -0
  161. package/nitrogen/generated/shared/c++/NativeDevice.hpp +121 -0
  162. package/nitrogen/generated/shared/c++/NativeService.hpp +81 -0
  163. package/nitrogen/generated/shared/c++/ScanCallbackType.hpp +65 -0
  164. package/nitrogen/generated/shared/c++/ScanMode.hpp +66 -0
  165. package/nitrogen/generated/shared/c++/ScanOptions.hpp +86 -0
  166. package/nitrogen/generated/shared/c++/ServiceDataEntry.hpp +73 -0
  167. package/nitrogen/generated/shared/c++/State.hpp +68 -0
  168. package/nitrogen/generated/shared/c++/Subscription.hpp +69 -0
  169. package/package.json +6 -5
@@ -15,7 +15,7 @@ import android.util.Base64
15
15
  import android.util.Log
16
16
  import androidx.core.content.ContextCompat
17
17
  import com.facebook.react.bridge.ReactApplicationContext
18
- import com.margelo.nitro.NitroModules
18
+ import com.margelo.nitro.co.zyke.ble.HybridBleManagerSpec
19
19
  import kotlinx.coroutines.*
20
20
  import kotlinx.coroutines.channels.Channel
21
21
  import no.nordicsemi.android.ble.BleManager
@@ -10,18 +10,18 @@ import com.facebook.react.ReactPackage
10
10
  import com.facebook.react.bridge.NativeModule
11
11
  import com.facebook.react.bridge.ReactApplicationContext
12
12
  import com.facebook.react.uimanager.ViewManager
13
- import com.margelo.nitro.NitroModules
13
+ import com.margelo.nitro.HybridObjectRegistry
14
14
 
15
15
  /**
16
16
  * React Native package for BLE Nitro
17
- * Registers the Nitro module factory with React Native
17
+ * Registers the HybridObject manually through the registry
18
18
  */
19
19
  class BleNitroPackage : ReactPackage {
20
20
 
21
21
  companion object {
22
22
  init {
23
- // Register the Nitro module factory
24
- NitroModules.registerModule("BleNitroManager") { context ->
23
+ // Register the BleManager HybridObject
24
+ HybridObjectRegistry.registerHybridObjectConstructor("BleManager") { context ->
25
25
  BleNitroBleManager(context as ReactApplicationContext)
26
26
  }
27
27
  }
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
10
10
  s.license = package["license"]
11
11
  s.authors = package["author"]
12
12
 
13
- s.platforms = { :ios => "11.0" }
13
+ s.platforms = { :ios => "15.1" }
14
14
  s.source = { :git => "https://github.com/zykeco/react-native-ble-nitro.git", :tag => "#{s.version}" }
15
15
 
16
16
  s.source_files = "**/*.{h,m,mm,swift}"
@@ -19,13 +19,15 @@ public class BleNitroModule: NSObject {
19
19
  public func constantsToExport() -> [String: Any] {
20
20
  return [:]
21
21
  }
22
- }
23
-
24
- /**
25
- * Nitro module factory for creating BLE manager instances
26
- */
27
- @_cdecl("create_ble_nitro_manager")
28
- public func createBleNitroManager() -> UnsafeMutableRawPointer {
29
- let manager = BleNitroBleManager()
30
- return Unmanaged.passRetained(manager).toOpaque()
22
+
23
+ override init() {
24
+ super.init()
25
+ // Register the BleManager HybridObject
26
+ HybridObjectRegistry.registerHybridObjectConstructor(
27
+ name: "BleManager",
28
+ constructor: {
29
+ return BleNitroBleManager()
30
+ }
31
+ )
32
+ }
31
33
  }
@@ -0,0 +1 @@
1
+ ** linguist-generated=true
@@ -0,0 +1,86 @@
1
+ #
2
+ # BleNitro+autolinking.cmake
3
+ # This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ # https://github.com/mrousavy/nitro
5
+ # Copyright © 2025 Marc Rousavy @ Margelo
6
+ #
7
+
8
+ # This is a CMake file that adds all files generated by Nitrogen
9
+ # to the current CMake project.
10
+ #
11
+ # To use it, add this to your CMakeLists.txt:
12
+ # ```cmake
13
+ # include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/BleNitro+autolinking.cmake)
14
+ # ```
15
+
16
+ # Add all headers that were generated by Nitrogen
17
+ include_directories(
18
+ "../nitrogen/generated/shared/c++"
19
+ "../nitrogen/generated/android/c++"
20
+ "../nitrogen/generated/android/"
21
+ )
22
+
23
+ # Add all .cpp sources that were generated by Nitrogen
24
+ target_sources(
25
+ # CMake project name (Android C++ library name)
26
+ BleNitro PRIVATE
27
+ # Autolinking Setup
28
+ ../nitrogen/generated/android/BleNitroOnLoad.cpp
29
+ # Shared Nitrogen C++ sources
30
+ ../nitrogen/generated/shared/c++/HybridBleManagerSpec.cpp
31
+ ../nitrogen/generated/shared/c++/HybridCharacteristicSpec.cpp
32
+ ../nitrogen/generated/shared/c++/HybridDescriptorSpec.cpp
33
+ ../nitrogen/generated/shared/c++/HybridDeviceSpec.cpp
34
+ ../nitrogen/generated/shared/c++/HybridServiceSpec.cpp
35
+ # Android-specific Nitrogen C++ sources
36
+ ../nitrogen/generated/android/c++/JHybridBleManagerSpec.cpp
37
+ ../nitrogen/generated/android/c++/JHybridCharacteristicSpec.cpp
38
+ ../nitrogen/generated/android/c++/JHybridDescriptorSpec.cpp
39
+ ../nitrogen/generated/android/c++/JHybridDeviceSpec.cpp
40
+ ../nitrogen/generated/android/c++/JHybridServiceSpec.cpp
41
+ )
42
+
43
+ # Define a flag to check if we are building properly
44
+ add_definitions(-DBUILDING_BLENITRO_WITH_GENERATED_CMAKE_PROJECT)
45
+
46
+ # From node_modules/react-native/ReactAndroid/cmake-utils/folly-flags.cmake
47
+ # Used in node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake
48
+ target_compile_definitions(
49
+ BleNitro PRIVATE
50
+ -DFOLLY_NO_CONFIG=1
51
+ -DFOLLY_HAVE_CLOCK_GETTIME=1
52
+ -DFOLLY_USE_LIBCPP=1
53
+ -DFOLLY_CFG_NO_COROUTINES=1
54
+ -DFOLLY_MOBILE=1
55
+ -DFOLLY_HAVE_RECVMMSG=1
56
+ -DFOLLY_HAVE_PTHREAD=1
57
+ # Once we target android-23 above, we can comment
58
+ # the following line. NDK uses GNU style stderror_r() after API 23.
59
+ -DFOLLY_HAVE_XSI_STRERROR_R=1
60
+ )
61
+
62
+ # Add all libraries required by the generated specs
63
+ find_package(fbjni REQUIRED) # <-- Used for communication between Java <-> C++
64
+ find_package(ReactAndroid REQUIRED) # <-- Used to set up React Native bindings (e.g. CallInvoker/TurboModule)
65
+ find_package(react-native-nitro-modules REQUIRED) # <-- Used to create all HybridObjects and use the Nitro core library
66
+
67
+ # Link all libraries together
68
+ target_link_libraries(
69
+ BleNitro
70
+ fbjni::fbjni # <-- Facebook C++ JNI helpers
71
+ ReactAndroid::jsi # <-- RN: JSI
72
+ react-native-nitro-modules::NitroModules # <-- NitroModules Core :)
73
+ )
74
+
75
+ # Link react-native (different prefab between RN 0.75 and RN 0.76)
76
+ if(ReactAndroid_VERSION_MINOR GREATER_EQUAL 76)
77
+ target_link_libraries(
78
+ BleNitro
79
+ ReactAndroid::reactnative # <-- RN: Native Modules umbrella prefab
80
+ )
81
+ else()
82
+ target_link_libraries(
83
+ BleNitro
84
+ ReactAndroid::react_nativemodule_core # <-- RN: TurboModules Core
85
+ )
86
+ endif()
@@ -0,0 +1,27 @@
1
+ ///
2
+ /// BleNitro+autolinking.gradle
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ /// This is a Gradle file that adds all files generated by Nitrogen
9
+ /// to the current Gradle project.
10
+ ///
11
+ /// To use it, add this to your build.gradle:
12
+ /// ```gradle
13
+ /// apply from: '../nitrogen/generated/android/BleNitro+autolinking.gradle'
14
+ /// ```
15
+
16
+ logger.warn("[NitroModules] 🔥 BleNitro is boosted by nitro!")
17
+
18
+ android {
19
+ sourceSets {
20
+ main {
21
+ java.srcDirs += [
22
+ // Nitrogen files
23
+ "${project.projectDir}/../nitrogen/generated/android/kotlin"
24
+ ]
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,52 @@
1
+ ///
2
+ /// BleNitroOnLoad.cpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #ifndef BUILDING_BLENITRO_WITH_GENERATED_CMAKE_PROJECT
9
+ #error BleNitroOnLoad.cpp is not being built with the autogenerated CMakeLists.txt project. Is a different CMakeLists.txt building this?
10
+ #endif
11
+
12
+ #include "BleNitroOnLoad.hpp"
13
+
14
+ #include <jni.h>
15
+ #include <fbjni/fbjni.h>
16
+ #include <NitroModules/HybridObjectRegistry.hpp>
17
+
18
+ #include "JHybridBleManagerSpec.hpp"
19
+ #include "JFunc_void.hpp"
20
+ #include "JFunc_void_State.hpp"
21
+ #include "JFunc_void_std__optional_NativeBleError__std__optional_NativeDevice_.hpp"
22
+ #include "JFunc_void_std__optional_NativeBleError__std__optional_NativeCharacteristic_.hpp"
23
+ #include "JHybridCharacteristicSpec.hpp"
24
+ #include "JHybridDescriptorSpec.hpp"
25
+ #include "JHybridDeviceSpec.hpp"
26
+ #include "JHybridServiceSpec.hpp"
27
+
28
+ namespace margelo::nitro::co::zyke::ble {
29
+
30
+ int initialize(JavaVM* vm) {
31
+ using namespace margelo::nitro;
32
+ using namespace margelo::nitro::co::zyke::ble;
33
+ using namespace facebook;
34
+
35
+ return facebook::jni::initialize(vm, [] {
36
+ // Register native JNI methods
37
+ margelo::nitro::co::zyke::ble::JHybridBleManagerSpec::registerNatives();
38
+ margelo::nitro::co::zyke::ble::JFunc_void_cxx::registerNatives();
39
+ margelo::nitro::co::zyke::ble::JFunc_void_State_cxx::registerNatives();
40
+ margelo::nitro::co::zyke::ble::JFunc_void_std__optional_NativeBleError__std__optional_NativeDevice__cxx::registerNatives();
41
+ margelo::nitro::co::zyke::ble::JFunc_void_std__optional_NativeBleError__std__optional_NativeCharacteristic__cxx::registerNatives();
42
+ margelo::nitro::co::zyke::ble::JHybridCharacteristicSpec::registerNatives();
43
+ margelo::nitro::co::zyke::ble::JHybridDescriptorSpec::registerNatives();
44
+ margelo::nitro::co::zyke::ble::JHybridDeviceSpec::registerNatives();
45
+ margelo::nitro::co::zyke::ble::JHybridServiceSpec::registerNatives();
46
+
47
+ // Register Nitro Hybrid Objects
48
+
49
+ });
50
+ }
51
+
52
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,25 @@
1
+ ///
2
+ /// BleNitroOnLoad.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #include <jni.h>
9
+ #include <NitroModules/NitroDefines.hpp>
10
+
11
+ namespace margelo::nitro::co::zyke::ble {
12
+
13
+ /**
14
+ * Initializes the native (C++) part of BleNitro, and autolinks all Hybrid Objects.
15
+ * Call this in your `JNI_OnLoad` function (probably inside `cpp-adapter.cpp`).
16
+ * Example:
17
+ * ```cpp (cpp-adapter.cpp)
18
+ * JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
19
+ * return margelo::nitro::co::zyke::ble::initialize(vm);
20
+ * }
21
+ * ```
22
+ */
23
+ int initialize(JavaVM* vm);
24
+
25
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,107 @@
1
+ ///
2
+ /// JBleATTErrorCode.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "BleATTErrorCode.hpp"
12
+
13
+ namespace margelo::nitro::co::zyke::ble {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "BleATTErrorCode" and the the Kotlin enum "BleATTErrorCode".
19
+ */
20
+ struct JBleATTErrorCode final: public jni::JavaClass<JBleATTErrorCode> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/BleATTErrorCode;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum BleATTErrorCode.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ BleATTErrorCode toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("_ordinal");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<BleATTErrorCode>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JBleATTErrorCode> fromCpp(BleATTErrorCode value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldSUCCESS = clazz->getStaticField<JBleATTErrorCode>("SUCCESS");
45
+ static const auto fieldINVALIDHANDLE = clazz->getStaticField<JBleATTErrorCode>("INVALIDHANDLE");
46
+ static const auto fieldREADNOTPERMITTED = clazz->getStaticField<JBleATTErrorCode>("READNOTPERMITTED");
47
+ static const auto fieldWRITENOTPERMITTED = clazz->getStaticField<JBleATTErrorCode>("WRITENOTPERMITTED");
48
+ static const auto fieldINVALIDPDU = clazz->getStaticField<JBleATTErrorCode>("INVALIDPDU");
49
+ static const auto fieldINSUFFICIENTAUTHENTICATION = clazz->getStaticField<JBleATTErrorCode>("INSUFFICIENTAUTHENTICATION");
50
+ static const auto fieldREQUESTNOTSUPPORTED = clazz->getStaticField<JBleATTErrorCode>("REQUESTNOTSUPPORTED");
51
+ static const auto fieldINVALIDOFFSET = clazz->getStaticField<JBleATTErrorCode>("INVALIDOFFSET");
52
+ static const auto fieldINSUFFICIENTAUTHORIZATION = clazz->getStaticField<JBleATTErrorCode>("INSUFFICIENTAUTHORIZATION");
53
+ static const auto fieldPREPAREQUEUEFULL = clazz->getStaticField<JBleATTErrorCode>("PREPAREQUEUEFULL");
54
+ static const auto fieldATTRIBUTENOTFOUND = clazz->getStaticField<JBleATTErrorCode>("ATTRIBUTENOTFOUND");
55
+ static const auto fieldATTRIBUTENOTLONG = clazz->getStaticField<JBleATTErrorCode>("ATTRIBUTENOTLONG");
56
+ static const auto fieldINSUFFICIENTENCRYPTIONKEYSIZE = clazz->getStaticField<JBleATTErrorCode>("INSUFFICIENTENCRYPTIONKEYSIZE");
57
+ static const auto fieldINVALIDATTRIBUTEVALUELENGTH = clazz->getStaticField<JBleATTErrorCode>("INVALIDATTRIBUTEVALUELENGTH");
58
+ static const auto fieldUNLIKELYERROR = clazz->getStaticField<JBleATTErrorCode>("UNLIKELYERROR");
59
+ static const auto fieldINSUFFICIENTENCRYPTION = clazz->getStaticField<JBleATTErrorCode>("INSUFFICIENTENCRYPTION");
60
+ static const auto fieldUNSUPPORTEDGROUPTYPE = clazz->getStaticField<JBleATTErrorCode>("UNSUPPORTEDGROUPTYPE");
61
+ static const auto fieldINSUFFICIENTRESOURCES = clazz->getStaticField<JBleATTErrorCode>("INSUFFICIENTRESOURCES");
62
+
63
+ switch (value) {
64
+ case BleATTErrorCode::SUCCESS:
65
+ return clazz->getStaticFieldValue(fieldSUCCESS);
66
+ case BleATTErrorCode::INVALIDHANDLE:
67
+ return clazz->getStaticFieldValue(fieldINVALIDHANDLE);
68
+ case BleATTErrorCode::READNOTPERMITTED:
69
+ return clazz->getStaticFieldValue(fieldREADNOTPERMITTED);
70
+ case BleATTErrorCode::WRITENOTPERMITTED:
71
+ return clazz->getStaticFieldValue(fieldWRITENOTPERMITTED);
72
+ case BleATTErrorCode::INVALIDPDU:
73
+ return clazz->getStaticFieldValue(fieldINVALIDPDU);
74
+ case BleATTErrorCode::INSUFFICIENTAUTHENTICATION:
75
+ return clazz->getStaticFieldValue(fieldINSUFFICIENTAUTHENTICATION);
76
+ case BleATTErrorCode::REQUESTNOTSUPPORTED:
77
+ return clazz->getStaticFieldValue(fieldREQUESTNOTSUPPORTED);
78
+ case BleATTErrorCode::INVALIDOFFSET:
79
+ return clazz->getStaticFieldValue(fieldINVALIDOFFSET);
80
+ case BleATTErrorCode::INSUFFICIENTAUTHORIZATION:
81
+ return clazz->getStaticFieldValue(fieldINSUFFICIENTAUTHORIZATION);
82
+ case BleATTErrorCode::PREPAREQUEUEFULL:
83
+ return clazz->getStaticFieldValue(fieldPREPAREQUEUEFULL);
84
+ case BleATTErrorCode::ATTRIBUTENOTFOUND:
85
+ return clazz->getStaticFieldValue(fieldATTRIBUTENOTFOUND);
86
+ case BleATTErrorCode::ATTRIBUTENOTLONG:
87
+ return clazz->getStaticFieldValue(fieldATTRIBUTENOTLONG);
88
+ case BleATTErrorCode::INSUFFICIENTENCRYPTIONKEYSIZE:
89
+ return clazz->getStaticFieldValue(fieldINSUFFICIENTENCRYPTIONKEYSIZE);
90
+ case BleATTErrorCode::INVALIDATTRIBUTEVALUELENGTH:
91
+ return clazz->getStaticFieldValue(fieldINVALIDATTRIBUTEVALUELENGTH);
92
+ case BleATTErrorCode::UNLIKELYERROR:
93
+ return clazz->getStaticFieldValue(fieldUNLIKELYERROR);
94
+ case BleATTErrorCode::INSUFFICIENTENCRYPTION:
95
+ return clazz->getStaticFieldValue(fieldINSUFFICIENTENCRYPTION);
96
+ case BleATTErrorCode::UNSUPPORTEDGROUPTYPE:
97
+ return clazz->getStaticFieldValue(fieldUNSUPPORTEDGROUPTYPE);
98
+ case BleATTErrorCode::INSUFFICIENTRESOURCES:
99
+ return clazz->getStaticFieldValue(fieldINSUFFICIENTRESOURCES);
100
+ default:
101
+ std::string stringValue = std::to_string(static_cast<int>(value));
102
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
103
+ }
104
+ }
105
+ };
106
+
107
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,101 @@
1
+ ///
2
+ /// JBleAndroidErrorCode.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "BleAndroidErrorCode.hpp"
12
+
13
+ namespace margelo::nitro::co::zyke::ble {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "BleAndroidErrorCode" and the the Kotlin enum "BleAndroidErrorCode".
19
+ */
20
+ struct JBleAndroidErrorCode final: public jni::JavaClass<JBleAndroidErrorCode> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/BleAndroidErrorCode;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum BleAndroidErrorCode.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ BleAndroidErrorCode toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("_ordinal");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<BleAndroidErrorCode>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JBleAndroidErrorCode> fromCpp(BleAndroidErrorCode value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldNORESOURCES = clazz->getStaticField<JBleAndroidErrorCode>("NORESOURCES");
45
+ static const auto fieldINTERNALERROR = clazz->getStaticField<JBleAndroidErrorCode>("INTERNALERROR");
46
+ static const auto fieldWRONGSTATE = clazz->getStaticField<JBleAndroidErrorCode>("WRONGSTATE");
47
+ static const auto fieldDBFULL = clazz->getStaticField<JBleAndroidErrorCode>("DBFULL");
48
+ static const auto fieldBUSY = clazz->getStaticField<JBleAndroidErrorCode>("BUSY");
49
+ static const auto fieldERROR = clazz->getStaticField<JBleAndroidErrorCode>("ERROR");
50
+ static const auto fieldCMDSTARTED = clazz->getStaticField<JBleAndroidErrorCode>("CMDSTARTED");
51
+ static const auto fieldILLEGALPARAMETER = clazz->getStaticField<JBleAndroidErrorCode>("ILLEGALPARAMETER");
52
+ static const auto fieldPENDING = clazz->getStaticField<JBleAndroidErrorCode>("PENDING");
53
+ static const auto fieldAUTHFAIL = clazz->getStaticField<JBleAndroidErrorCode>("AUTHFAIL");
54
+ static const auto fieldMORE = clazz->getStaticField<JBleAndroidErrorCode>("MORE");
55
+ static const auto fieldINVALIDCFG = clazz->getStaticField<JBleAndroidErrorCode>("INVALIDCFG");
56
+ static const auto fieldSERVICESTARTED = clazz->getStaticField<JBleAndroidErrorCode>("SERVICESTARTED");
57
+ static const auto fieldENCRYPEDNOMITM = clazz->getStaticField<JBleAndroidErrorCode>("ENCRYPEDNOMITM");
58
+ static const auto fieldNOTENCRYPTED = clazz->getStaticField<JBleAndroidErrorCode>("NOTENCRYPTED");
59
+ static const auto fieldCONGESTED = clazz->getStaticField<JBleAndroidErrorCode>("CONGESTED");
60
+
61
+ switch (value) {
62
+ case BleAndroidErrorCode::NORESOURCES:
63
+ return clazz->getStaticFieldValue(fieldNORESOURCES);
64
+ case BleAndroidErrorCode::INTERNALERROR:
65
+ return clazz->getStaticFieldValue(fieldINTERNALERROR);
66
+ case BleAndroidErrorCode::WRONGSTATE:
67
+ return clazz->getStaticFieldValue(fieldWRONGSTATE);
68
+ case BleAndroidErrorCode::DBFULL:
69
+ return clazz->getStaticFieldValue(fieldDBFULL);
70
+ case BleAndroidErrorCode::BUSY:
71
+ return clazz->getStaticFieldValue(fieldBUSY);
72
+ case BleAndroidErrorCode::ERROR:
73
+ return clazz->getStaticFieldValue(fieldERROR);
74
+ case BleAndroidErrorCode::CMDSTARTED:
75
+ return clazz->getStaticFieldValue(fieldCMDSTARTED);
76
+ case BleAndroidErrorCode::ILLEGALPARAMETER:
77
+ return clazz->getStaticFieldValue(fieldILLEGALPARAMETER);
78
+ case BleAndroidErrorCode::PENDING:
79
+ return clazz->getStaticFieldValue(fieldPENDING);
80
+ case BleAndroidErrorCode::AUTHFAIL:
81
+ return clazz->getStaticFieldValue(fieldAUTHFAIL);
82
+ case BleAndroidErrorCode::MORE:
83
+ return clazz->getStaticFieldValue(fieldMORE);
84
+ case BleAndroidErrorCode::INVALIDCFG:
85
+ return clazz->getStaticFieldValue(fieldINVALIDCFG);
86
+ case BleAndroidErrorCode::SERVICESTARTED:
87
+ return clazz->getStaticFieldValue(fieldSERVICESTARTED);
88
+ case BleAndroidErrorCode::ENCRYPEDNOMITM:
89
+ return clazz->getStaticFieldValue(fieldENCRYPEDNOMITM);
90
+ case BleAndroidErrorCode::NOTENCRYPTED:
91
+ return clazz->getStaticFieldValue(fieldNOTENCRYPTED);
92
+ case BleAndroidErrorCode::CONGESTED:
93
+ return clazz->getStaticFieldValue(fieldCONGESTED);
94
+ default:
95
+ std::string stringValue = std::to_string(static_cast<int>(value));
96
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
97
+ }
98
+ }
99
+ };
100
+
101
+ } // namespace margelo::nitro::co::zyke::ble
@@ -0,0 +1,170 @@
1
+ ///
2
+ /// JBleErrorCode.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © 2025 Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #include <fbjni/fbjni.h>
11
+ #include "BleErrorCode.hpp"
12
+
13
+ namespace margelo::nitro::co::zyke::ble {
14
+
15
+ using namespace facebook;
16
+
17
+ /**
18
+ * The C++ JNI bridge between the C++ enum "BleErrorCode" and the the Kotlin enum "BleErrorCode".
19
+ */
20
+ struct JBleErrorCode final: public jni::JavaClass<JBleErrorCode> {
21
+ public:
22
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/co/zyke/ble/BleErrorCode;";
23
+
24
+ public:
25
+ /**
26
+ * Convert this Java/Kotlin-based enum to the C++ enum BleErrorCode.
27
+ */
28
+ [[maybe_unused]]
29
+ [[nodiscard]]
30
+ BleErrorCode toCpp() const {
31
+ static const auto clazz = javaClassStatic();
32
+ static const auto fieldOrdinal = clazz->getField<int>("_ordinal");
33
+ int ordinal = this->getFieldValue(fieldOrdinal);
34
+ return static_cast<BleErrorCode>(ordinal);
35
+ }
36
+
37
+ public:
38
+ /**
39
+ * Create a Java/Kotlin-based enum with the given C++ enum's value.
40
+ */
41
+ [[maybe_unused]]
42
+ static jni::alias_ref<JBleErrorCode> fromCpp(BleErrorCode value) {
43
+ static const auto clazz = javaClassStatic();
44
+ static const auto fieldUNKNOWNERROR = clazz->getStaticField<JBleErrorCode>("UNKNOWNERROR");
45
+ static const auto fieldBLUETOOTHMANAGERDESTROYED = clazz->getStaticField<JBleErrorCode>("BLUETOOTHMANAGERDESTROYED");
46
+ static const auto fieldOPERATIONCANCELLED = clazz->getStaticField<JBleErrorCode>("OPERATIONCANCELLED");
47
+ static const auto fieldOPERATIONTIMEDOUT = clazz->getStaticField<JBleErrorCode>("OPERATIONTIMEDOUT");
48
+ static const auto fieldOPERATIONSTARTFAILED = clazz->getStaticField<JBleErrorCode>("OPERATIONSTARTFAILED");
49
+ static const auto fieldINVALIDIDENTIFIERS = clazz->getStaticField<JBleErrorCode>("INVALIDIDENTIFIERS");
50
+ static const auto fieldBLUETOOTHUNSUPPORTED = clazz->getStaticField<JBleErrorCode>("BLUETOOTHUNSUPPORTED");
51
+ static const auto fieldBLUETOOTHUNAUTHORIZED = clazz->getStaticField<JBleErrorCode>("BLUETOOTHUNAUTHORIZED");
52
+ static const auto fieldBLUETOOTHPOWEREDOFF = clazz->getStaticField<JBleErrorCode>("BLUETOOTHPOWEREDOFF");
53
+ static const auto fieldBLUETOOTHINUNKNOWNSTATE = clazz->getStaticField<JBleErrorCode>("BLUETOOTHINUNKNOWNSTATE");
54
+ static const auto fieldBLUETOOTHRESETTING = clazz->getStaticField<JBleErrorCode>("BLUETOOTHRESETTING");
55
+ static const auto fieldBLUETOOTHSTATECHANGEFAILED = clazz->getStaticField<JBleErrorCode>("BLUETOOTHSTATECHANGEFAILED");
56
+ static const auto fieldDEVICECONNECTIONFAILED = clazz->getStaticField<JBleErrorCode>("DEVICECONNECTIONFAILED");
57
+ static const auto fieldDEVICEDISCONNECTED = clazz->getStaticField<JBleErrorCode>("DEVICEDISCONNECTED");
58
+ static const auto fieldDEVICERSSIREADFAILED = clazz->getStaticField<JBleErrorCode>("DEVICERSSIREADFAILED");
59
+ static const auto fieldDEVICEALREADYCONNECTED = clazz->getStaticField<JBleErrorCode>("DEVICEALREADYCONNECTED");
60
+ static const auto fieldDEVICENOTFOUND = clazz->getStaticField<JBleErrorCode>("DEVICENOTFOUND");
61
+ static const auto fieldDEVICENOTCONNECTED = clazz->getStaticField<JBleErrorCode>("DEVICENOTCONNECTED");
62
+ static const auto fieldDEVICEMTUCHANGEFAILED = clazz->getStaticField<JBleErrorCode>("DEVICEMTUCHANGEFAILED");
63
+ static const auto fieldSERVICESDISCOVERYFAILED = clazz->getStaticField<JBleErrorCode>("SERVICESDISCOVERYFAILED");
64
+ static const auto fieldINCLUDEDSERVICESDISCOVERYFAILED = clazz->getStaticField<JBleErrorCode>("INCLUDEDSERVICESDISCOVERYFAILED");
65
+ static const auto fieldSERVICENOTFOUND = clazz->getStaticField<JBleErrorCode>("SERVICENOTFOUND");
66
+ static const auto fieldSERVICESNOTDISCOVERED = clazz->getStaticField<JBleErrorCode>("SERVICESNOTDISCOVERED");
67
+ static const auto fieldCHARACTERISTICSDISCOVERYFAILED = clazz->getStaticField<JBleErrorCode>("CHARACTERISTICSDISCOVERYFAILED");
68
+ static const auto fieldCHARACTERISTICWRITEFAILED = clazz->getStaticField<JBleErrorCode>("CHARACTERISTICWRITEFAILED");
69
+ static const auto fieldCHARACTERISTICREADFAILED = clazz->getStaticField<JBleErrorCode>("CHARACTERISTICREADFAILED");
70
+ static const auto fieldCHARACTERISTICNOTIFYCHANGEFAILED = clazz->getStaticField<JBleErrorCode>("CHARACTERISTICNOTIFYCHANGEFAILED");
71
+ static const auto fieldCHARACTERISTICNOTFOUND = clazz->getStaticField<JBleErrorCode>("CHARACTERISTICNOTFOUND");
72
+ static const auto fieldCHARACTERISTICSNOTDISCOVERED = clazz->getStaticField<JBleErrorCode>("CHARACTERISTICSNOTDISCOVERED");
73
+ static const auto fieldCHARACTERISTICINVALIDDATAFORMAT = clazz->getStaticField<JBleErrorCode>("CHARACTERISTICINVALIDDATAFORMAT");
74
+ static const auto fieldDESCRIPTORSDISCOVERYFAILED = clazz->getStaticField<JBleErrorCode>("DESCRIPTORSDISCOVERYFAILED");
75
+ static const auto fieldDESCRIPTORWRITEFAILED = clazz->getStaticField<JBleErrorCode>("DESCRIPTORWRITEFAILED");
76
+ static const auto fieldDESCRIPTORREADFAILED = clazz->getStaticField<JBleErrorCode>("DESCRIPTORREADFAILED");
77
+ static const auto fieldDESCRIPTORNOTFOUND = clazz->getStaticField<JBleErrorCode>("DESCRIPTORNOTFOUND");
78
+ static const auto fieldDESCRIPTORSNOTDISCOVERED = clazz->getStaticField<JBleErrorCode>("DESCRIPTORSNOTDISCOVERED");
79
+ static const auto fieldDESCRIPTORINVALIDDATAFORMAT = clazz->getStaticField<JBleErrorCode>("DESCRIPTORINVALIDDATAFORMAT");
80
+ static const auto fieldDESCRIPTORWRITENOTALLOWED = clazz->getStaticField<JBleErrorCode>("DESCRIPTORWRITENOTALLOWED");
81
+ static const auto fieldSCANSTARTFAILED = clazz->getStaticField<JBleErrorCode>("SCANSTARTFAILED");
82
+ static const auto fieldLOCATIONSERVICESDISABLED = clazz->getStaticField<JBleErrorCode>("LOCATIONSERVICESDISABLED");
83
+
84
+ switch (value) {
85
+ case BleErrorCode::UNKNOWNERROR:
86
+ return clazz->getStaticFieldValue(fieldUNKNOWNERROR);
87
+ case BleErrorCode::BLUETOOTHMANAGERDESTROYED:
88
+ return clazz->getStaticFieldValue(fieldBLUETOOTHMANAGERDESTROYED);
89
+ case BleErrorCode::OPERATIONCANCELLED:
90
+ return clazz->getStaticFieldValue(fieldOPERATIONCANCELLED);
91
+ case BleErrorCode::OPERATIONTIMEDOUT:
92
+ return clazz->getStaticFieldValue(fieldOPERATIONTIMEDOUT);
93
+ case BleErrorCode::OPERATIONSTARTFAILED:
94
+ return clazz->getStaticFieldValue(fieldOPERATIONSTARTFAILED);
95
+ case BleErrorCode::INVALIDIDENTIFIERS:
96
+ return clazz->getStaticFieldValue(fieldINVALIDIDENTIFIERS);
97
+ case BleErrorCode::BLUETOOTHUNSUPPORTED:
98
+ return clazz->getStaticFieldValue(fieldBLUETOOTHUNSUPPORTED);
99
+ case BleErrorCode::BLUETOOTHUNAUTHORIZED:
100
+ return clazz->getStaticFieldValue(fieldBLUETOOTHUNAUTHORIZED);
101
+ case BleErrorCode::BLUETOOTHPOWEREDOFF:
102
+ return clazz->getStaticFieldValue(fieldBLUETOOTHPOWEREDOFF);
103
+ case BleErrorCode::BLUETOOTHINUNKNOWNSTATE:
104
+ return clazz->getStaticFieldValue(fieldBLUETOOTHINUNKNOWNSTATE);
105
+ case BleErrorCode::BLUETOOTHRESETTING:
106
+ return clazz->getStaticFieldValue(fieldBLUETOOTHRESETTING);
107
+ case BleErrorCode::BLUETOOTHSTATECHANGEFAILED:
108
+ return clazz->getStaticFieldValue(fieldBLUETOOTHSTATECHANGEFAILED);
109
+ case BleErrorCode::DEVICECONNECTIONFAILED:
110
+ return clazz->getStaticFieldValue(fieldDEVICECONNECTIONFAILED);
111
+ case BleErrorCode::DEVICEDISCONNECTED:
112
+ return clazz->getStaticFieldValue(fieldDEVICEDISCONNECTED);
113
+ case BleErrorCode::DEVICERSSIREADFAILED:
114
+ return clazz->getStaticFieldValue(fieldDEVICERSSIREADFAILED);
115
+ case BleErrorCode::DEVICEALREADYCONNECTED:
116
+ return clazz->getStaticFieldValue(fieldDEVICEALREADYCONNECTED);
117
+ case BleErrorCode::DEVICENOTFOUND:
118
+ return clazz->getStaticFieldValue(fieldDEVICENOTFOUND);
119
+ case BleErrorCode::DEVICENOTCONNECTED:
120
+ return clazz->getStaticFieldValue(fieldDEVICENOTCONNECTED);
121
+ case BleErrorCode::DEVICEMTUCHANGEFAILED:
122
+ return clazz->getStaticFieldValue(fieldDEVICEMTUCHANGEFAILED);
123
+ case BleErrorCode::SERVICESDISCOVERYFAILED:
124
+ return clazz->getStaticFieldValue(fieldSERVICESDISCOVERYFAILED);
125
+ case BleErrorCode::INCLUDEDSERVICESDISCOVERYFAILED:
126
+ return clazz->getStaticFieldValue(fieldINCLUDEDSERVICESDISCOVERYFAILED);
127
+ case BleErrorCode::SERVICENOTFOUND:
128
+ return clazz->getStaticFieldValue(fieldSERVICENOTFOUND);
129
+ case BleErrorCode::SERVICESNOTDISCOVERED:
130
+ return clazz->getStaticFieldValue(fieldSERVICESNOTDISCOVERED);
131
+ case BleErrorCode::CHARACTERISTICSDISCOVERYFAILED:
132
+ return clazz->getStaticFieldValue(fieldCHARACTERISTICSDISCOVERYFAILED);
133
+ case BleErrorCode::CHARACTERISTICWRITEFAILED:
134
+ return clazz->getStaticFieldValue(fieldCHARACTERISTICWRITEFAILED);
135
+ case BleErrorCode::CHARACTERISTICREADFAILED:
136
+ return clazz->getStaticFieldValue(fieldCHARACTERISTICREADFAILED);
137
+ case BleErrorCode::CHARACTERISTICNOTIFYCHANGEFAILED:
138
+ return clazz->getStaticFieldValue(fieldCHARACTERISTICNOTIFYCHANGEFAILED);
139
+ case BleErrorCode::CHARACTERISTICNOTFOUND:
140
+ return clazz->getStaticFieldValue(fieldCHARACTERISTICNOTFOUND);
141
+ case BleErrorCode::CHARACTERISTICSNOTDISCOVERED:
142
+ return clazz->getStaticFieldValue(fieldCHARACTERISTICSNOTDISCOVERED);
143
+ case BleErrorCode::CHARACTERISTICINVALIDDATAFORMAT:
144
+ return clazz->getStaticFieldValue(fieldCHARACTERISTICINVALIDDATAFORMAT);
145
+ case BleErrorCode::DESCRIPTORSDISCOVERYFAILED:
146
+ return clazz->getStaticFieldValue(fieldDESCRIPTORSDISCOVERYFAILED);
147
+ case BleErrorCode::DESCRIPTORWRITEFAILED:
148
+ return clazz->getStaticFieldValue(fieldDESCRIPTORWRITEFAILED);
149
+ case BleErrorCode::DESCRIPTORREADFAILED:
150
+ return clazz->getStaticFieldValue(fieldDESCRIPTORREADFAILED);
151
+ case BleErrorCode::DESCRIPTORNOTFOUND:
152
+ return clazz->getStaticFieldValue(fieldDESCRIPTORNOTFOUND);
153
+ case BleErrorCode::DESCRIPTORSNOTDISCOVERED:
154
+ return clazz->getStaticFieldValue(fieldDESCRIPTORSNOTDISCOVERED);
155
+ case BleErrorCode::DESCRIPTORINVALIDDATAFORMAT:
156
+ return clazz->getStaticFieldValue(fieldDESCRIPTORINVALIDDATAFORMAT);
157
+ case BleErrorCode::DESCRIPTORWRITENOTALLOWED:
158
+ return clazz->getStaticFieldValue(fieldDESCRIPTORWRITENOTALLOWED);
159
+ case BleErrorCode::SCANSTARTFAILED:
160
+ return clazz->getStaticFieldValue(fieldSCANSTARTFAILED);
161
+ case BleErrorCode::LOCATIONSERVICESDISABLED:
162
+ return clazz->getStaticFieldValue(fieldLOCATIONSERVICESDISABLED);
163
+ default:
164
+ std::string stringValue = std::to_string(static_cast<int>(value));
165
+ throw std::invalid_argument("Invalid enum value (" + stringValue + "!");
166
+ }
167
+ }
168
+ };
169
+
170
+ } // namespace margelo::nitro::co::zyke::ble