ilabs-flir 1.0.6 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/Flir.podspec +137 -31
  2. package/README.md +1309 -1271
  3. package/android/Flir/build.gradle.kts +72 -72
  4. package/android/Flir/src/main/AndroidManifest.xml +45 -45
  5. package/android/Flir/src/main/java/flir/android/FlirCommands.java +136 -136
  6. package/android/Flir/src/main/java/flir/android/FlirDownloadManager.kt +55 -55
  7. package/android/Flir/src/main/java/flir/android/FlirDownloadPackage.kt +16 -16
  8. package/android/Flir/src/main/java/flir/android/FlirFrameCache.kt +6 -6
  9. package/android/Flir/src/main/java/flir/android/FlirManager.kt +476 -476
  10. package/android/Flir/src/main/java/flir/android/FlirModule.kt +257 -257
  11. package/android/Flir/src/main/java/flir/android/FlirPackage.kt +19 -19
  12. package/android/Flir/src/main/java/flir/android/FlirSdkManager.java +583 -581
  13. package/android/Flir/src/main/java/flir/android/FlirStatus.kt +12 -12
  14. package/android/Flir/src/main/java/flir/android/FlirView.kt +48 -48
  15. package/android/Flir/src/main/java/flir/android/FlirViewManager.kt +13 -13
  16. package/app.plugin.js +381 -264
  17. package/expo-module.config.json +5 -5
  18. package/ios/Flir/Framework/ThermalSDK/FLIRBattery.h +76 -76
  19. package/ios/Flir/Framework/ThermalSDK/FLIRCalibration.h +108 -108
  20. package/ios/Flir/Framework/ThermalSDK/FLIRCamera.h +156 -156
  21. package/ios/Flir/Framework/ThermalSDK/FLIRCameraDeviceInfo.h +53 -53
  22. package/ios/Flir/Framework/ThermalSDK/FLIRCameraEvent.h +132 -132
  23. package/ios/Flir/Framework/ThermalSDK/FLIRCameraImport.h +204 -204
  24. package/ios/Flir/Framework/ThermalSDK/FLIRColorDistributionSettings.h +204 -204
  25. package/ios/Flir/Framework/ThermalSDK/FLIRColorizer.h +82 -82
  26. package/ios/Flir/Framework/ThermalSDK/FLIRDiscoveredCamera.h +44 -44
  27. package/ios/Flir/Framework/ThermalSDK/FLIRDiscovery.h +132 -132
  28. package/ios/Flir/Framework/ThermalSDK/FLIRDisplaySettings.h +29 -29
  29. package/ios/Flir/Framework/ThermalSDK/FLIRFocus.h +70 -70
  30. package/ios/Flir/Framework/ThermalSDK/FLIRFusion.h +192 -192
  31. package/ios/Flir/Framework/ThermalSDK/FLIRFusionController.h +136 -136
  32. package/ios/Flir/Framework/ThermalSDK/FLIRFusionTransformation.h +35 -35
  33. package/ios/Flir/Framework/ThermalSDK/FLIRIdentity.h +264 -264
  34. package/ios/Flir/Framework/ThermalSDK/FLIRImageBase.h +196 -196
  35. package/ios/Flir/Framework/ThermalSDK/FLIRImageColorizer.h +26 -26
  36. package/ios/Flir/Framework/ThermalSDK/FLIRImageStatistics.h +61 -61
  37. package/ios/Flir/Framework/ThermalSDK/FLIRIsotherms.h +208 -208
  38. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementArea.h +38 -38
  39. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementCollection.h +147 -147
  40. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementDelta.h +62 -62
  41. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementDimensions.h +33 -33
  42. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementEllipse.h +49 -49
  43. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementLine.h +66 -66
  44. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementMarker.h +69 -69
  45. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementParameters.h +41 -41
  46. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementRectangle.h +36 -36
  47. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementReference.h +27 -27
  48. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementShape.h +46 -46
  49. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementSpot.h +33 -33
  50. package/ios/Flir/Framework/ThermalSDK/FLIRMeasurementsController.h +160 -160
  51. package/ios/Flir/Framework/ThermalSDK/FLIRMeterLinkSensorPoll.h +247 -247
  52. package/ios/Flir/Framework/ThermalSDK/FLIROverlayController.h +27 -27
  53. package/ios/Flir/Framework/ThermalSDK/FLIRPalette.h +60 -60
  54. package/ios/Flir/Framework/ThermalSDK/FLIRPaletteController.h +36 -36
  55. package/ios/Flir/Framework/ThermalSDK/FLIRPaletteManager.h +97 -97
  56. package/ios/Flir/Framework/ThermalSDK/FLIRQuantification.h +55 -55
  57. package/ios/Flir/Framework/ThermalSDK/FLIRRemoteControl.h +393 -393
  58. package/ios/Flir/Framework/ThermalSDK/FLIRRenderer.h +35 -35
  59. package/ios/Flir/Framework/ThermalSDK/FLIRRendererImpl.h +17 -17
  60. package/ios/Flir/Framework/ThermalSDK/FLIRScale.h +99 -99
  61. package/ios/Flir/Framework/ThermalSDK/FLIRScaleController.h +44 -44
  62. package/ios/Flir/Framework/ThermalSDK/FLIRStream.h +109 -109
  63. package/ios/Flir/Framework/ThermalSDK/FLIRStreamer.h +124 -124
  64. package/ios/Flir/Framework/ThermalSDK/FLIRSystem.h +40 -40
  65. package/ios/Flir/Framework/ThermalSDK/FLIRTemperatureRange.h +43 -43
  66. package/ios/Flir/Framework/ThermalSDK/FLIRThermalDelta.h +77 -77
  67. package/ios/Flir/Framework/ThermalSDK/FLIRThermalImage.h +331 -331
  68. package/ios/Flir/Framework/ThermalSDK/FLIRThermalImageFile.h +56 -56
  69. package/ios/Flir/Framework/ThermalSDK/FLIRThermalParameters.h +31 -31
  70. package/ios/Flir/Framework/ThermalSDK/FLIRThermalValue.h +92 -92
  71. package/ios/Flir/Framework/ThermalSDK/FLIRWirelessCameraDetails.h +88 -88
  72. package/ios/Flir/Framework/ThermalSDK/ThermalSDK.h +73 -73
  73. package/ios/Flir/Frameworks/MeterLink.xcframework/Info.plist +44 -0
  74. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64/MeterLink.framework/Headers/FLIRMeterLinkDevice.h +454 -0
  75. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64/MeterLink.framework/Headers/FLIRMeterLinkManager.h +171 -0
  76. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64/MeterLink.framework/Headers/MeterLink.h +26 -0
  77. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64/MeterLink.framework/Info.plist +0 -0
  78. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64/MeterLink.framework/MeterLink +0 -0
  79. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64/MeterLink.framework/Modules/module.modulemap +6 -0
  80. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64_x86_64-simulator/MeterLink.framework/Headers/FLIRMeterLinkDevice.h +454 -0
  81. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64_x86_64-simulator/MeterLink.framework/Headers/FLIRMeterLinkManager.h +171 -0
  82. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64_x86_64-simulator/MeterLink.framework/Headers/MeterLink.h +26 -0
  83. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64_x86_64-simulator/MeterLink.framework/Info.plist +0 -0
  84. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64_x86_64-simulator/MeterLink.framework/MeterLink +0 -0
  85. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64_x86_64-simulator/MeterLink.framework/Modules/module.modulemap +6 -0
  86. package/ios/Flir/Frameworks/MeterLink.xcframework/ios-arm64_x86_64-simulator/MeterLink.framework/_CodeSignature/CodeResources +146 -0
  87. package/ios/Flir/Frameworks/ThermalSDK.xcframework/Info.plist +44 -0
  88. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRBattery.h +76 -0
  89. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRCalibration.h +108 -0
  90. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRCamera.h +206 -0
  91. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRCameraDeviceInfo.h +53 -0
  92. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRCameraEvent.h +132 -0
  93. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRCameraExport.h +93 -0
  94. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRCameraImport.h +204 -0
  95. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRColorDistributionSettings.h +204 -0
  96. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRColorizer.h +82 -0
  97. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRDiscoveredCamera.h +44 -0
  98. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRDiscovery.h +132 -0
  99. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRDisplaySettings.h +29 -0
  100. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRFocus.h +70 -0
  101. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRFusion.h +192 -0
  102. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRFusionController.h +136 -0
  103. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRFusionTransformation.h +35 -0
  104. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRIdentity.h +264 -0
  105. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRImageBase.h +196 -0
  106. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRImageColorizer.h +26 -0
  107. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRImageStatistics.h +61 -0
  108. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRIsotherms.h +208 -0
  109. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementArea.h +38 -0
  110. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementCollection.h +147 -0
  111. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementDelta.h +62 -0
  112. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementDimensions.h +33 -0
  113. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementEllipse.h +49 -0
  114. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementLine.h +66 -0
  115. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementMarker.h +69 -0
  116. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementParameters.h +41 -0
  117. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementRectangle.h +36 -0
  118. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementReference.h +27 -0
  119. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementShape.h +46 -0
  120. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementSpot.h +33 -0
  121. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeasurementsController.h +160 -0
  122. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRMeterLinkSensorPoll.h +247 -0
  123. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIROverlayController.h +27 -0
  124. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRPalette.h +60 -0
  125. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRPaletteController.h +36 -0
  126. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRPaletteManager.h +97 -0
  127. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRQuantification.h +55 -0
  128. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRRemoteControl.h +393 -0
  129. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRRenderer.h +35 -0
  130. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRRendererImpl.h +17 -0
  131. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRScale.h +99 -0
  132. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRScaleController.h +44 -0
  133. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRStream.h +109 -0
  134. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRStreamer.h +124 -0
  135. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRSystem.h +40 -0
  136. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRTemperatureRange.h +43 -0
  137. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRThermalDelta.h +77 -0
  138. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRThermalImage.h +331 -0
  139. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRThermalImageFile.h +56 -0
  140. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRThermalParameters.h +31 -0
  141. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRThermalValue.h +92 -0
  142. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/FLIRWirelessCameraDetails.h +88 -0
  143. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Headers/ThermalSDK.h +74 -0
  144. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Info.plist +0 -0
  145. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/Modules/module.modulemap +6 -0
  146. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64/ThermalSDK.framework/ThermalSDK +0 -0
  147. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRBattery.h +76 -0
  148. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRCalibration.h +108 -0
  149. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRCamera.h +206 -0
  150. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRCameraDeviceInfo.h +53 -0
  151. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRCameraEvent.h +132 -0
  152. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRCameraExport.h +93 -0
  153. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRCameraImport.h +204 -0
  154. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRColorDistributionSettings.h +204 -0
  155. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRColorizer.h +82 -0
  156. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRDiscoveredCamera.h +44 -0
  157. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRDiscovery.h +132 -0
  158. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRDisplaySettings.h +29 -0
  159. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRFocus.h +70 -0
  160. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRFusion.h +192 -0
  161. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRFusionController.h +136 -0
  162. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRFusionTransformation.h +35 -0
  163. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRIdentity.h +264 -0
  164. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRImageBase.h +196 -0
  165. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRImageColorizer.h +26 -0
  166. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRImageStatistics.h +61 -0
  167. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRIsotherms.h +208 -0
  168. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementArea.h +38 -0
  169. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementCollection.h +147 -0
  170. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementDelta.h +62 -0
  171. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementDimensions.h +33 -0
  172. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementEllipse.h +49 -0
  173. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementLine.h +66 -0
  174. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementMarker.h +69 -0
  175. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementParameters.h +41 -0
  176. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementRectangle.h +36 -0
  177. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementReference.h +27 -0
  178. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementShape.h +46 -0
  179. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementSpot.h +33 -0
  180. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeasurementsController.h +160 -0
  181. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRMeterLinkSensorPoll.h +247 -0
  182. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIROverlayController.h +27 -0
  183. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRPalette.h +60 -0
  184. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRPaletteController.h +36 -0
  185. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRPaletteManager.h +97 -0
  186. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRQuantification.h +55 -0
  187. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRRemoteControl.h +393 -0
  188. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRRenderer.h +35 -0
  189. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRRendererImpl.h +17 -0
  190. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRScale.h +99 -0
  191. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRScaleController.h +44 -0
  192. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRStream.h +109 -0
  193. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRStreamer.h +124 -0
  194. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRSystem.h +40 -0
  195. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRTemperatureRange.h +43 -0
  196. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRThermalDelta.h +77 -0
  197. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRThermalImage.h +331 -0
  198. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRThermalImageFile.h +56 -0
  199. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRThermalParameters.h +31 -0
  200. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRThermalValue.h +92 -0
  201. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/FLIRWirelessCameraDetails.h +88 -0
  202. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Headers/ThermalSDK.h +74 -0
  203. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Info.plist +0 -0
  204. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/Modules/module.modulemap +6 -0
  205. package/{android/Flir/libs/thermalsdk-release.aar → ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/ThermalSDK} +0 -0
  206. package/ios/Flir/Frameworks/ThermalSDK.xcframework/ios-arm64_x86_64-simulator/ThermalSDK.framework/_CodeSignature/CodeResources +729 -0
  207. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/Info.plist +44 -0
  208. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/ac3_parser.h +36 -0
  209. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/adts_parser.h +37 -0
  210. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/avcodec.h +3128 -0
  211. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/avdct.h +88 -0
  212. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/avfft.h +149 -0
  213. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/bsf.h +332 -0
  214. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/codec.h +382 -0
  215. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/codec_desc.h +134 -0
  216. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/codec_id.h +669 -0
  217. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/codec_par.h +248 -0
  218. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/d3d11va.h +109 -0
  219. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/defs.h +337 -0
  220. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/dirac.h +135 -0
  221. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/dv_profile.h +82 -0
  222. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/dxva2.h +90 -0
  223. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/jni.h +67 -0
  224. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/mediacodec.h +103 -0
  225. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/packet.h +887 -0
  226. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/qsv.h +109 -0
  227. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/vdpau.h +171 -0
  228. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/version.h +45 -0
  229. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/version_major.h +52 -0
  230. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/videotoolbox.h +85 -0
  231. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Headers/vorbis_parser.h +74 -0
  232. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/Info.plist +54 -0
  233. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64/libavcodec.61.dylib.framework/libavcodec.61.dylib +0 -0
  234. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/ac3_parser.h +36 -0
  235. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/adts_parser.h +37 -0
  236. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/avcodec.h +3128 -0
  237. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/avdct.h +88 -0
  238. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/avfft.h +149 -0
  239. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/bsf.h +332 -0
  240. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/codec.h +382 -0
  241. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/codec_desc.h +134 -0
  242. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/codec_id.h +669 -0
  243. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/codec_par.h +248 -0
  244. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/d3d11va.h +109 -0
  245. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/defs.h +337 -0
  246. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/dirac.h +135 -0
  247. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/dv_profile.h +82 -0
  248. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/dxva2.h +90 -0
  249. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/jni.h +67 -0
  250. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/mediacodec.h +103 -0
  251. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/packet.h +887 -0
  252. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/qsv.h +109 -0
  253. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/vdpau.h +171 -0
  254. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/version.h +45 -0
  255. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/version_major.h +52 -0
  256. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/videotoolbox.h +85 -0
  257. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Headers/vorbis_parser.h +74 -0
  258. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/Info.plist +54 -0
  259. package/ios/Flir/Frameworks/libavcodec.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavcodec.61.dylib.framework/libavcodec.61.dylib +0 -0
  260. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/Info.plist +44 -0
  261. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64/libavdevice.61.dylib.framework/Headers/avdevice.h +397 -0
  262. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64/libavdevice.61.dylib.framework/Headers/version.h +45 -0
  263. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64/libavdevice.61.dylib.framework/Headers/version_major.h +43 -0
  264. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64/libavdevice.61.dylib.framework/Info.plist +54 -0
  265. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64/libavdevice.61.dylib.framework/libavdevice.61.dylib +0 -0
  266. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavdevice.61.dylib.framework/Headers/avdevice.h +397 -0
  267. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavdevice.61.dylib.framework/Headers/version.h +45 -0
  268. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavdevice.61.dylib.framework/Headers/version_major.h +43 -0
  269. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavdevice.61.dylib.framework/Info.plist +54 -0
  270. package/ios/Flir/Frameworks/libavdevice.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavdevice.61.dylib.framework/libavdevice.61.dylib +0 -0
  271. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/Info.plist +44 -0
  272. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64/libavfilter.10.dylib.framework/Headers/avfilter.h +1379 -0
  273. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64/libavfilter.10.dylib.framework/Headers/buffersink.h +173 -0
  274. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64/libavfilter.10.dylib.framework/Headers/buffersrc.h +215 -0
  275. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64/libavfilter.10.dylib.framework/Headers/version.h +48 -0
  276. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64/libavfilter.10.dylib.framework/Headers/version_major.h +40 -0
  277. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64/libavfilter.10.dylib.framework/Info.plist +54 -0
  278. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64/libavfilter.10.dylib.framework/libavfilter.10.dylib +0 -0
  279. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64_x86_64-simulator/libavfilter.10.dylib.framework/Headers/avfilter.h +1379 -0
  280. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64_x86_64-simulator/libavfilter.10.dylib.framework/Headers/buffersink.h +173 -0
  281. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64_x86_64-simulator/libavfilter.10.dylib.framework/Headers/buffersrc.h +215 -0
  282. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64_x86_64-simulator/libavfilter.10.dylib.framework/Headers/version.h +48 -0
  283. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64_x86_64-simulator/libavfilter.10.dylib.framework/Headers/version_major.h +40 -0
  284. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64_x86_64-simulator/libavfilter.10.dylib.framework/Info.plist +54 -0
  285. package/ios/Flir/Frameworks/libavfilter.10.dylib.xcframework/ios-arm64_x86_64-simulator/libavfilter.10.dylib.framework/libavfilter.10.dylib +0 -0
  286. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/Info.plist +44 -0
  287. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64/libavformat.61.dylib.framework/Headers/avformat.h +3107 -0
  288. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64/libavformat.61.dylib.framework/Headers/avio.h +831 -0
  289. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64/libavformat.61.dylib.framework/Headers/version.h +47 -0
  290. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64/libavformat.61.dylib.framework/Headers/version_major.h +54 -0
  291. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64/libavformat.61.dylib.framework/Info.plist +54 -0
  292. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64/libavformat.61.dylib.framework/libavformat.61.dylib +0 -0
  293. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavformat.61.dylib.framework/Headers/avformat.h +3107 -0
  294. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavformat.61.dylib.framework/Headers/avio.h +831 -0
  295. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavformat.61.dylib.framework/Headers/version.h +47 -0
  296. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavformat.61.dylib.framework/Headers/version_major.h +54 -0
  297. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavformat.61.dylib.framework/Info.plist +54 -0
  298. package/ios/Flir/Frameworks/libavformat.61.dylib.xcframework/ios-arm64_x86_64-simulator/libavformat.61.dylib.framework/libavformat.61.dylib +0 -0
  299. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/Info.plist +44 -0
  300. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/adler32.h +63 -0
  301. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/aes.h +69 -0
  302. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/aes_ctr.h +99 -0
  303. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/ambient_viewing_environment.h +72 -0
  304. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/attributes.h +173 -0
  305. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/audio_fifo.h +187 -0
  306. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/avassert.h +78 -0
  307. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/avconfig.h +6 -0
  308. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/avstring.h +428 -0
  309. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/avutil.h +362 -0
  310. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/base64.h +72 -0
  311. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/blowfish.h +82 -0
  312. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/bprint.h +254 -0
  313. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/bswap.h +105 -0
  314. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/buffer.h +322 -0
  315. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/camellia.h +70 -0
  316. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/cast5.h +80 -0
  317. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/channel_layout.h +751 -0
  318. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/common.h +589 -0
  319. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/cpu.h +145 -0
  320. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/crc.h +102 -0
  321. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/csp.h +150 -0
  322. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/des.h +81 -0
  323. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/detection_bbox.h +108 -0
  324. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/dict.h +241 -0
  325. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/display.h +109 -0
  326. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/dovi_meta.h +396 -0
  327. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/downmix_info.h +115 -0
  328. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/encryption_info.h +205 -0
  329. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/error.h +129 -0
  330. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/eval.h +140 -0
  331. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/executor.h +67 -0
  332. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/ffversion.h +5 -0
  333. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/fifo.h +242 -0
  334. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/file.h +62 -0
  335. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/film_grain_params.h +322 -0
  336. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/frame.h +1175 -0
  337. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hash.h +264 -0
  338. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hdr_dynamic_metadata.h +376 -0
  339. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hdr_dynamic_vivid_metadata.h +346 -0
  340. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hmac.h +99 -0
  341. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext.h +598 -0
  342. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_cuda.h +74 -0
  343. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_d3d11va.h +178 -0
  344. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_d3d12va.h +142 -0
  345. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_drm.h +169 -0
  346. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_dxva2.h +75 -0
  347. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_mediacodec.h +61 -0
  348. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_opencl.h +100 -0
  349. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_qsv.h +87 -0
  350. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_vaapi.h +117 -0
  351. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_vdpau.h +44 -0
  352. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_videotoolbox.h +106 -0
  353. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/hwcontext_vulkan.h +382 -0
  354. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/iamf.h +690 -0
  355. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/imgutils.h +377 -0
  356. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/intfloat.h +77 -0
  357. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/intreadwrite.h +677 -0
  358. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/lfg.h +81 -0
  359. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/log.h +387 -0
  360. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/lzo.h +66 -0
  361. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/macros.h +80 -0
  362. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/mastering_display_metadata.h +137 -0
  363. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/mathematics.h +300 -0
  364. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/md5.h +89 -0
  365. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/mem.h +607 -0
  366. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/motion_vector.h +57 -0
  367. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/murmur3.h +115 -0
  368. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/opt.h +1187 -0
  369. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/parseutils.h +197 -0
  370. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/pixdesc.h +440 -0
  371. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/pixelutils.h +51 -0
  372. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/pixfmt.h +716 -0
  373. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/random_seed.h +57 -0
  374. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/rational.h +225 -0
  375. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/rc4.h +69 -0
  376. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/replaygain.h +50 -0
  377. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/ripemd.h +83 -0
  378. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/samplefmt.h +269 -0
  379. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/sha.h +90 -0
  380. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/sha512.h +92 -0
  381. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/spherical.h +243 -0
  382. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/stereo3d.h +325 -0
  383. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/tea.h +71 -0
  384. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/threadmessage.h +115 -0
  385. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/time.h +56 -0
  386. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/timecode.h +199 -0
  387. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/timestamp.h +85 -0
  388. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/tree.h +137 -0
  389. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/twofish.h +70 -0
  390. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/tx.h +210 -0
  391. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/uuid.h +146 -0
  392. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/version.h +124 -0
  393. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/video_enc_params.h +171 -0
  394. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/video_hint.h +107 -0
  395. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Headers/xtea.h +94 -0
  396. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/Info.plist +54 -0
  397. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64/libavutil.59.dylib.framework/libavutil.59.dylib +0 -0
  398. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/adler32.h +63 -0
  399. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/aes.h +69 -0
  400. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/aes_ctr.h +99 -0
  401. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/ambient_viewing_environment.h +72 -0
  402. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/attributes.h +173 -0
  403. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/audio_fifo.h +187 -0
  404. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/avassert.h +78 -0
  405. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/avconfig.h +6 -0
  406. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/avstring.h +428 -0
  407. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/avutil.h +362 -0
  408. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/base64.h +72 -0
  409. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/blowfish.h +82 -0
  410. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/bprint.h +254 -0
  411. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/bswap.h +105 -0
  412. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/buffer.h +322 -0
  413. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/camellia.h +70 -0
  414. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/cast5.h +80 -0
  415. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/channel_layout.h +751 -0
  416. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/common.h +589 -0
  417. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/cpu.h +145 -0
  418. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/crc.h +102 -0
  419. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/csp.h +150 -0
  420. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/des.h +81 -0
  421. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/detection_bbox.h +108 -0
  422. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/dict.h +241 -0
  423. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/display.h +109 -0
  424. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/dovi_meta.h +396 -0
  425. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/downmix_info.h +115 -0
  426. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/encryption_info.h +205 -0
  427. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/error.h +129 -0
  428. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/eval.h +140 -0
  429. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/executor.h +67 -0
  430. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/ffversion.h +5 -0
  431. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/fifo.h +242 -0
  432. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/file.h +62 -0
  433. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/film_grain_params.h +322 -0
  434. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/frame.h +1175 -0
  435. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hash.h +264 -0
  436. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hdr_dynamic_metadata.h +376 -0
  437. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hdr_dynamic_vivid_metadata.h +346 -0
  438. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hmac.h +99 -0
  439. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext.h +598 -0
  440. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_cuda.h +74 -0
  441. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_d3d11va.h +178 -0
  442. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_d3d12va.h +142 -0
  443. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_drm.h +169 -0
  444. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_dxva2.h +75 -0
  445. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_mediacodec.h +61 -0
  446. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_opencl.h +100 -0
  447. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_qsv.h +87 -0
  448. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_vaapi.h +117 -0
  449. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_vdpau.h +44 -0
  450. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_videotoolbox.h +106 -0
  451. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/hwcontext_vulkan.h +382 -0
  452. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/iamf.h +690 -0
  453. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/imgutils.h +377 -0
  454. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/intfloat.h +77 -0
  455. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/intreadwrite.h +677 -0
  456. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/lfg.h +81 -0
  457. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/log.h +387 -0
  458. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/lzo.h +66 -0
  459. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/macros.h +80 -0
  460. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/mastering_display_metadata.h +137 -0
  461. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/mathematics.h +300 -0
  462. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/md5.h +89 -0
  463. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/mem.h +607 -0
  464. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/motion_vector.h +57 -0
  465. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/murmur3.h +115 -0
  466. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/opt.h +1187 -0
  467. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/parseutils.h +197 -0
  468. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/pixdesc.h +440 -0
  469. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/pixelutils.h +51 -0
  470. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/pixfmt.h +716 -0
  471. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/random_seed.h +57 -0
  472. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/rational.h +225 -0
  473. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/rc4.h +69 -0
  474. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/replaygain.h +50 -0
  475. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/ripemd.h +83 -0
  476. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/samplefmt.h +269 -0
  477. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/sha.h +90 -0
  478. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/sha512.h +92 -0
  479. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/spherical.h +243 -0
  480. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/stereo3d.h +325 -0
  481. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/tea.h +71 -0
  482. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/threadmessage.h +115 -0
  483. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/time.h +56 -0
  484. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/timecode.h +199 -0
  485. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/timestamp.h +85 -0
  486. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/tree.h +137 -0
  487. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/twofish.h +70 -0
  488. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/tx.h +210 -0
  489. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/uuid.h +146 -0
  490. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/version.h +124 -0
  491. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/video_enc_params.h +171 -0
  492. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/video_hint.h +107 -0
  493. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Headers/xtea.h +94 -0
  494. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/Info.plist +54 -0
  495. package/ios/Flir/Frameworks/libavutil.59.dylib.xcframework/ios-arm64_x86_64-simulator/libavutil.59.dylib.framework/libavutil.59.dylib +0 -0
  496. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/Info.plist +44 -0
  497. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicHashTable.hh +104 -0
  498. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicUsageEnvironment.hh +86 -0
  499. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicUsageEnvironment0.hh +131 -0
  500. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicUsageEnvironment_version.hh +25 -0
  501. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/BasicUsageEnvironment/DelayQueue.hh +183 -0
  502. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/BasicUsageEnvironment/HandlerSet.hh +79 -0
  503. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/UsageEnvironment/Boolean.hh +37 -0
  504. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/UsageEnvironment/HashTable.hh +78 -0
  505. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/UsageEnvironment/UsageEnvironment.hh +178 -0
  506. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/UsageEnvironment/UsageEnvironment_version.hh +25 -0
  507. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/UsageEnvironment/strDup.hh +39 -0
  508. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/GroupEId.hh +64 -0
  509. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/Groupsock.hh +201 -0
  510. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/GroupsockHelper.hh +169 -0
  511. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/IOHandlers.hh +31 -0
  512. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/NetAddress.hh +209 -0
  513. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/NetCommon.h +126 -0
  514. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/NetInterface.hh +109 -0
  515. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/groupsock/groupsock_version.hh +25 -0
  516. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AC3AudioFileServerMediaSubsession.hh +48 -0
  517. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AC3AudioRTPSink.hh +57 -0
  518. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AC3AudioRTPSource.hh +51 -0
  519. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AC3AudioStreamFramer.hh +70 -0
  520. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ADTSAudioFileServerMediaSubsession.hh +48 -0
  521. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ADTSAudioFileSource.hh +56 -0
  522. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ADTSAudioStreamDiscreteFramer.hh +61 -0
  523. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AMRAudioFileServerMediaSubsession.hh +48 -0
  524. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AMRAudioFileSink.hh +51 -0
  525. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AMRAudioFileSource.hh +48 -0
  526. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AMRAudioRTPSink.hh +65 -0
  527. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AMRAudioRTPSource.hh +53 -0
  528. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AMRAudioSource.hh +52 -0
  529. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AVIFileSink.hh +115 -0
  530. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AudioInputDevice.hh +71 -0
  531. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/AudioRTPSink.hh +42 -0
  532. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/Base64.hh +45 -0
  533. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/BasicUDPSink.hh +62 -0
  534. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/BasicUDPSource.hh +56 -0
  535. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/BitVector.hh +69 -0
  536. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ByteStreamFileSource.hh +82 -0
  537. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ByteStreamMemoryBufferSource.hh +70 -0
  538. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ByteStreamMultiFileSource.hh +69 -0
  539. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/DVVideoFileServerMediaSubsession.hh +51 -0
  540. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/DVVideoRTPSink.hh +57 -0
  541. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/DVVideoRTPSource.hh +51 -0
  542. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/DVVideoStreamFramer.hh +72 -0
  543. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/DeviceSource.hh +66 -0
  544. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/DigestAuthentication.hh +77 -0
  545. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/FileServerMediaSubsession.hh +43 -0
  546. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/FileSink.hh +71 -0
  547. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/FramedFileSource.hh +37 -0
  548. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/FramedFilter.hh +52 -0
  549. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/FramedSource.hh +95 -0
  550. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/GSMAudioRTPSink.hh +44 -0
  551. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/GenericMediaServer.hh +224 -0
  552. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H261VideoRTPSource.hh +56 -0
  553. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoFileServerMediaSubsession.hh +48 -0
  554. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoRTPSink.hh +54 -0
  555. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoRTPSource.hh +60 -0
  556. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoStreamFramer.hh +64 -0
  557. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264VideoFileServerMediaSubsession.hh +61 -0
  558. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264VideoFileSink.hh +47 -0
  559. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264VideoRTPSink.hh +59 -0
  560. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264VideoRTPSource.hh +70 -0
  561. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264VideoStreamDiscreteFramer.hh +48 -0
  562. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264VideoStreamFramer.hh +45 -0
  563. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoFileSink.hh +46 -0
  564. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoRTPSink.hh +60 -0
  565. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoStreamDiscreteFramer.hh +56 -0
  566. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoStreamFramer.hh +92 -0
  567. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H265VideoFileServerMediaSubsession.hh +61 -0
  568. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H265VideoFileSink.hh +51 -0
  569. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H265VideoRTPSink.hh +62 -0
  570. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H265VideoRTPSource.hh +67 -0
  571. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H265VideoStreamDiscreteFramer.hh +48 -0
  572. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/H265VideoStreamFramer.hh +45 -0
  573. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/HLSSegmenter.hh +76 -0
  574. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/HMAC_SHA1.hh +34 -0
  575. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/HMAC_hash.hh +37 -0
  576. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/InputFile.hh +67 -0
  577. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/JPEG2000VideoRTPSink.hh +46 -0
  578. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/JPEG2000VideoRTPSource.hh +53 -0
  579. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/JPEGVideoRTPSink.hh +52 -0
  580. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/JPEGVideoRTPSource.hh +59 -0
  581. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/JPEGVideoSource.hh +55 -0
  582. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/Locale.hh +80 -0
  583. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MIKEY.hh +75 -0
  584. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3ADU.hh +94 -0
  585. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3ADURTPSink.hh +55 -0
  586. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3ADURTPSource.hh +49 -0
  587. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3ADUTranscoder.hh +64 -0
  588. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3ADUinterleaving.hh +129 -0
  589. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3AudioFileServerMediaSubsession.hh +73 -0
  590. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3FileSource.hh +71 -0
  591. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MP3Transcoder.hh +44 -0
  592. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2AudioRTPSink.hh +48 -0
  593. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2AudioRTPSource.hh +51 -0
  594. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2AudioStreamFramer.hh +70 -0
  595. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2Demux.hh +158 -0
  596. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2DemuxedElementaryStream.hh +69 -0
  597. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2DemuxedServerMediaSubsession.hh +63 -0
  598. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2FileServerDemux.hh +70 -0
  599. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoFileServerMediaSubsession.hh +59 -0
  600. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoRTPSink.hh +69 -0
  601. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoRTPSource.hh +53 -0
  602. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoStreamDiscreteFramer.hh +76 -0
  603. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoStreamFramer.hh +56 -0
  604. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2IndexFromTransportStream.hh +95 -0
  605. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportFileServerMediaSubsession.hh +131 -0
  606. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamAccumulator.hh +60 -0
  607. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamDemux.hh +50 -0
  608. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamFramer.hh +78 -0
  609. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamFromESSource.hh +66 -0
  610. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamFromPESSource.hh +62 -0
  611. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamIndexFile.hh +96 -0
  612. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamMultiplexor.hh +120 -0
  613. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamTrickModeFilter.hh +99 -0
  614. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportUDPServerMediaSubsession.hh +55 -0
  615. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4ESVideoRTPSink.hh +72 -0
  616. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4ESVideoRTPSource.hh +51 -0
  617. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4GenericRTPSink.hh +70 -0
  618. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4GenericRTPSource.hh +78 -0
  619. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4LATMAudioRTPSink.hh +69 -0
  620. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4LATMAudioRTPSource.hh +101 -0
  621. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4VideoFileServerMediaSubsession.hh +61 -0
  622. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4VideoStreamDiscreteFramer.hh +73 -0
  623. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEG4VideoStreamFramer.hh +75 -0
  624. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MPEGVideoStreamFramer.hh +85 -0
  625. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MatroskaFile.hh +218 -0
  626. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MatroskaFileServerDemux.hh +88 -0
  627. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/Media.hh +139 -0
  628. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MediaSession.hh +374 -0
  629. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MediaSink.hh +135 -0
  630. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MediaSource.hh +59 -0
  631. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MediaTranscodingTable.hh +66 -0
  632. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MultiFramedRTPSink.hh +140 -0
  633. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/MultiFramedRTPSource.hh +159 -0
  634. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/OggFile.hh +179 -0
  635. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/OggFileServerDemux.hh +85 -0
  636. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/OggFileSink.hh +79 -0
  637. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/OnDemandServerMediaSubsession.hh +233 -0
  638. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/OutputFile.hh +31 -0
  639. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/PassiveServerMediaSubsession.hh +83 -0
  640. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ProxyServerMediaSession.hh +238 -0
  641. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/QCELPAudioRTPSource.hh +39 -0
  642. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/QuickTimeFileSink.hh +192 -0
  643. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/QuickTimeGenericRTPSource.hh +68 -0
  644. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTCP.hh +250 -0
  645. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTPInterface.hh +115 -0
  646. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTPSink.hh +250 -0
  647. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTPSource.hh +281 -0
  648. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTSPClient.hh +448 -0
  649. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTSPCommon.hh +65 -0
  650. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTSPRegisterSender.hh +138 -0
  651. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RTSPServer.hh +397 -0
  652. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RawVideoFrameParameters.hh +37 -0
  653. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RawVideoRTPSink.hh +71 -0
  654. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/RawVideoRTPSource.hh +60 -0
  655. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/SIPClient.hh +150 -0
  656. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/SRTPCryptographicContext.hh +152 -0
  657. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ServerMediaSession.hh +200 -0
  658. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/SimpleRTPSink.hh +76 -0
  659. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/SimpleRTPSource.hh +65 -0
  660. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/StreamReplicator.hh +84 -0
  661. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/T140TextRTPSink.hh +103 -0
  662. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/TLSState.hh +102 -0
  663. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/TextRTPSink.hh +41 -0
  664. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/TheoraVideoRTPSink.hh +72 -0
  665. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/TheoraVideoRTPSource.hh +53 -0
  666. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/VP8VideoRTPSink.hh +50 -0
  667. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/VP8VideoRTPSource.hh +50 -0
  668. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/VP9VideoRTPSink.hh +50 -0
  669. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/VP9VideoRTPSource.hh +50 -0
  670. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/VideoRTPSink.hh +41 -0
  671. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/VorbisAudioRTPSink.hh +85 -0
  672. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/VorbisAudioRTPSource.hh +66 -0
  673. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/WAVAudioFileServerMediaSubsession.hh +68 -0
  674. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/WAVAudioFileSource.hh +86 -0
  675. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/export.h +30 -0
  676. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/liveMedia.hh +137 -0
  677. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/liveMedia_version.hh +25 -0
  678. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/ourMD5.hh +38 -0
  679. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Headers/liveMedia/uLawAudioFilter.hh +208 -0
  680. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/Info.plist +54 -0
  681. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64/liblive666.dylib.framework/liblive666.dylib +0 -0
  682. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicHashTable.hh +104 -0
  683. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicUsageEnvironment.hh +86 -0
  684. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicUsageEnvironment0.hh +131 -0
  685. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/BasicUsageEnvironment/BasicUsageEnvironment_version.hh +25 -0
  686. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/BasicUsageEnvironment/DelayQueue.hh +183 -0
  687. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/BasicUsageEnvironment/HandlerSet.hh +79 -0
  688. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/UsageEnvironment/Boolean.hh +37 -0
  689. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/UsageEnvironment/HashTable.hh +78 -0
  690. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/UsageEnvironment/UsageEnvironment.hh +178 -0
  691. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/UsageEnvironment/UsageEnvironment_version.hh +25 -0
  692. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/UsageEnvironment/strDup.hh +39 -0
  693. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/GroupEId.hh +64 -0
  694. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/Groupsock.hh +201 -0
  695. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/GroupsockHelper.hh +169 -0
  696. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/IOHandlers.hh +31 -0
  697. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/NetAddress.hh +209 -0
  698. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/NetCommon.h +126 -0
  699. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/NetInterface.hh +109 -0
  700. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/groupsock/groupsock_version.hh +25 -0
  701. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AC3AudioFileServerMediaSubsession.hh +48 -0
  702. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AC3AudioRTPSink.hh +57 -0
  703. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AC3AudioRTPSource.hh +51 -0
  704. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AC3AudioStreamFramer.hh +70 -0
  705. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ADTSAudioFileServerMediaSubsession.hh +48 -0
  706. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ADTSAudioFileSource.hh +56 -0
  707. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ADTSAudioStreamDiscreteFramer.hh +61 -0
  708. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AMRAudioFileServerMediaSubsession.hh +48 -0
  709. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AMRAudioFileSink.hh +51 -0
  710. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AMRAudioFileSource.hh +48 -0
  711. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AMRAudioRTPSink.hh +65 -0
  712. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AMRAudioRTPSource.hh +53 -0
  713. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AMRAudioSource.hh +52 -0
  714. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AVIFileSink.hh +115 -0
  715. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AudioInputDevice.hh +71 -0
  716. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/AudioRTPSink.hh +42 -0
  717. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/Base64.hh +45 -0
  718. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/BasicUDPSink.hh +62 -0
  719. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/BasicUDPSource.hh +56 -0
  720. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/BitVector.hh +69 -0
  721. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ByteStreamFileSource.hh +82 -0
  722. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ByteStreamMemoryBufferSource.hh +70 -0
  723. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ByteStreamMultiFileSource.hh +69 -0
  724. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/DVVideoFileServerMediaSubsession.hh +51 -0
  725. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/DVVideoRTPSink.hh +57 -0
  726. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/DVVideoRTPSource.hh +51 -0
  727. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/DVVideoStreamFramer.hh +72 -0
  728. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/DeviceSource.hh +66 -0
  729. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/DigestAuthentication.hh +77 -0
  730. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/FileServerMediaSubsession.hh +43 -0
  731. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/FileSink.hh +71 -0
  732. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/FramedFileSource.hh +37 -0
  733. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/FramedFilter.hh +52 -0
  734. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/FramedSource.hh +95 -0
  735. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/GSMAudioRTPSink.hh +44 -0
  736. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/GenericMediaServer.hh +224 -0
  737. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H261VideoRTPSource.hh +56 -0
  738. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoFileServerMediaSubsession.hh +48 -0
  739. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoRTPSink.hh +54 -0
  740. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoRTPSource.hh +60 -0
  741. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H263plusVideoStreamFramer.hh +64 -0
  742. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264VideoFileServerMediaSubsession.hh +61 -0
  743. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264VideoFileSink.hh +47 -0
  744. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264VideoRTPSink.hh +59 -0
  745. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264VideoRTPSource.hh +70 -0
  746. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264VideoStreamDiscreteFramer.hh +48 -0
  747. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264VideoStreamFramer.hh +45 -0
  748. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoFileSink.hh +46 -0
  749. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoRTPSink.hh +60 -0
  750. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoStreamDiscreteFramer.hh +56 -0
  751. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H264or5VideoStreamFramer.hh +92 -0
  752. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H265VideoFileServerMediaSubsession.hh +61 -0
  753. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H265VideoFileSink.hh +51 -0
  754. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H265VideoRTPSink.hh +62 -0
  755. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H265VideoRTPSource.hh +67 -0
  756. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H265VideoStreamDiscreteFramer.hh +48 -0
  757. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/H265VideoStreamFramer.hh +45 -0
  758. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/HLSSegmenter.hh +76 -0
  759. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/HMAC_SHA1.hh +34 -0
  760. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/HMAC_hash.hh +37 -0
  761. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/InputFile.hh +67 -0
  762. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/JPEG2000VideoRTPSink.hh +46 -0
  763. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/JPEG2000VideoRTPSource.hh +53 -0
  764. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/JPEGVideoRTPSink.hh +52 -0
  765. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/JPEGVideoRTPSource.hh +59 -0
  766. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/JPEGVideoSource.hh +55 -0
  767. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/Locale.hh +80 -0
  768. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MIKEY.hh +75 -0
  769. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3ADU.hh +94 -0
  770. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3ADURTPSink.hh +55 -0
  771. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3ADURTPSource.hh +49 -0
  772. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3ADUTranscoder.hh +64 -0
  773. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3ADUinterleaving.hh +129 -0
  774. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3AudioFileServerMediaSubsession.hh +73 -0
  775. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3FileSource.hh +71 -0
  776. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MP3Transcoder.hh +44 -0
  777. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2AudioRTPSink.hh +48 -0
  778. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2AudioRTPSource.hh +51 -0
  779. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2AudioStreamFramer.hh +70 -0
  780. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2Demux.hh +158 -0
  781. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2DemuxedElementaryStream.hh +69 -0
  782. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2DemuxedServerMediaSubsession.hh +63 -0
  783. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2FileServerDemux.hh +70 -0
  784. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoFileServerMediaSubsession.hh +59 -0
  785. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoRTPSink.hh +69 -0
  786. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoRTPSource.hh +53 -0
  787. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoStreamDiscreteFramer.hh +76 -0
  788. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG1or2VideoStreamFramer.hh +56 -0
  789. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2IndexFromTransportStream.hh +95 -0
  790. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportFileServerMediaSubsession.hh +131 -0
  791. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamAccumulator.hh +60 -0
  792. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamDemux.hh +50 -0
  793. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamFramer.hh +78 -0
  794. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamFromESSource.hh +66 -0
  795. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamFromPESSource.hh +62 -0
  796. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamIndexFile.hh +96 -0
  797. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamMultiplexor.hh +120 -0
  798. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportStreamTrickModeFilter.hh +99 -0
  799. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG2TransportUDPServerMediaSubsession.hh +55 -0
  800. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4ESVideoRTPSink.hh +72 -0
  801. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4ESVideoRTPSource.hh +51 -0
  802. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4GenericRTPSink.hh +70 -0
  803. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4GenericRTPSource.hh +78 -0
  804. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4LATMAudioRTPSink.hh +69 -0
  805. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4LATMAudioRTPSource.hh +101 -0
  806. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4VideoFileServerMediaSubsession.hh +61 -0
  807. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4VideoStreamDiscreteFramer.hh +73 -0
  808. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEG4VideoStreamFramer.hh +75 -0
  809. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MPEGVideoStreamFramer.hh +85 -0
  810. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MatroskaFile.hh +218 -0
  811. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MatroskaFileServerDemux.hh +88 -0
  812. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/Media.hh +139 -0
  813. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MediaSession.hh +374 -0
  814. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MediaSink.hh +135 -0
  815. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MediaSource.hh +59 -0
  816. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MediaTranscodingTable.hh +66 -0
  817. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MultiFramedRTPSink.hh +140 -0
  818. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/MultiFramedRTPSource.hh +159 -0
  819. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/OggFile.hh +179 -0
  820. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/OggFileServerDemux.hh +85 -0
  821. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/OggFileSink.hh +79 -0
  822. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/OnDemandServerMediaSubsession.hh +233 -0
  823. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/OutputFile.hh +31 -0
  824. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/PassiveServerMediaSubsession.hh +83 -0
  825. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ProxyServerMediaSession.hh +238 -0
  826. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/QCELPAudioRTPSource.hh +39 -0
  827. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/QuickTimeFileSink.hh +192 -0
  828. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/QuickTimeGenericRTPSource.hh +68 -0
  829. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTCP.hh +250 -0
  830. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTPInterface.hh +115 -0
  831. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTPSink.hh +250 -0
  832. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTPSource.hh +281 -0
  833. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTSPClient.hh +448 -0
  834. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTSPCommon.hh +65 -0
  835. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTSPRegisterSender.hh +138 -0
  836. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RTSPServer.hh +397 -0
  837. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RawVideoFrameParameters.hh +37 -0
  838. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RawVideoRTPSink.hh +71 -0
  839. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/RawVideoRTPSource.hh +60 -0
  840. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/SIPClient.hh +150 -0
  841. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/SRTPCryptographicContext.hh +152 -0
  842. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ServerMediaSession.hh +200 -0
  843. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/SimpleRTPSink.hh +76 -0
  844. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/SimpleRTPSource.hh +65 -0
  845. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/StreamReplicator.hh +84 -0
  846. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/T140TextRTPSink.hh +103 -0
  847. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/TLSState.hh +102 -0
  848. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/TextRTPSink.hh +41 -0
  849. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/TheoraVideoRTPSink.hh +72 -0
  850. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/TheoraVideoRTPSource.hh +53 -0
  851. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/VP8VideoRTPSink.hh +50 -0
  852. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/VP8VideoRTPSource.hh +50 -0
  853. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/VP9VideoRTPSink.hh +50 -0
  854. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/VP9VideoRTPSource.hh +50 -0
  855. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/VideoRTPSink.hh +41 -0
  856. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/VorbisAudioRTPSink.hh +85 -0
  857. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/VorbisAudioRTPSource.hh +66 -0
  858. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/WAVAudioFileServerMediaSubsession.hh +68 -0
  859. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/WAVAudioFileSource.hh +86 -0
  860. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/export.h +30 -0
  861. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/liveMedia.hh +137 -0
  862. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/liveMedia_version.hh +25 -0
  863. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/ourMD5.hh +38 -0
  864. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Headers/liveMedia/uLawAudioFilter.hh +208 -0
  865. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/Info.plist +54 -0
  866. package/ios/Flir/Frameworks/liblive666.dylib.xcframework/ios-arm64_x86_64-simulator/liblive666.dylib.framework/liblive666.dylib +0 -0
  867. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/Info.plist +44 -0
  868. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64/libswresample.5.dylib.framework/Headers/swresample.h +587 -0
  869. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64/libswresample.5.dylib.framework/Headers/version.h +46 -0
  870. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64/libswresample.5.dylib.framework/Headers/version_major.h +31 -0
  871. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64/libswresample.5.dylib.framework/Info.plist +54 -0
  872. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64/libswresample.5.dylib.framework/libswresample.5.dylib +0 -0
  873. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64_x86_64-simulator/libswresample.5.dylib.framework/Headers/swresample.h +587 -0
  874. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64_x86_64-simulator/libswresample.5.dylib.framework/Headers/version.h +46 -0
  875. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64_x86_64-simulator/libswresample.5.dylib.framework/Headers/version_major.h +31 -0
  876. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64_x86_64-simulator/libswresample.5.dylib.framework/Info.plist +54 -0
  877. package/ios/Flir/Frameworks/libswresample.5.dylib.xcframework/ios-arm64_x86_64-simulator/libswresample.5.dylib.framework/libswresample.5.dylib +0 -0
  878. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/Info.plist +44 -0
  879. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64/libswscale.8.dylib.framework/Headers/swscale.h +460 -0
  880. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64/libswscale.8.dylib.framework/Headers/version.h +44 -0
  881. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64/libswscale.8.dylib.framework/Headers/version_major.h +35 -0
  882. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64/libswscale.8.dylib.framework/Info.plist +54 -0
  883. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64/libswscale.8.dylib.framework/libswscale.8.dylib +0 -0
  884. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64_x86_64-simulator/libswscale.8.dylib.framework/Headers/swscale.h +460 -0
  885. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64_x86_64-simulator/libswscale.8.dylib.framework/Headers/version.h +44 -0
  886. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64_x86_64-simulator/libswscale.8.dylib.framework/Headers/version_major.h +35 -0
  887. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64_x86_64-simulator/libswscale.8.dylib.framework/Info.plist +54 -0
  888. package/ios/Flir/Frameworks/libswscale.8.dylib.xcframework/ios-arm64_x86_64-simulator/libswscale.8.dylib.framework/libswscale.8.dylib +0 -0
  889. package/ios/Flir/SDKLoader/FlirSDKLoader.m +27 -13
  890. package/ios/Flir/SDKLoader/FlirSDKLoader.swift +294 -175
  891. package/ios/Flir/src/Flir-Bridging-Header.h +34 -0
  892. package/ios/Flir/src/FlirEventEmitter.h +25 -12
  893. package/ios/Flir/src/FlirEventEmitter.m +63 -33
  894. package/ios/Flir/src/FlirManager.swift +599 -0
  895. package/ios/Flir/src/FlirModule.h +17 -10
  896. package/ios/Flir/src/FlirModule.m +702 -381
  897. package/ios/Flir/src/FlirPreviewView.h +13 -13
  898. package/ios/Flir/src/FlirPreviewView.m +171 -24
  899. package/ios/Flir/src/FlirState.h +68 -20
  900. package/ios/Flir/src/FlirState.m +135 -79
  901. package/ios/Flir/src/FlirViewManager.h +16 -9
  902. package/ios/Flir/src/FlirViewManager.m +27 -16
  903. package/package.json +70 -60
  904. package/react-native.config.js +14 -14
  905. package/scripts/copy_ios_libs.sh +32 -32
  906. package/scripts/create_stubs.py +174 -174
  907. package/scripts/download-sdk.js +62 -62
  908. package/scripts/prepare-binaries.sh +171 -171
  909. package/sdk-manifest.json +53 -37
  910. package/src/FlirDownload.ts +78 -78
  911. package/src/index.d.ts +76 -76
  912. package/src/index.js +7 -7
  913. package/src/index.ts +7 -7
  914. package/android/Flir/libs/androidsdk-release.aar +0 -0
package/README.md CHANGED
@@ -1,1271 +1,1309 @@
1
- # FLIR Thermal SDK - React Native
2
-
3
- A React Native wrapper for the FLIR Thermal SDK, providing thermal imaging capabilities for both Android and iOS applications.
4
-
5
- [![](https://jitpack.io/v/PraveenOjha/Flir.svg)](https://jitpack.io/#PraveenOjha/Flir)
6
-
7
- ## Features
8
-
9
- - 📱 Cross-platform support (Android & iOS)
10
- - 🔥 Real-time thermal imaging
11
- - 📸 Thermal image capture and processing
12
- - 🎨 Customizable color palettes
13
- - 📊 Temperature measurement and analysis
14
- - ⚡ **Automatic permission setup** (no manual manifest/plist editing required)
15
- - 📦 **On-demand SDK download** (~100MB downloaded only when needed)
16
- - 🔌 USB & Bluetooth device support
17
- - 🎮 Emulator mode for development without hardware
18
-
19
- ## Installation
20
-
21
- ### npm Installation
22
-
23
- ```bash
24
- npm install ilabs-flir
25
- # or
26
- yarn add ilabs-flir
27
- ```
28
-
29
- ### On-Demand SDK Download
30
-
31
- The FLIR SDK binaries (~100MB) are **not bundled** with this package. They are downloaded on-demand when thermal features are first used.
32
-
33
- #### Quick Start
34
-
35
- ```typescript
36
- import React, { useState, useEffect } from 'react';
37
- import { View, Text, Button, ActivityIndicator } from 'react-native';
38
- import { FlirDownload, FlirModule } from 'ilabs-flir';
39
-
40
- function ThermalCamera() {
41
- const [sdkReady, setSdkReady] = useState(false);
42
- const [downloading, setDownloading] = useState(false);
43
- const [progress, setProgress] = useState(0);
44
-
45
- useEffect(() => {
46
- checkAndDownloadSDK();
47
- }, []);
48
-
49
- const checkAndDownloadSDK = async () => {
50
- try {
51
- // Check if SDK is already available
52
- const available = await FlirDownload.isAvailable();
53
-
54
- if (available) {
55
- setSdkReady(true);
56
- return;
57
- }
58
-
59
- // Get download size to show user
60
- const size = await FlirDownload.getDownloadSizeFormatted(); // "100 MB"
61
- console.log(`SDK needs to be downloaded: ${size}`);
62
-
63
- // Download with progress tracking
64
- setDownloading(true);
65
- await FlirDownload.download((progress) => {
66
- setProgress(progress.percent);
67
- console.log(`Downloading: ${progress.percent.toFixed(0)}%`);
68
- });
69
-
70
- setDownloading(false);
71
- setSdkReady(true);
72
- console.log('SDK ready!');
73
- } catch (error) {
74
- console.error('SDK download failed:', error);
75
- setDownloading(false);
76
- }
77
- };
78
-
79
- if (downloading) {
80
- return (
81
- <View>
82
- <Text>Downloading FLIR SDK...</Text>
83
- <Text>{progress.toFixed(0)}%</Text>
84
- <ActivityIndicator size="large" />
85
- </View>
86
- );
87
- }
88
-
89
- if (!sdkReady) {
90
- return (
91
- <View>
92
- <Text>FLIR SDK not available</Text>
93
- <Button title="Download SDK" onPress={checkAndDownloadSDK} />
94
- </View>
95
- );
96
- }
97
-
98
- // SDK is ready, use FLIR features
99
- return (
100
- <View>
101
- <Button title="Start Discovery" onPress={() => FlirModule.startDiscovery()} />
102
- </View>
103
- );
104
- }
105
- ```
106
-
107
- #### FlirDownload API Reference
108
-
109
- | Method | Returns | Description |
110
- |--------|---------|-------------|
111
- | `isAvailable()` | `Promise<boolean>` | Check if SDK is already downloaded |
112
- | `getDownloadSize()` | `Promise<number>` | Get download size in bytes |
113
- | `getDownloadSizeFormatted()` | `Promise<string>` | Get human-readable size (e.g., "100 MB") |
114
- | `download(onProgress?)` | `Promise<void>` | Download SDK with optional progress callback |
115
- | `cancel()` | `void` | Cancel ongoing download |
116
- | `delete()` | `Promise<boolean>` | Remove downloaded SDK |
117
-
118
- #### Progress Callback
119
-
120
- ```typescript
121
- await FlirDownload.download((progress) => {
122
- console.log('Downloaded:', progress.bytesDownloaded);
123
- console.log('Total:', progress.totalBytes);
124
- console.log('Percent:', progress.percent); // 0-100
125
- });
126
- ```
127
-
128
- #### Best Practices
129
-
130
- **1. Download on First Launch**
131
- ```typescript
132
- // In your App.tsx or main component
133
- useEffect(() => {
134
- const initSDK = async () => {
135
- const available = await FlirDownload.isAvailable();
136
- if (!available) {
137
- // Show a modal or screen explaining the download
138
- await FlirDownload.download((progress) => {
139
- updateProgressBar(progress.percent);
140
- });
141
- }
142
- };
143
- initSDK();
144
- }, []);
145
- ```
146
-
147
- **2. Download Before Feature Access**
148
- ```typescript
149
- const openThermalCamera = async () => {
150
- const available = await FlirDownload.isAvailable();
151
-
152
- if (!available) {
153
- Alert.alert(
154
- 'Download Required',
155
- 'FLIR SDK needs to be downloaded (100 MB). Continue?',
156
- [
157
- { text: 'Cancel', style: 'cancel' },
158
- {
159
- text: 'Download',
160
- onPress: async () => {
161
- await FlirDownload.download((p) => console.log(p.percent));
162
- navigation.navigate('ThermalCamera');
163
- }
164
- }
165
- ]
166
- );
167
- } else {
168
- navigation.navigate('ThermalCamera');
169
- }
170
- };
171
- ```
172
-
173
- **3. Handle Errors**
174
- ```typescript
175
- try {
176
- await FlirDownload.download((progress) => {
177
- setProgress(progress.percent);
178
- });
179
- } catch (error) {
180
- if (error.message.includes('Checksum')) {
181
- Alert.alert('Download Error', 'File verification failed. Please try again.');
182
- } else if (error.message.includes('Network')) {
183
- Alert.alert('Network Error', 'Please check your internet connection.');
184
- } else {
185
- Alert.alert('Error', 'SDK download failed. Please try again.');
186
- }
187
- }
188
- ```
189
-
190
- **4. Show Download Size First**
191
- ```typescript
192
- const size = await FlirDownload.getDownloadSizeFormatted();
193
- Alert.alert(
194
- 'Download Required',
195
- `FLIR SDK (${size}) needs to be downloaded. This is a one-time download.`,
196
- [
197
- { text: 'Cancel' },
198
- { text: 'Download', onPress: () => downloadSDK() }
199
- ]
200
- );
201
- ```
202
-
203
- #### Where SDKs Are Downloaded From
204
-
205
- - **Android**: GitHub Releases (with optional Google Play Feature Delivery support)
206
- - **iOS**: GitHub Releases
207
- - **Source**: https://github.com/PraveenOjha/flir-sdk-binaries/releases
208
- - **Security**: SHA256 checksum verification on all downloads
209
-
210
- #### Offline Usage
211
-
212
- Once downloaded, the SDK is stored permanently on the device:
213
- - **iOS**: `Application Support/FlirSDK/`
214
- - **Android**: App's internal storage
215
-
216
- No internet connection needed after initial download.
217
-
218
- ### Manual SDK Download (Development)
219
-
220
- For development, you can pre-download the SDK:
221
-
222
- ```bash
223
- npm run download-sdk ios
224
- npm run download-sdk android
225
- ```
226
-
227
- ### Advanced: Google Play Feature Delivery (Android)
228
-
229
- For production Android apps distributed via Google Play Store, you can use **Play Feature Delivery** to have Google host and serve the SDK binaries at zero cost.
230
-
231
- **Benefits:**
232
- - ✅ Zero hosting and bandwidth costs (Google serves the files)
233
- - ✅ Faster downloads via Google's CDN
234
- - ✅ Automatic updates with your app
235
- - ✅ Already implemented in the code!
236
-
237
- **Setup:**
238
-
239
- 1. Create a dynamic feature module in your Android project:
240
- ```
241
- android/
242
- ├── app/
243
- └── flir_sdk/ # New feature module
244
- ├── build.gradle.kts
245
- └── src/main/AndroidManifest.xml
246
- ```
247
-
248
- 2. See detailed setup guide: [PLAY_FEATURE_DELIVERY_GUIDE.md](./PLAY_FEATURE_DELIVERY_GUIDE.md)
249
-
250
- 3. The code automatically uses Play Feature Delivery when available, with GitHub download as fallback.
251
-
252
- **When to use:**
253
- - ✅ Production apps on Google Play Store
254
- - ✅ Want zero hosting costs
255
- - ❌ Development builds (use GitHub download instead)
256
- - ❌ Apps distributed outside Play Store (use GitHub download)
257
-
258
-
259
- ### Prerequisites
260
-
261
- - React Native 0.60+
262
- - Android: minSdk 24, compileSdk 34
263
- - iOS: iOS 13.0+
264
-
265
- ### Quick Install
266
-
267
- #### Android (via JitPack)
268
-
269
- 1. Add JitPack repository to your root `build.gradle`:
270
-
271
- ```gradle
272
- allprojects {
273
- repositories {
274
- // ... other repositories
275
- maven { url 'https://jitpack.io' }
276
- }
277
- }
278
- ```
279
-
280
- 2. Add the dependency to your app's `build.gradle`:
281
-
282
- ```gradle
283
- dependencies {
284
- implementation 'com.github.PraveenOjha:Flir:1.0.0'
285
- }
286
- ```
287
-
288
- 3. Sync your Gradle files.
289
-
290
- **✅ Android permissions are automatically merged!** The library includes:
291
- - USB host feature (for FLIR ONE USB devices)
292
- - Camera & Internet permissions (for network-based FLIR cameras)
293
-
294
- No manual `AndroidManifest.xml` editing required!
295
-
296
- #### iOS (via CocoaPods)
297
-
298
- 1. Add the following to your `Podfile`:
299
-
300
- ```ruby
301
- # From GitHub repository (recommended)
302
- pod 'Flir', :git => 'https://github.com/PraveenOjha/Flir.git', :tag => '1.0.0'
303
-
304
- # OR for local development
305
- pod 'Flir', :podspec => '../path/to/Flir/Flir.podspec'
306
- ```
307
-
308
- 2. Run:
309
-
310
- ```bash
311
- cd ios
312
- pod install
313
- ```
314
-
315
- 3. **Choose ONE of these options for iOS permissions:**
316
-
317
- **Option A: Automatic (Recommended)** - Using React Native Config Plugin
318
-
319
- Add to your `app.json`:
320
-
321
- ```json
322
- {
323
- "plugins": ["ilabs-flir"]
324
- }
325
- ```
326
-
327
- Then run:
328
- ```bash
329
- npx expo prebuild
330
- ```
331
-
332
- ✅ All Info.plist entries are **automatically added**!
333
-
334
- **Option B: Manual Setup** - Add these entries to your `ios/YourApp/Info.plist`:
335
-
336
- ```xml
337
- <!-- External Accessory Protocols for FLIR ONE devices -->
338
- <key>UISupportedExternalAccessoryProtocols</key>
339
- <array>
340
- <string>com.flir.rosebud.config</string>
341
- <string>com.flir.rosebud.frame</string>
342
- <string>com.flir.rosebud.fileio</string>
343
- </array>
344
-
345
- <!-- Bluetooth permissions for FLIR ONE Edge/Pro -->
346
- <key>NSBluetoothAlwaysUsageDescription</key>
347
- <string>This app requires Bluetooth to connect to FLIR thermal cameras</string>
348
-
349
- <key>NSBluetoothPeripheralUsageDescription</key>
350
- <string>This app uses Bluetooth to communicate with FLIR thermal imaging devices</string>
351
- ```
352
-
353
- ## Usage
354
-
355
- ### Device Discovery
356
-
357
- ```javascript
358
- import { NativeModules, NativeEventEmitter } from 'react-native';
359
-
360
- const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
361
- const FlirEmitter = new NativeEventEmitter(FlirModule);
362
-
363
- // Listen for device events
364
- FlirEmitter.addListener('FlirDeviceConnected', (event) => {
365
- console.log('FLIR device connected:', event);
366
- });
367
-
368
- FlirEmitter.addListener('FlirDeviceDisconnected', (event) => {
369
- console.log('FLIR device disconnected:', event);
370
- });
371
-
372
- // Start discovering FLIR devices
373
- FlirModule.startDiscovery();
374
-
375
- // Stop discovery
376
- FlirModule.stopDiscovery();
377
- ```
378
-
379
- ### Camera Connection
380
-
381
- ```javascript
382
- // Connect to discovered device
383
- await FlirModule.connect(identityObject);
384
-
385
- // Disconnect
386
- FlirModule.disconnect();
387
-
388
- // Check connection status
389
- const isConnected = await FlirModule.isDeviceConnected();
390
- const deviceInfo = await FlirModule.getConnectedDeviceInfo();
391
- ```
392
-
393
- ### Temperature Measurement
394
-
395
- ```javascript
396
- // Get temperature at specific point (x, y coordinates)
397
- const temperature = await FlirModule.getTemperatureAt(100, 200);
398
- console.log(`Temperature: ${temperature}°C`);
399
-
400
- // Returns null if no thermal image is available
401
- if (temperature !== null) {
402
- console.log(`Detected: ${temperature.toFixed(2)}°C`);
403
- }
404
- ```
405
-
406
- ### Emulator Mode (Development)
407
-
408
- ```javascript
409
- // Check if running in emulator mode
410
- const isEmulator = await FlirModule.isEmulator();
411
-
412
- // Force start emulator mode (for testing without hardware)
413
- await FlirModule.startEmulatorMode();
414
-
415
- // Get device information
416
- const deviceInfo = await FlirModule.getConnectedDeviceInfo();
417
- // Returns: "Emulator (FLIR ONE)" or "Physical device (FLIR ONE)"
418
- ```
419
-
420
- ## API Reference
421
-
422
- ### Methods
423
-
424
- | Method | Parameters | Returns | Description |
425
- |--------|-----------|---------|-------------|
426
- | **Device Discovery** |
427
- | `startDiscovery()` | - | `void` | Start scanning forFLIR devices (USB & Emulator) |
428
- | `stopDiscovery()` | - | `void` | Stop device discovery |
429
- | **Connection** |
430
- | `connect(identity)` | `identity: object` | `Promise<boolean>` | Connect to a discovered FLIR device |
431
- | `disconnect()` | - | `void` | Disconnect from current device |
432
- | `isDeviceConnected()` | - | `Promise<boolean>` | Check if a physical device is connected |
433
- | `getConnectedDeviceInfo()` | - | `Promise<string>` | Get info about connected device |
434
- | **Temperature** |
435
- | `getTemperatureAt(x, y)` | `x: number, y: number` | `Promise<number \| null>` | Get temperature at pixel coordinates |
436
- | **Emulator** |
437
- | `isEmulator()` | - | `Promise<boolean>` | Check if running in emulator mode |
438
- | `startEmulatorMode()` | - | `Promise<boolean>` | Force start emulator mode |
439
-
440
- ### Events
441
-
442
- Listen to these events using `NativeEventEmitter`:
443
-
444
- | Event | Payload | Description |
445
- |-------|---------|-------------|
446
- | `FlirDeviceConnected` | `{ identity, deviceType, isEmulator }` | Fired when a FLIR device connects |
447
- | `FlirDeviceDisconnected` | `{ identity, wasEmulator }` | Fired when a device disconnects |
448
- | `FlirError` | `{ error, type, interface }` | Fired on discovery or connection errors |
449
-
450
- ### Thermal Image Output
451
-
452
- FLIR cameras provide two image types:
453
- - **Thermal Image (MSX)**: Color-mapped thermal data with visual details
454
- - **Photo Image (DC)**: Standard visible light image
455
-
456
- **Color Palettes**: The SDK supports multiple palettes:
457
- - `iron` - Rainbow color map (red=hot, blue=cold) - Default
458
- - `gray` - Grayscale/black-white temperature map
459
- - `arctic`, `rainbow`, etc. - Additional palettes
460
-
461
- > **Note**: Palette switching requires accessing the native ThermalImage API directly. This may be exposed in future versions.
462
-
463
- ## Detailed Usage Guide
464
-
465
- ### Complete Setup Example
466
-
467
- Here's a complete React Native component that demonstrates the full FLIR workflow:
468
-
469
- ```javascript
470
- import React, { useEffect, useState } from 'react';
471
- import {
472
- View,
473
- Text,
474
- Button,
475
- StyleSheet,
476
- NativeModules,
477
- NativeEventEmitter,
478
- Alert,
479
- } from 'react-native';
480
-
481
- const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
482
- const FlirEmitter = new NativeEventEmitter(FlirModule);
483
-
484
- const FlirThermalCamera = () => {
485
- const [isDiscovering, setIsDiscovering] = useState(false);
486
- const [isConnected, setIsConnected] = useState(false);
487
- const [deviceInfo, setDeviceInfo] = useState('Not connected');
488
- const [temperature, setTemperature] = useState(null);
489
- const [isEmulator, setIsEmulator] = useState(false);
490
-
491
- useEffect(() => {
492
- // Set up event listeners
493
- const deviceConnected = FlirEmitter.addListener(
494
- 'FlirDeviceConnected',
495
- (event) => {
496
- console.log('Device connected:', event);
497
- setIsConnected(true);
498
- setIsDiscovering(false);
499
-
500
- // Get device info after connection
501
- FlirModule.getConnectedDeviceInfo().then(info => {
502
- setDeviceInfo(info);
503
- });
504
- }
505
- );
506
-
507
- const deviceDisconnected = FlirEmitter.addListener(
508
- 'FlirDeviceDisconnected',
509
- (event) => {
510
- console.log('Device disconnected:', event);
511
- setIsConnected(false);
512
- setDeviceInfo('Not connected');
513
- setTemperature(null);
514
- }
515
- );
516
-
517
- const deviceError = FlirEmitter.addListener(
518
- 'FlirError',
519
- (event) => {
520
- console.error('FLIR Error:', event);
521
- Alert.alert('FLIR Error', event.error || 'Unknown error');
522
- }
523
- );
524
-
525
- // Check if we're in emulator mode
526
- FlirModule.isEmulator().then(setIsEmulator);
527
-
528
- // Cleanup listeners on unmount
529
- return () => {
530
- deviceConnected.remove();
531
- deviceDisconnected.remove();
532
- deviceError.remove();
533
-
534
- // Disconnect on unmount
535
- if (isConnected) {
536
- FlirModule.disconnect();
537
- }
538
- };
539
- }, []);
540
-
541
- const handleStartDiscovery = () => {
542
- setIsDiscovering(true);
543
- FlirModule.startDiscovery();
544
- };
545
-
546
- const handleStopDiscovery = () => {
547
- setIsDiscovering(false);
548
- FlirModule.stopDiscovery();
549
- };
550
-
551
- const handleDisconnect = () => {
552
- FlirModule.disconnect();
553
- };
554
-
555
- const handleStartEmulator = async () => {
556
- try {
557
- await FlirModule.startEmulatorMode();
558
- Alert.alert('Success', 'Emulator mode started');
559
- } catch (error) {
560
- Alert.alert('Error', 'Failed to start emulator mode');
561
- }
562
- };
563
-
564
- const handleGetTemperature = async () => {
565
- try {
566
- // Get temperature at center of image (adjust coordinates as needed)
567
- const temp = await FlirModule.getTemperatureAt(160, 120);
568
-
569
- if (temp !== null) {
570
- setTemperature(temp);
571
- } else {
572
- Alert.alert('Info', 'No thermal data available');
573
- }
574
- } catch (error) {
575
- Alert.alert('Error', 'Failed to get temperature');
576
- }
577
- };
578
-
579
- return (
580
- <View style={styles.container}>
581
- <Text style={styles.title}>FLIR Thermal Camera</Text>
582
-
583
- <View style={styles.statusContainer}>
584
- <Text style={styles.statusLabel}>Status:</Text>
585
- <Text style={styles.statusValue}>
586
- {isConnected ? 'Connected' : isDiscovering ? 'Discovering...' : 'Disconnected'}
587
- </Text>
588
- </View>
589
-
590
- <View style={styles.statusContainer}>
591
- <Text style={styles.statusLabel}>Device:</Text>
592
- <Text style={styles.statusValue}>{deviceInfo}</Text>
593
- </View>
594
-
595
- {temperature !== null && (
596
- <View style={styles.statusContainer}>
597
- <Text style={styles.statusLabel}>Temperature:</Text>
598
- <Text style={styles.tempValue}>{temperature.toFixed(2)}°C</Text>
599
- </View>
600
- )}
601
-
602
- <View style={styles.buttonContainer}>
603
- {!isConnected ? (
604
- <>
605
- <Button
606
- title={isDiscovering ? 'Stop Discovery' : 'Start Discovery'}
607
- onPress={isDiscovering ? handleStopDiscovery : handleStartDiscovery}
608
- />
609
- <Button
610
- title="Start Emulator"
611
- onPress={handleStartEmulator}
612
- />
613
- </>
614
- ) : (
615
- <>
616
- <Button
617
- title="Get Temperature"
618
- onPress={handleGetTemperature}
619
- />
620
- <Button
621
- title="Disconnect"
622
- onPress={handleDisconnect}
623
- color="#d9534f"
624
- />
625
- </>
626
- )}
627
- </View>
628
-
629
- {isEmulator && (
630
- <Text style={styles.emulatorNote}>
631
- ℹ️ Running in emulator mode
632
- </Text>
633
- )}
634
- </View>
635
- );
636
- };
637
-
638
- const styles = StyleSheet.create({
639
- container: {
640
- flex: 1,
641
- padding: 20,
642
- backgroundColor: '#fff',
643
- },
644
- title: {
645
- fontSize: 24,
646
- fontWeight: 'bold',
647
- marginBottom: 20,
648
- },
649
- statusContainer: {
650
- flexDirection: 'row',
651
- marginBottom: 10,
652
- },
653
- statusLabel: {
654
- fontWeight: 'bold',
655
- width: 100,
656
- },
657
- statusValue: {
658
- flex: 1,
659
- },
660
- tempValue: {
661
- flex: 1,
662
- fontSize: 18,
663
- fontWeight: 'bold',
664
- color: '#f44336',
665
- },
666
- buttonContainer: {
667
- marginTop: 20,
668
- gap: 10,
669
- },
670
- emulatorNote: {
671
- marginTop: 20,
672
- fontStyle: 'italic',
673
- color: '#666',
674
- },
675
- });
676
-
677
- export default FlirThermalCamera;
678
- ```
679
-
680
- ### Step-by-Step Workflow
681
-
682
- #### 1. Initialize Event Listeners
683
-
684
- Always set up event listeners before starting discovery:
685
-
686
- ```javascript
687
- import { NativeModules, NativeEventEmitter } from 'react-native';
688
-
689
- const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
690
- const FlirEmitter = new NativeEventEmitter(FlirModule);
691
-
692
- // Listen for device connection
693
- FlirEmitter.addListener('FlirDeviceConnected', (event) => {
694
- console.log('Connected:', event);
695
- // event.identity - Device identity object
696
- // event.deviceType - "device" or "emulator"
697
- // event.isEmulator - boolean
698
- });
699
-
700
- // Listen for disconnection
701
- FlirEmitter.addListener('FlirDeviceDisconnected', (event) => {
702
- console.log('Disconnected:', event);
703
- });
704
-
705
- // Listen for errors
706
- FlirEmitter.addListener('FlirError', (event) => {
707
- console.error('Error:', event.error);
708
- // event.type - "discovery" or "connection"
709
- // event.interface - Communication interface
710
- });
711
- ```
712
-
713
- #### 2. Start Device Discovery
714
-
715
- ```javascript
716
- // Start scanning for FLIR devices
717
- FlirModule.startDiscovery();
718
-
719
- // Discovery will automatically emit events when devices are found
720
- // On Android: Scans for USB devices and emulators
721
- // On iOS: Scans for Lightning, BLE, and emulator devices
722
- ```
723
-
724
- #### 3. Handle Device Connection
725
-
726
- Devices connect automatically when discovered. You'll receive a `FlirDeviceConnected` event:
727
-
728
- ```javascript
729
- FlirEmitter.addListener('FlirDeviceConnected', async (event) => {
730
- // Device is now connected
731
- console.log('Device ID:', event.identity.deviceId);
732
- console.log('Is Emulator:', event.isEmulator);
733
-
734
- // Get additional device information
735
- const info = await FlirModule.getConnectedDeviceInfo();
736
- console.log('Device Info:', info);
737
-
738
- // Check connection status
739
- const connected = await FlirModule.isDeviceConnected();
740
- console.log('Is Connected:', connected);
741
- });
742
- ```
743
-
744
- #### 4. Measure Temperature
745
-
746
- Once connected, you can measure temperature at any point:
747
-
748
- ```javascript
749
- // Get temperature at pixel coordinates (x, y)
750
- const temp = await FlirModule.getTemperatureAt(160, 120);
751
-
752
- if (temp !== null) {
753
- console.log(`Temperature: ${temp.toFixed(2)}°C`);
754
- } else {
755
- console.log('No thermal data available');
756
- }
757
- ```
758
-
759
- **Important Notes**:
760
- - Coordinates are in pixels relative to the thermal image
761
- - Returns `null` if no thermal image is available
762
- - Temperature is in Celsius
763
- - For FLIR ONE: Thermal image is typically 160×120 pixels
764
- - For other cameras: Check device specifications
765
-
766
- #### 5. Disconnect
767
-
768
- ```javascript
769
- // Disconnect from current device
770
- FlirModule.disconnect();
771
-
772
- // This will trigger a FlirDeviceDisconnected event
773
- ```
774
-
775
- #### 6. Stop Discovery
776
-
777
- ```javascript
778
- // Stop scanning for devices
779
- FlirModule.stopDiscovery();
780
- ```
781
-
782
- ### Development Without Hardware (Emulator Mode)
783
-
784
- You can test your app without a physical FLIR device:
785
-
786
- ```javascript
787
- // Check if already in emulator mode
788
- const isEmu = await FlirModule.isEmulator();
789
-
790
- if (!isEmu) {
791
- // Force start emulator mode
792
- await FlirModule.startEmulatorMode();
793
- }
794
-
795
- // Emulator will provide simulated thermal data
796
- // All APIs work the same as with real hardware
797
- ```
798
-
799
- ### Best Practices
800
-
801
- #### 1. Always Clean Up Listeners
802
-
803
- ```javascript
804
- useEffect(() => {
805
- const listeners = [
806
- FlirEmitter.addListener('FlirDeviceConnected', handleConnect),
807
- FlirEmitter.addListener('FlirDeviceDisconnected', handleDisconnect),
808
- FlirEmitter.addListener('FlirError', handleError),
809
- ];
810
-
811
- return () => {
812
- // Remove all listeners on unmount
813
- listeners.forEach(listener => listener.remove());
814
-
815
- // Disconnect device
816
- FlirModule.disconnect();
817
- };
818
- }, []);
819
- ```
820
-
821
- #### 2. Handle Connection State
822
-
823
- ```javascript
824
- const [connectionState, setConnectionState] = useState('disconnected');
825
- // States: 'disconnected', 'discovering', 'connected'
826
-
827
- const handleStartDiscovery = () => {
828
- setConnectionState('discovering');
829
- FlirModule.startDiscovery();
830
- };
831
-
832
- FlirEmitter.addListener('FlirDeviceConnected', () => {
833
- setConnectionState('connected');
834
- });
835
-
836
- FlirEmitter.addListener('FlirDeviceDisconnected', () => {
837
- setConnectionState('disconnected');
838
- });
839
- ```
840
-
841
- #### 3. Error Handling
842
-
843
- ```javascript
844
- try {
845
- const temp = await FlirModule.getTemperatureAt(x, y);
846
-
847
- if (temp === null) {
848
- // No thermal data (device not streaming yet)
849
- console.log('Waiting for thermal data...');
850
- } else {
851
- // Valid temperature
852
- setTemperature(temp);
853
- }
854
- } catch (error) {
855
- console.error('Temperature measurement failed:', error);
856
- }
857
- ```
858
-
859
- #### 4. Temperature Sampling Rate
860
-
861
- Avoid calling `getTemperatureAt` too frequently:
862
-
863
- ```javascript
864
- // ❌ Bad: Calling too frequently
865
- setInterval(() => {
866
- FlirModule.getTemperatureAt(x, y);
867
- }, 16); // 60 FPS - too fast!
868
-
869
- // ✅ Good: Reasonable sampling rate
870
- setInterval(async () => {
871
- const temp = await FlirModule.getTemperatureAt(x, y);
872
- if (temp !== null) {
873
- setTemperature(temp);
874
- }
875
- }, 500); // 2 Hz - good for most applications
876
- ```
877
-
878
- ### Common Use Cases
879
-
880
- #### Use Case 1: Continuous Temperature Monitoring
881
-
882
- ```javascript
883
- const [centerTemp, setCenterTemp] = useState(null);
884
-
885
- useEffect(() => {
886
- if (!isConnected) return;
887
-
888
- // Poll temperature every 500ms
889
- const interval = setInterval(async () => {
890
- const temp = await FlirModule.getTemperatureAt(160, 120);
891
- if (temp !== null) {
892
- setCenterTemp(temp);
893
- }
894
- }, 500);
895
-
896
- return () => clearInterval(interval);
897
- }, [isConnected]);
898
- ```
899
-
900
- #### Use Case 2: Multi-Point Temperature Measurement
901
-
902
- ```javascript
903
- const measureMultiplePoints = async () => {
904
- const points = [
905
- { x: 80, y: 60, name: 'Top Left' },
906
- { x: 240, y: 60, name: 'Top Right' },
907
- { x: 160, y: 120, name: 'Center' },
908
- ];
909
-
910
- const results = await Promise.all(
911
- points.map(async (point) => {
912
- const temp = await FlirModule.getTemperatureAt(point.x, point.y);
913
- return { ...point, temperature: temp };
914
- })
915
- );
916
-
917
- console.log('Temperature readings:', results);
918
- return results;
919
- };
920
- ```
921
-
922
- #### Use Case 3: Auto-Connect on App Start
923
-
924
- ```javascript
925
- useEffect(() => {
926
- // Auto-start discovery when app loads
927
- FlirModule.startDiscovery();
928
-
929
- // Or use emulator if no device available
930
- setTimeout(async () => {
931
- const connected = await FlirModule.isDeviceConnected();
932
- if (!connected) {
933
- console.log('No device found, starting emulator');
934
- await FlirModule.startEmulatorMode();
935
- }
936
- }, 5000); // Wait 5 seconds for device
937
-
938
- return () => {
939
- FlirModule.stopDiscovery();
940
- FlirModule.disconnect();
941
- };
942
- }, []);
943
- ```
944
-
945
- ### Troubleshooting
946
-
947
- #### Problem: "No devices found"
948
-
949
- **Android**:
950
- - Ensure USB debugging is enabled
951
- - Check USB cable is data-capable (not charge-only)
952
- - Grant USB permissions when prompted
953
- - Try unplugging and replugging the FLIR device
954
-
955
- **iOS**:
956
- - Ensure Lightning connector is clean
957
- - Check Info.plist has External Accessory protocols
958
- - For BLE devices: Enable Bluetooth and grant permissions
959
- - Try force-quitting and restarting the app
960
-
961
- #### Problem: "Permission denied"
962
-
963
- **Android**:
964
- ```xml
965
- <!-- Ensure these are in AndroidManifest.xml (auto-added by library) -->
966
- <uses-feature android:name="android.hardware.usb.host" />
967
- <uses-permission android:name="android.permission.CAMERA"/>
968
- ```
969
-
970
- **iOS**:
971
- ```xml
972
- <!-- Ensure these are in Info.plist -->
973
- <key>NSBluetoothAlwaysUsageDescription</key>
974
- <string>Required for FLIR cameras</string>
975
- ```
976
-
977
- #### Problem: "Temperature returns null"
978
-
979
- ```javascript
980
- // Wait for device to start streaming
981
- FlirEmitter.addListener('FlirDeviceConnected', async (event) => {
982
- // Wait a moment for streaming to start
983
- setTimeout(async () => {
984
- const temp = await FlirModule.getTemperatureAt(160, 120);
985
- console.log('Temperature:', temp);
986
- }, 1000);
987
- });
988
- ```
989
-
990
- #### Problem: "App crashes on disconnect"
991
-
992
- ```javascript
993
- // Always check connection before API calls
994
- const getTemperatureSafely = async (x, y) => {
995
- const connected = await FlirModule.isDeviceConnected();
996
-
997
- if (!connected) {
998
- console.log('Device not connected');
999
- return null;
1000
- }
1001
-
1002
- return await FlirModule.getTemperatureAt(x, y);
1003
- };
1004
- ```
1005
-
1006
- #### Problem: "Events not firing"
1007
-
1008
- ```javascript
1009
- // Ensure NativeEventEmitter is created with the module
1010
- const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
1011
- const FlirEmitter = new NativeEventEmitter(FlirModule); // ✅ Pass module
1012
-
1013
- // ❌ Wrong:
1014
- const FlirEmitter = new NativeEventEmitter(); // No events will fire!
1015
- ```
1016
-
1017
- ### Platform-Specific Notes
1018
-
1019
- #### Android
1020
- - Supports USB FLIR ONE cameras
1021
- - Supports network-based FLIR cameras (ACE series)
1022
- - Requires physical device (emulator for development only)
1023
- - USB permissions handled automatically via `UsbPermissionHandler`
1024
-
1025
- #### iOS
1026
- - Supports Lightning interface (FLIR ONE Classic)
1027
- - Supports Bluetooth LE (FLIR ONE Edge/Pro)
1028
- - Works on both device and simulator (with emulator mode)
1029
- - Requires Info.plist entries (auto-added via config plugin)
1030
-
1031
- ### Performance Tips
1032
-
1033
- 1. **Limit temperature polling frequency**: 1-2 Hz is sufficient for most apps
1034
- 2. **Disconnect when not in use**: Save battery by disconnecting in background
1035
- 3. **Use emulator for UI development**: Build UI without physical hardware
1036
- 4. **Cache device info**: Don't call `getConnectedDeviceInfo()` repeatedly
1037
-
1038
- ## Publishing to JitPack
1039
-
1040
- To publish a new version to JitPack:
1041
-
1042
- 1. Commit all your changes:
1043
- ```bash
1044
- git add .
1045
- git commit -m "Release version 1.0.0"
1046
- ```
1047
-
1048
- 2. Create a git tag:
1049
- ```bash
1050
- git tag 1.0.0
1051
- git push origin 1.0.0
1052
- ```
1053
-
1054
- 3. JitPack will automatically build your library when someone requests it for the first time.
1055
-
1056
- ### JitPack / CI notes for local AAR dependencies
1057
-
1058
- If your module includes local AARs (for example the FLIR SDK binaries under `android/Flir/libs/`), CI environments such as JitPack will not automatically resolve file-based dependencies. To publish or build on JitPack you must ensure those AARs are available to the build system.
1059
-
1060
- Two options:
1061
- - Publish the AARs to a repository (mavenLocal or a remote Maven repo) before building the module.
1062
- - Bundle the AARs into the final AAR using a "fat-AAR" approach.
1063
-
1064
- The repository is configured to publish the FLIR SDK AARs into `mavenLocal` during the JitPack build (see `jitpack.yml`). That lets the `Flir` module resolve them by coordinates (`com.flir:thermalsdk:1.0.0` and `com.flir:androidsdk:1.0.0`) and prevents missing-class failures when JitPack builds the library.
1065
-
1066
- ### SLF4J duplicate-class conflict
1067
-
1068
- If you see build errors about duplicate classes in `org.slf4j.*` (for example `Duplicate class org.slf4j.Logger`), this happens when:
1069
-
1070
- - The vendor AAR (androidsdk/thermalsdk) embeds SLF4J classes inside the AAR's classes.jar;
1071
- - And your project or another dependency brings `org.slf4j:slf4j-api:...` as a separate jar. Gradle fails because the same classes exist twice.
1072
-
1073
- Two ways to resolve this without editing the vendor AAR:
1074
-
1075
- 1) Exclude SLF4J API from your build (preferred when vendor AAR bundles SLF4J classes):
1076
-
1077
- In your module's build.gradle.kts (or in the consuming app), add:
1078
-
1079
- ```kotlin
1080
- configurations.all {
1081
- exclude(group = "org.slf4j", module = "slf4j-api")
1082
- }
1083
- ```
1084
-
1085
- This prevents Gradle from pulling `slf4j-api` into the classpath and avoids duplicates.
1086
-
1087
- 2) Provide a single canonical SLF4J provider at runtime (if your app needs the slf4j API):
1088
-
1089
- Add a single SLF4J implementation/binding (for example `org.slf4j:slf4j-android` or an appropriate binding) and ensure other copies are excluded.
1090
-
1091
- Notes:
1092
- - We updated the Flir module to exclude `org.slf4j:slf4j-api` so it will not bring the API transitively. If you're still seeing duplicates in your app, check other dependencies and exclude slf4j there or use option 1.
1093
- - If you want me to, I can help you create a more robust fix (publishing Android AAR wrappers without embedded SLF4J or shading/relocating SLF4J) depending on your distribution needs.
1094
-
1095
- 4. Check build status at: `https://jitpack.io/#PraveenOjha/Flir`
1096
-
1097
- ### Notes for CI / JitPack
1098
-
1099
- If the Android build succeeds locally but fails on JitPack/CI with an error like:
1100
-
1101
- ```
1102
- Error: Unable to access jarfile /home/jitpack/build/gradle/wrapper/gradle-wrapper.jar
1103
- ```
1104
-
1105
- this typically means the Gradle wrapper files are missing from the published repository. JitPack runs builds in a clean VM and expects the wrapper files to be present in the repo. To make the build reproducible on JitPack, ensure you commit the following files:
1106
-
1107
- - `gradle/wrapper/gradle-wrapper.jar`
1108
- - `gradle/wrapper/gradle-wrapper.properties`
1109
- - `gradlew` (ensure executable bit is set)
1110
- - `gradlew.bat`
1111
-
1112
- After committing those files, trigger a new JitPack build (or push a new tag). Avoid committing `local.properties` — it contains developer-specific SDK paths and will break CI if present.
1113
-
1114
- ## Publishing to CocoaPods
1115
-
1116
- To publish to CocoaPods Trunk:
1117
-
1118
- 1. Register your CocoaPods account (first time only):
1119
- ```bash
1120
- pod trunk register your-email@example.com 'Your Name'
1121
- ```
1122
-
1123
- 2. Validate your podspec (run from repository root):
1124
- ```bash
1125
- pod spec lint ios/flir/Flir.podspec --allow-warnings
1126
- ```
1127
-
1128
- 3. Push to CocoaPods (run from repository root):
1129
- ```bash
1130
- pod trunk push ios/flir/Flir.podspec --allow-warnings
1131
- ```
1132
-
1133
- 4. Verify publication:
1134
- ```bash
1135
- pod search Flir
1136
- ```
1137
-
1138
- **Note:** The `--allow-warnings` flag may be needed for vendored frameworks.
1139
-
1140
- ## Development
1141
-
1142
- ### Building Locally
1143
-
1144
- #### Android
1145
-
1146
- ```bash
1147
- cd android
1148
- ./gradlew build
1149
- ```
1150
-
1151
- #### iOS
1152
-
1153
- ```bash
1154
- cd ios/flir
1155
- pod install
1156
- xcodebuild -workspace Flir.xcworkspace -scheme Flir -configuration Release
1157
- ```
1158
-
1159
- ### Testing
1160
-
1161
- ```bash
1162
- npm test
1163
- ```
1164
-
1165
- ## Emulator Mode
1166
-
1167
- This wrapper supports emulator mode for development and testing without requiring a physical FLIR device.
1168
-
1169
- ### Features
1170
-
1171
- - **Device Detection**: Automatically detect if running on an emulator
1172
- - **Fallback Mode**: Use FLIR's built-in emulator when no physical device is available
1173
- - **Consistent API**: Same API calls work for both emulator and physical devices
1174
-
1175
- ### Usage
1176
-
1177
- ```javascript
1178
- import FlirModule from 'react-native-flir';
1179
-
1180
- // Check if running in emulator mode
1181
- const isEmulator = await FlirModule.isEmulator();
1182
- console.log('Running in emulator:', isEmulator);
1183
-
1184
- // Check if a physical device is connected
1185
- const isDeviceConnected = await FlirModule.isDeviceConnected();
1186
- console.log('Physical device connected:', isDeviceConnected);
1187
-
1188
- // Get device information
1189
- const deviceInfo = await FlirModule.getConnectedDeviceInfo();
1190
- console.log('Device info:', deviceInfo);
1191
-
1192
- // Force start emulator mode (useful for testing)
1193
- await FlirModule.startEmulatorMode();
1194
- ```
1195
-
1196
- ### Emulator Features
1197
-
1198
- - **Simulated Thermal Data**: Provides mock thermal imaging data
1199
- - **Temperature Readings**: Returns simulated temperature values
1200
- - **Device Events**: Emits connection/disconnection events like physical devices
1201
- - **Testing Environment**: Perfect for CI/CD and development without hardware
1202
-
1203
- ### Android Emulator Detection
1204
-
1205
- The Android implementation detects emulators by checking:
1206
- - Build properties (`ro.build.fingerprint`, `ro.kernel.qemu`)
1207
- - Hardware characteristics
1208
- - Build model and manufacturer
1209
-
1210
- ### iOS Simulator Detection
1211
-
1212
- The iOS implementation uses:
1213
- - FLIR SDK's built-in emulator interface
1214
- - Runtime environment detection
1215
- - Simulator-specific device identifiers
1216
-
1217
- ## Requirements
1218
-
1219
- ### Android
1220
- - Android SDK 24+
1221
- - Kotlin 1.9.0+
1222
- - Gradle 8.1.0+
1223
- - Java 21
1224
-
1225
- ### iOS
1226
- - iOS 13.0+
1227
- - Xcode 14+
1228
- - CocoaPods 1.10+
1229
-
1230
- ## FLIR SDK Licensing
1231
-
1232
- This React Native wrapper is provided under the MIT license, but the FLIR thermal imaging SDKs have their own licensing requirements:
1233
-
1234
- 1. **Commercial Use**: Requires a commercial license from FLIR
1235
- 2. **Development License**: Required even for development and testing
1236
- 3. **Distribution**: You cannot distribute FLIR SDK libraries without proper licensing
1237
-
1238
- **Important**: The FLIR SDK libraries included in this repository are placeholders. You must:
1239
- - Register at [FLIR Developer Portal](https://www.flir.com/developer/mobile-sdk/)
1240
- - Download your licensed SDK versions
1241
- - Replace the placeholder files with your licensed libraries
1242
-
1243
- ## License
1244
-
1245
- **Wrapper Code**: MIT License (this React Native wrapper)
1246
- **FLIR SDK**: Proprietary license from FLIR Systems (see FLIR developer portal)
1247
-
1248
- By using this wrapper, you agree to comply with FLIR's licensing terms and conditions. License - see LICENSE file for details
1249
-
1250
- ### Disclaimer
1251
-
1252
- Flir SDKs may not be used to create apps intended for medical or health purposes; please refer to the SDK license agreement for more detailed information.
1253
-
1254
- ## Contributing
1255
-
1256
- Contributions are welcome! Please feel free to submit a Pull Request.
1257
-
1258
- ## Support
1259
-
1260
- For issues and questions:
1261
- - 🐛 [Report a bug](https://github.com/PraveenOjha/Flir/issues)
1262
- - 💡 [Request a feature](https://github.com/PraveenOjha/Flir/issues)
1263
- - 📖 [Documentation](https://github.com/PraveenOjha/Flir/wiki)
1264
-
1265
- ## Credits
1266
-
1267
- Built with the FLIR Thermal SDK
1268
-
1269
- ---
1270
-
1271
- Made with ❤️ by [Praveen Ojha](https://github.com/PraveenOjha)
1
+ # FLIR Thermal SDK - React Native
2
+
3
+ A React Native wrapper for the FLIR Thermal SDK, providing thermal imaging capabilities for both Android and iOS applications.
4
+
5
+ [![](https://jitpack.io/v/PraveenOjha/Flir.svg)](https://jitpack.io/#PraveenOjha/Flir)
6
+
7
+ ## Features
8
+
9
+ - 📱 Cross-platform support (Android & iOS)
10
+ - 🔥 Real-time thermal imaging
11
+ - 📸 Thermal image capture and processing
12
+ - 🎨 Customizable color palettes
13
+ - 📊 Temperature measurement and analysis
14
+ - ⚡ **Automatic permission setup** (no manual manifest/plist editing required)
15
+ - 📦 **On-demand SDK download** (~100MB downloaded only when needed)
16
+ - 🔌 USB & Bluetooth device support
17
+ - 🎮 Emulator mode for development without hardware
18
+
19
+ ## Installation
20
+
21
+ ### npm Installation
22
+
23
+ ```bash
24
+ npm install ilabs-flir
25
+ # or
26
+ yarn add ilabs-flir
27
+ ```
28
+
29
+ ### On-Demand SDK Download
30
+
31
+ The FLIR SDK binaries (~100MB) are **not bundled** with this package. They are downloaded on-demand when thermal features are first used.
32
+
33
+ #### Quick Start
34
+
35
+ ```typescript
36
+ import React, { useState, useEffect } from 'react';
37
+ import { View, Text, Button, ActivityIndicator } from 'react-native';
38
+ import { FlirDownload, FlirModule } from 'ilabs-flir';
39
+
40
+ function ThermalCamera() {
41
+ const [sdkReady, setSdkReady] = useState(false);
42
+ const [downloading, setDownloading] = useState(false);
43
+ const [progress, setProgress] = useState(0);
44
+
45
+ useEffect(() => {
46
+ checkAndDownloadSDK();
47
+ }, []);
48
+
49
+ const checkAndDownloadSDK = async () => {
50
+ try {
51
+ // Check if SDK is already available
52
+ const available = await FlirDownload.isAvailable();
53
+
54
+ if (available) {
55
+ setSdkReady(true);
56
+ return;
57
+ }
58
+
59
+ // Get download size to show user
60
+ const size = await FlirDownload.getDownloadSizeFormatted(); // "100 MB"
61
+ console.log(`SDK needs to be downloaded: ${size}`);
62
+
63
+ // Download with progress tracking
64
+ setDownloading(true);
65
+ await FlirDownload.download((progress) => {
66
+ setProgress(progress.percent);
67
+ console.log(`Downloading: ${progress.percent.toFixed(0)}%`);
68
+ });
69
+
70
+ setDownloading(false);
71
+ setSdkReady(true);
72
+ console.log('SDK ready!');
73
+ } catch (error) {
74
+ console.error('SDK download failed:', error);
75
+ setDownloading(false);
76
+ }
77
+ };
78
+
79
+ if (downloading) {
80
+ return (
81
+ <View>
82
+ <Text>Downloading FLIR SDK...</Text>
83
+ <Text>{progress.toFixed(0)}%</Text>
84
+ <ActivityIndicator size="large" />
85
+ </View>
86
+ );
87
+ }
88
+
89
+ if (!sdkReady) {
90
+ return (
91
+ <View>
92
+ <Text>FLIR SDK not available</Text>
93
+ <Button title="Download SDK" onPress={checkAndDownloadSDK} />
94
+ </View>
95
+ );
96
+ }
97
+
98
+ // SDK is ready, use FLIR features
99
+ return (
100
+ <View>
101
+ <Button title="Start Discovery" onPress={() => FlirModule.startDiscovery()} />
102
+ </View>
103
+ );
104
+ }
105
+ ```
106
+
107
+ #### FlirDownload API Reference
108
+
109
+ | Method | Returns | Description |
110
+ |--------|---------|-------------|
111
+ | `isAvailable()` | `Promise<boolean>` | Check if SDK is already downloaded |
112
+ | `getDownloadSize()` | `Promise<number>` | Get download size in bytes |
113
+ | `getDownloadSizeFormatted()` | `Promise<string>` | Get human-readable size (e.g., "100 MB") |
114
+ | `download(onProgress?)` | `Promise<void>` | Download SDK with optional progress callback |
115
+ | `cancel()` | `void` | Cancel ongoing download |
116
+ | `delete()` | `Promise<boolean>` | Remove downloaded SDK |
117
+
118
+ #### Progress Callback
119
+
120
+ ```typescript
121
+ await FlirDownload.download((progress) => {
122
+ console.log('Downloaded:', progress.bytesDownloaded);
123
+ console.log('Total:', progress.totalBytes);
124
+ console.log('Percent:', progress.percent); // 0-100
125
+ });
126
+ ```
127
+
128
+ #### Best Practices
129
+
130
+ **1. Download on First Launch**
131
+ ```typescript
132
+ // In your App.tsx or main component
133
+ useEffect(() => {
134
+ const initSDK = async () => {
135
+ const available = await FlirDownload.isAvailable();
136
+ if (!available) {
137
+ // Show a modal or screen explaining the download
138
+ await FlirDownload.download((progress) => {
139
+ updateProgressBar(progress.percent);
140
+ });
141
+ }
142
+ };
143
+ initSDK();
144
+ }, []);
145
+ ```
146
+
147
+ **2. Download Before Feature Access**
148
+ ```typescript
149
+ const openThermalCamera = async () => {
150
+ const available = await FlirDownload.isAvailable();
151
+
152
+ if (!available) {
153
+ Alert.alert(
154
+ 'Download Required',
155
+ 'FLIR SDK needs to be downloaded (100 MB). Continue?',
156
+ [
157
+ { text: 'Cancel', style: 'cancel' },
158
+ {
159
+ text: 'Download',
160
+ onPress: async () => {
161
+ await FlirDownload.download((p) => console.log(p.percent));
162
+ navigation.navigate('ThermalCamera');
163
+ }
164
+ }
165
+ ]
166
+ );
167
+ } else {
168
+ navigation.navigate('ThermalCamera');
169
+ }
170
+ };
171
+ ```
172
+
173
+ **3. Handle Errors**
174
+ ```typescript
175
+ try {
176
+ await FlirDownload.download((progress) => {
177
+ setProgress(progress.percent);
178
+ });
179
+ } catch (error) {
180
+ if (error.message.includes('Checksum')) {
181
+ Alert.alert('Download Error', 'File verification failed. Please try again.');
182
+ } else if (error.message.includes('Network')) {
183
+ Alert.alert('Network Error', 'Please check your internet connection.');
184
+ } else {
185
+ Alert.alert('Error', 'SDK download failed. Please try again.');
186
+ }
187
+ }
188
+ ```
189
+
190
+ **4. Show Download Size First**
191
+ ```typescript
192
+ const size = await FlirDownload.getDownloadSizeFormatted();
193
+ Alert.alert(
194
+ 'Download Required',
195
+ `FLIR SDK (${size}) needs to be downloaded. This is a one-time download.`,
196
+ [
197
+ { text: 'Cancel' },
198
+ { text: 'Download', onPress: () => downloadSDK() }
199
+ ]
200
+ );
201
+ ```
202
+
203
+ #### Where SDKs Are Downloaded From
204
+
205
+ - **Android**: GitHub Releases (with optional Google Play Feature Delivery support)
206
+ - **iOS**: GitHub Releases
207
+ - **Source**: https://github.com/PraveenOjha/flir-sdk-binaries/releases
208
+ - **Security**: SHA256 checksum verification on all downloads
209
+
210
+ #### Offline Usage
211
+
212
+ Once downloaded, the SDK is stored permanently on the device:
213
+ - **iOS**: `Application Support/FlirSDK/`
214
+ - **Android**: App's internal storage
215
+
216
+ No internet connection needed after initial download.
217
+
218
+ ### Manual SDK Download (Development)
219
+
220
+ For development, you can pre-download the SDK:
221
+
222
+ ```bash
223
+ npm run download-sdk ios
224
+ npm run download-sdk android
225
+ ```
226
+
227
+ ### Advanced: Google Play Feature Delivery (Android)
228
+
229
+ For production Android apps distributed via Google Play Store, you can use **Play Feature Delivery** to have Google host and serve the SDK binaries at zero cost.
230
+
231
+ **Benefits:**
232
+ - ✅ Zero hosting and bandwidth costs (Google serves the files)
233
+ - ✅ Faster downloads via Google's CDN
234
+ - ✅ Automatic updates with your app
235
+ - ✅ Already implemented in the code!
236
+
237
+ **Setup:**
238
+
239
+ 1. Create a dynamic feature module in your Android project:
240
+ ```
241
+ android/
242
+ ├── app/
243
+ └── flir_sdk/ # New feature module
244
+ ├── build.gradle.kts
245
+ └── src/main/AndroidManifest.xml
246
+ ```
247
+
248
+ 2. See detailed setup guide: [PLAY_FEATURE_DELIVERY_GUIDE.md](./PLAY_FEATURE_DELIVERY_GUIDE.md)
249
+
250
+ 3. The code automatically uses Play Feature Delivery when available, with GitHub download as fallback.
251
+
252
+ **When to use:**
253
+ - ✅ Production apps on Google Play Store
254
+ - ✅ Want zero hosting costs
255
+ - ❌ Development builds (use GitHub download instead)
256
+ - ❌ Apps distributed outside Play Store (use GitHub download)
257
+
258
+
259
+ ### Prerequisites
260
+
261
+ - React Native 0.60+
262
+ - Android: minSdk 24, compileSdk 34
263
+ - iOS: iOS 13.0+
264
+
265
+ ### Quick Install
266
+
267
+ #### Android (via JitPack)
268
+
269
+ 1. Add JitPack repository to your root `build.gradle`:
270
+
271
+ ```gradle
272
+ allprojects {
273
+ repositories {
274
+ // ... other repositories
275
+ maven { url 'https://jitpack.io' }
276
+ }
277
+ }
278
+ ```
279
+
280
+ 2. Add the dependency to your app's `build.gradle`:
281
+
282
+ ```gradle
283
+ dependencies {
284
+ implementation 'com.github.PraveenOjha:Flir:1.0.0'
285
+ }
286
+ ```
287
+
288
+ 3. Sync your Gradle files.
289
+
290
+ **✅ Android permissions are automatically merged!** The library includes:
291
+ - USB host feature (for FLIR ONE USB devices)
292
+ - Camera & Internet permissions (for network-based FLIR cameras)
293
+
294
+ No manual `AndroidManifest.xml` editing required!
295
+
296
+ #### iOS (via CocoaPods)
297
+
298
+ 1. Add the following to your `Podfile`:
299
+
300
+ ```ruby
301
+ # From npm package (recommended)
302
+ # The pod will be auto-linked via react-native config
303
+
304
+ # OR from GitHub repository
305
+ pod 'Flir', :git => 'https://github.com/PraveenOjha/Flir.git', :tag => '2.0.0'
306
+
307
+ # OR for local development
308
+ pod 'Flir', :podspec => '../path/to/Flir/Flir.podspec'
309
+ ```
310
+
311
+ 2. Run:
312
+
313
+ ```bash
314
+ cd ios
315
+ pod install
316
+ ```
317
+
318
+ ##### Building Without FLIR SDK (No Paid License)
319
+
320
+ If you don't have a paid FLIR developer license, you can build the app without the FLIR SDK. The module will provide fallback stub implementations:
321
+
322
+ ```bash
323
+ # Set environment variable before pod install
324
+ FLIR_DISABLED=1 pod install
325
+
326
+ # Or in your Podfile:
327
+ ENV['FLIR_DISABLED'] = '1'
328
+ ```
329
+
330
+ When `FLIR_DISABLED=1`:
331
+ - ✅ App compiles without FLIR SDK frameworks
332
+ - ✅ All module methods still work (return stubs/fallbacks)
333
+ - ✅ Fallback thermal-style gradient images are generated
334
+ - No actual thermal camera functionality
335
+
336
+ ##### Including FLIR SDK (Paid License Required)
337
+
338
+ To enable full FLIR functionality:
339
+
340
+ 1. Download ThermalSDK.xcframework from FLIR
341
+ 2. Copy the following xcframeworks to `node_modules/ilabs-flir/ios/Flir/Frameworks/`:
342
+ - `ThermalSDK.xcframework`
343
+ - `libavcodec.61.dylib.xcframework`
344
+ - `libavdevice.61.dylib.xcframework`
345
+ - `libavfilter.10.dylib.xcframework`
346
+ - `libavformat.61.dylib.xcframework`
347
+ - `libavutil.59.dylib.xcframework`
348
+ - `liblive666.dylib.xcframework`
349
+ - `libswresample.5.dylib.xcframework`
350
+ - `libswscale.8.dylib.xcframework`
351
+ 3. Run `pod install` (without FLIR_DISABLED)
352
+
353
+ 3. **Choose ONE of these options for iOS permissions:**
354
+
355
+ **Option A: Automatic (Recommended)** - Using React Native Config Plugin
356
+
357
+ Add to your `app.json`:
358
+
359
+ ```json
360
+ {
361
+ "plugins": ["ilabs-flir"]
362
+ }
363
+ ```
364
+
365
+ Then run:
366
+ ```bash
367
+ npx expo prebuild
368
+ ```
369
+
370
+ ✅ All Info.plist entries are **automatically added**!
371
+
372
+ **Option B: Manual Setup** - Add these entries to your `ios/YourApp/Info.plist`:
373
+
374
+ ```xml
375
+ <!-- External Accessory Protocols for FLIR ONE devices -->
376
+ <key>UISupportedExternalAccessoryProtocols</key>
377
+ <array>
378
+ <string>com.flir.rosebud.config</string>
379
+ <string>com.flir.rosebud.frame</string>
380
+ <string>com.flir.rosebud.fileio</string>
381
+ </array>
382
+
383
+ <!-- Bluetooth permissions for FLIR ONE Edge/Pro -->
384
+ <key>NSBluetoothAlwaysUsageDescription</key>
385
+ <string>This app requires Bluetooth to connect to FLIR thermal cameras</string>
386
+
387
+ <key>NSBluetoothPeripheralUsageDescription</key>
388
+ <string>This app uses Bluetooth to communicate with FLIR thermal imaging devices</string>
389
+ ```
390
+
391
+ ## Usage
392
+
393
+ ### Device Discovery
394
+
395
+ ```javascript
396
+ import { NativeModules, NativeEventEmitter } from 'react-native';
397
+
398
+ const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
399
+ const FlirEmitter = new NativeEventEmitter(FlirModule);
400
+
401
+ // Listen for device events
402
+ FlirEmitter.addListener('FlirDeviceConnected', (event) => {
403
+ console.log('FLIR device connected:', event);
404
+ });
405
+
406
+ FlirEmitter.addListener('FlirDeviceDisconnected', (event) => {
407
+ console.log('FLIR device disconnected:', event);
408
+ });
409
+
410
+ // Start discovering FLIR devices
411
+ FlirModule.startDiscovery();
412
+
413
+ // Stop discovery
414
+ FlirModule.stopDiscovery();
415
+ ```
416
+
417
+ ### Camera Connection
418
+
419
+ ```javascript
420
+ // Connect to discovered device
421
+ await FlirModule.connect(identityObject);
422
+
423
+ // Disconnect
424
+ FlirModule.disconnect();
425
+
426
+ // Check connection status
427
+ const isConnected = await FlirModule.isDeviceConnected();
428
+ const deviceInfo = await FlirModule.getConnectedDeviceInfo();
429
+ ```
430
+
431
+ ### Temperature Measurement
432
+
433
+ ```javascript
434
+ // Get temperature at specific point (x, y coordinates)
435
+ const temperature = await FlirModule.getTemperatureAt(100, 200);
436
+ console.log(`Temperature: ${temperature}°C`);
437
+
438
+ // Returns null if no thermal image is available
439
+ if (temperature !== null) {
440
+ console.log(`Detected: ${temperature.toFixed(2)}°C`);
441
+ }
442
+ ```
443
+
444
+ ### Emulator Mode (Development)
445
+
446
+ ```javascript
447
+ // Check if running in emulator mode
448
+ const isEmulator = await FlirModule.isEmulator();
449
+
450
+ // Force start emulator mode (for testing without hardware)
451
+ await FlirModule.startEmulatorMode();
452
+
453
+ // Get device information
454
+ const deviceInfo = await FlirModule.getConnectedDeviceInfo();
455
+ // Returns: "Emulator (FLIR ONE)" or "Physical device (FLIR ONE)"
456
+ ```
457
+
458
+ ## API Reference
459
+
460
+ ### Methods
461
+
462
+ | Method | Parameters | Returns | Description |
463
+ |--------|-----------|---------|-------------|
464
+ | **Device Discovery** |
465
+ | `startDiscovery()` | - | `void` | Start scanning forFLIR devices (USB & Emulator) |
466
+ | `stopDiscovery()` | - | `void` | Stop device discovery |
467
+ | **Connection** |
468
+ | `connect(identity)` | `identity: object` | `Promise<boolean>` | Connect to a discovered FLIR device |
469
+ | `disconnect()` | - | `void` | Disconnect from current device |
470
+ | `isDeviceConnected()` | - | `Promise<boolean>` | Check if a physical device is connected |
471
+ | `getConnectedDeviceInfo()` | - | `Promise<string>` | Get info about connected device |
472
+ | **Temperature** |
473
+ | `getTemperatureAt(x, y)` | `x: number, y: number` | `Promise<number \| null>` | Get temperature at pixel coordinates |
474
+ | **Emulator** |
475
+ | `isEmulator()` | - | `Promise<boolean>` | Check if running in emulator mode |
476
+ | `startEmulatorMode()` | - | `Promise<boolean>` | Force start emulator mode |
477
+
478
+ ### Events
479
+
480
+ Listen to these events using `NativeEventEmitter`:
481
+
482
+ | Event | Payload | Description |
483
+ |-------|---------|-------------|
484
+ | `FlirDeviceConnected` | `{ identity, deviceType, isEmulator }` | Fired when a FLIR device connects |
485
+ | `FlirDeviceDisconnected` | `{ identity, wasEmulator }` | Fired when a device disconnects |
486
+ | `FlirError` | `{ error, type, interface }` | Fired on discovery or connection errors |
487
+
488
+ ### Thermal Image Output
489
+
490
+ FLIR cameras provide two image types:
491
+ - **Thermal Image (MSX)**: Color-mapped thermal data with visual details
492
+ - **Photo Image (DC)**: Standard visible light image
493
+
494
+ **Color Palettes**: The SDK supports multiple palettes:
495
+ - `iron` - Rainbow color map (red=hot, blue=cold) - Default
496
+ - `gray` - Grayscale/black-white temperature map
497
+ - `arctic`, `rainbow`, etc. - Additional palettes
498
+
499
+ > **Note**: Palette switching requires accessing the native ThermalImage API directly. This may be exposed in future versions.
500
+
501
+ ## Detailed Usage Guide
502
+
503
+ ### Complete Setup Example
504
+
505
+ Here's a complete React Native component that demonstrates the full FLIR workflow:
506
+
507
+ ```javascript
508
+ import React, { useEffect, useState } from 'react';
509
+ import {
510
+ View,
511
+ Text,
512
+ Button,
513
+ StyleSheet,
514
+ NativeModules,
515
+ NativeEventEmitter,
516
+ Alert,
517
+ } from 'react-native';
518
+
519
+ const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
520
+ const FlirEmitter = new NativeEventEmitter(FlirModule);
521
+
522
+ const FlirThermalCamera = () => {
523
+ const [isDiscovering, setIsDiscovering] = useState(false);
524
+ const [isConnected, setIsConnected] = useState(false);
525
+ const [deviceInfo, setDeviceInfo] = useState('Not connected');
526
+ const [temperature, setTemperature] = useState(null);
527
+ const [isEmulator, setIsEmulator] = useState(false);
528
+
529
+ useEffect(() => {
530
+ // Set up event listeners
531
+ const deviceConnected = FlirEmitter.addListener(
532
+ 'FlirDeviceConnected',
533
+ (event) => {
534
+ console.log('Device connected:', event);
535
+ setIsConnected(true);
536
+ setIsDiscovering(false);
537
+
538
+ // Get device info after connection
539
+ FlirModule.getConnectedDeviceInfo().then(info => {
540
+ setDeviceInfo(info);
541
+ });
542
+ }
543
+ );
544
+
545
+ const deviceDisconnected = FlirEmitter.addListener(
546
+ 'FlirDeviceDisconnected',
547
+ (event) => {
548
+ console.log('Device disconnected:', event);
549
+ setIsConnected(false);
550
+ setDeviceInfo('Not connected');
551
+ setTemperature(null);
552
+ }
553
+ );
554
+
555
+ const deviceError = FlirEmitter.addListener(
556
+ 'FlirError',
557
+ (event) => {
558
+ console.error('FLIR Error:', event);
559
+ Alert.alert('FLIR Error', event.error || 'Unknown error');
560
+ }
561
+ );
562
+
563
+ // Check if we're in emulator mode
564
+ FlirModule.isEmulator().then(setIsEmulator);
565
+
566
+ // Cleanup listeners on unmount
567
+ return () => {
568
+ deviceConnected.remove();
569
+ deviceDisconnected.remove();
570
+ deviceError.remove();
571
+
572
+ // Disconnect on unmount
573
+ if (isConnected) {
574
+ FlirModule.disconnect();
575
+ }
576
+ };
577
+ }, []);
578
+
579
+ const handleStartDiscovery = () => {
580
+ setIsDiscovering(true);
581
+ FlirModule.startDiscovery();
582
+ };
583
+
584
+ const handleStopDiscovery = () => {
585
+ setIsDiscovering(false);
586
+ FlirModule.stopDiscovery();
587
+ };
588
+
589
+ const handleDisconnect = () => {
590
+ FlirModule.disconnect();
591
+ };
592
+
593
+ const handleStartEmulator = async () => {
594
+ try {
595
+ await FlirModule.startEmulatorMode();
596
+ Alert.alert('Success', 'Emulator mode started');
597
+ } catch (error) {
598
+ Alert.alert('Error', 'Failed to start emulator mode');
599
+ }
600
+ };
601
+
602
+ const handleGetTemperature = async () => {
603
+ try {
604
+ // Get temperature at center of image (adjust coordinates as needed)
605
+ const temp = await FlirModule.getTemperatureAt(160, 120);
606
+
607
+ if (temp !== null) {
608
+ setTemperature(temp);
609
+ } else {
610
+ Alert.alert('Info', 'No thermal data available');
611
+ }
612
+ } catch (error) {
613
+ Alert.alert('Error', 'Failed to get temperature');
614
+ }
615
+ };
616
+
617
+ return (
618
+ <View style={styles.container}>
619
+ <Text style={styles.title}>FLIR Thermal Camera</Text>
620
+
621
+ <View style={styles.statusContainer}>
622
+ <Text style={styles.statusLabel}>Status:</Text>
623
+ <Text style={styles.statusValue}>
624
+ {isConnected ? 'Connected' : isDiscovering ? 'Discovering...' : 'Disconnected'}
625
+ </Text>
626
+ </View>
627
+
628
+ <View style={styles.statusContainer}>
629
+ <Text style={styles.statusLabel}>Device:</Text>
630
+ <Text style={styles.statusValue}>{deviceInfo}</Text>
631
+ </View>
632
+
633
+ {temperature !== null && (
634
+ <View style={styles.statusContainer}>
635
+ <Text style={styles.statusLabel}>Temperature:</Text>
636
+ <Text style={styles.tempValue}>{temperature.toFixed(2)}°C</Text>
637
+ </View>
638
+ )}
639
+
640
+ <View style={styles.buttonContainer}>
641
+ {!isConnected ? (
642
+ <>
643
+ <Button
644
+ title={isDiscovering ? 'Stop Discovery' : 'Start Discovery'}
645
+ onPress={isDiscovering ? handleStopDiscovery : handleStartDiscovery}
646
+ />
647
+ <Button
648
+ title="Start Emulator"
649
+ onPress={handleStartEmulator}
650
+ />
651
+ </>
652
+ ) : (
653
+ <>
654
+ <Button
655
+ title="Get Temperature"
656
+ onPress={handleGetTemperature}
657
+ />
658
+ <Button
659
+ title="Disconnect"
660
+ onPress={handleDisconnect}
661
+ color="#d9534f"
662
+ />
663
+ </>
664
+ )}
665
+ </View>
666
+
667
+ {isEmulator && (
668
+ <Text style={styles.emulatorNote}>
669
+ ℹ️ Running in emulator mode
670
+ </Text>
671
+ )}
672
+ </View>
673
+ );
674
+ };
675
+
676
+ const styles = StyleSheet.create({
677
+ container: {
678
+ flex: 1,
679
+ padding: 20,
680
+ backgroundColor: '#fff',
681
+ },
682
+ title: {
683
+ fontSize: 24,
684
+ fontWeight: 'bold',
685
+ marginBottom: 20,
686
+ },
687
+ statusContainer: {
688
+ flexDirection: 'row',
689
+ marginBottom: 10,
690
+ },
691
+ statusLabel: {
692
+ fontWeight: 'bold',
693
+ width: 100,
694
+ },
695
+ statusValue: {
696
+ flex: 1,
697
+ },
698
+ tempValue: {
699
+ flex: 1,
700
+ fontSize: 18,
701
+ fontWeight: 'bold',
702
+ color: '#f44336',
703
+ },
704
+ buttonContainer: {
705
+ marginTop: 20,
706
+ gap: 10,
707
+ },
708
+ emulatorNote: {
709
+ marginTop: 20,
710
+ fontStyle: 'italic',
711
+ color: '#666',
712
+ },
713
+ });
714
+
715
+ export default FlirThermalCamera;
716
+ ```
717
+
718
+ ### Step-by-Step Workflow
719
+
720
+ #### 1. Initialize Event Listeners
721
+
722
+ Always set up event listeners before starting discovery:
723
+
724
+ ```javascript
725
+ import { NativeModules, NativeEventEmitter } from 'react-native';
726
+
727
+ const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
728
+ const FlirEmitter = new NativeEventEmitter(FlirModule);
729
+
730
+ // Listen for device connection
731
+ FlirEmitter.addListener('FlirDeviceConnected', (event) => {
732
+ console.log('Connected:', event);
733
+ // event.identity - Device identity object
734
+ // event.deviceType - "device" or "emulator"
735
+ // event.isEmulator - boolean
736
+ });
737
+
738
+ // Listen for disconnection
739
+ FlirEmitter.addListener('FlirDeviceDisconnected', (event) => {
740
+ console.log('Disconnected:', event);
741
+ });
742
+
743
+ // Listen for errors
744
+ FlirEmitter.addListener('FlirError', (event) => {
745
+ console.error('Error:', event.error);
746
+ // event.type - "discovery" or "connection"
747
+ // event.interface - Communication interface
748
+ });
749
+ ```
750
+
751
+ #### 2. Start Device Discovery
752
+
753
+ ```javascript
754
+ // Start scanning for FLIR devices
755
+ FlirModule.startDiscovery();
756
+
757
+ // Discovery will automatically emit events when devices are found
758
+ // On Android: Scans for USB devices and emulators
759
+ // On iOS: Scans for Lightning, BLE, and emulator devices
760
+ ```
761
+
762
+ #### 3. Handle Device Connection
763
+
764
+ Devices connect automatically when discovered. You'll receive a `FlirDeviceConnected` event:
765
+
766
+ ```javascript
767
+ FlirEmitter.addListener('FlirDeviceConnected', async (event) => {
768
+ // Device is now connected
769
+ console.log('Device ID:', event.identity.deviceId);
770
+ console.log('Is Emulator:', event.isEmulator);
771
+
772
+ // Get additional device information
773
+ const info = await FlirModule.getConnectedDeviceInfo();
774
+ console.log('Device Info:', info);
775
+
776
+ // Check connection status
777
+ const connected = await FlirModule.isDeviceConnected();
778
+ console.log('Is Connected:', connected);
779
+ });
780
+ ```
781
+
782
+ #### 4. Measure Temperature
783
+
784
+ Once connected, you can measure temperature at any point:
785
+
786
+ ```javascript
787
+ // Get temperature at pixel coordinates (x, y)
788
+ const temp = await FlirModule.getTemperatureAt(160, 120);
789
+
790
+ if (temp !== null) {
791
+ console.log(`Temperature: ${temp.toFixed(2)}°C`);
792
+ } else {
793
+ console.log('No thermal data available');
794
+ }
795
+ ```
796
+
797
+ **Important Notes**:
798
+ - Coordinates are in pixels relative to the thermal image
799
+ - Returns `null` if no thermal image is available
800
+ - Temperature is in Celsius
801
+ - For FLIR ONE: Thermal image is typically 160×120 pixels
802
+ - For other cameras: Check device specifications
803
+
804
+ #### 5. Disconnect
805
+
806
+ ```javascript
807
+ // Disconnect from current device
808
+ FlirModule.disconnect();
809
+
810
+ // This will trigger a FlirDeviceDisconnected event
811
+ ```
812
+
813
+ #### 6. Stop Discovery
814
+
815
+ ```javascript
816
+ // Stop scanning for devices
817
+ FlirModule.stopDiscovery();
818
+ ```
819
+
820
+ ### Development Without Hardware (Emulator Mode)
821
+
822
+ You can test your app without a physical FLIR device:
823
+
824
+ ```javascript
825
+ // Check if already in emulator mode
826
+ const isEmu = await FlirModule.isEmulator();
827
+
828
+ if (!isEmu) {
829
+ // Force start emulator mode
830
+ await FlirModule.startEmulatorMode();
831
+ }
832
+
833
+ // Emulator will provide simulated thermal data
834
+ // All APIs work the same as with real hardware
835
+ ```
836
+
837
+ ### Best Practices
838
+
839
+ #### 1. Always Clean Up Listeners
840
+
841
+ ```javascript
842
+ useEffect(() => {
843
+ const listeners = [
844
+ FlirEmitter.addListener('FlirDeviceConnected', handleConnect),
845
+ FlirEmitter.addListener('FlirDeviceDisconnected', handleDisconnect),
846
+ FlirEmitter.addListener('FlirError', handleError),
847
+ ];
848
+
849
+ return () => {
850
+ // Remove all listeners on unmount
851
+ listeners.forEach(listener => listener.remove());
852
+
853
+ // Disconnect device
854
+ FlirModule.disconnect();
855
+ };
856
+ }, []);
857
+ ```
858
+
859
+ #### 2. Handle Connection State
860
+
861
+ ```javascript
862
+ const [connectionState, setConnectionState] = useState('disconnected');
863
+ // States: 'disconnected', 'discovering', 'connected'
864
+
865
+ const handleStartDiscovery = () => {
866
+ setConnectionState('discovering');
867
+ FlirModule.startDiscovery();
868
+ };
869
+
870
+ FlirEmitter.addListener('FlirDeviceConnected', () => {
871
+ setConnectionState('connected');
872
+ });
873
+
874
+ FlirEmitter.addListener('FlirDeviceDisconnected', () => {
875
+ setConnectionState('disconnected');
876
+ });
877
+ ```
878
+
879
+ #### 3. Error Handling
880
+
881
+ ```javascript
882
+ try {
883
+ const temp = await FlirModule.getTemperatureAt(x, y);
884
+
885
+ if (temp === null) {
886
+ // No thermal data (device not streaming yet)
887
+ console.log('Waiting for thermal data...');
888
+ } else {
889
+ // Valid temperature
890
+ setTemperature(temp);
891
+ }
892
+ } catch (error) {
893
+ console.error('Temperature measurement failed:', error);
894
+ }
895
+ ```
896
+
897
+ #### 4. Temperature Sampling Rate
898
+
899
+ Avoid calling `getTemperatureAt` too frequently:
900
+
901
+ ```javascript
902
+ // ❌ Bad: Calling too frequently
903
+ setInterval(() => {
904
+ FlirModule.getTemperatureAt(x, y);
905
+ }, 16); // 60 FPS - too fast!
906
+
907
+ // Good: Reasonable sampling rate
908
+ setInterval(async () => {
909
+ const temp = await FlirModule.getTemperatureAt(x, y);
910
+ if (temp !== null) {
911
+ setTemperature(temp);
912
+ }
913
+ }, 500); // 2 Hz - good for most applications
914
+ ```
915
+
916
+ ### Common Use Cases
917
+
918
+ #### Use Case 1: Continuous Temperature Monitoring
919
+
920
+ ```javascript
921
+ const [centerTemp, setCenterTemp] = useState(null);
922
+
923
+ useEffect(() => {
924
+ if (!isConnected) return;
925
+
926
+ // Poll temperature every 500ms
927
+ const interval = setInterval(async () => {
928
+ const temp = await FlirModule.getTemperatureAt(160, 120);
929
+ if (temp !== null) {
930
+ setCenterTemp(temp);
931
+ }
932
+ }, 500);
933
+
934
+ return () => clearInterval(interval);
935
+ }, [isConnected]);
936
+ ```
937
+
938
+ #### Use Case 2: Multi-Point Temperature Measurement
939
+
940
+ ```javascript
941
+ const measureMultiplePoints = async () => {
942
+ const points = [
943
+ { x: 80, y: 60, name: 'Top Left' },
944
+ { x: 240, y: 60, name: 'Top Right' },
945
+ { x: 160, y: 120, name: 'Center' },
946
+ ];
947
+
948
+ const results = await Promise.all(
949
+ points.map(async (point) => {
950
+ const temp = await FlirModule.getTemperatureAt(point.x, point.y);
951
+ return { ...point, temperature: temp };
952
+ })
953
+ );
954
+
955
+ console.log('Temperature readings:', results);
956
+ return results;
957
+ };
958
+ ```
959
+
960
+ #### Use Case 3: Auto-Connect on App Start
961
+
962
+ ```javascript
963
+ useEffect(() => {
964
+ // Auto-start discovery when app loads
965
+ FlirModule.startDiscovery();
966
+
967
+ // Or use emulator if no device available
968
+ setTimeout(async () => {
969
+ const connected = await FlirModule.isDeviceConnected();
970
+ if (!connected) {
971
+ console.log('No device found, starting emulator');
972
+ await FlirModule.startEmulatorMode();
973
+ }
974
+ }, 5000); // Wait 5 seconds for device
975
+
976
+ return () => {
977
+ FlirModule.stopDiscovery();
978
+ FlirModule.disconnect();
979
+ };
980
+ }, []);
981
+ ```
982
+
983
+ ### Troubleshooting
984
+
985
+ #### Problem: "No devices found"
986
+
987
+ **Android**:
988
+ - Ensure USB debugging is enabled
989
+ - Check USB cable is data-capable (not charge-only)
990
+ - Grant USB permissions when prompted
991
+ - Try unplugging and replugging the FLIR device
992
+
993
+ **iOS**:
994
+ - Ensure Lightning connector is clean
995
+ - Check Info.plist has External Accessory protocols
996
+ - For BLE devices: Enable Bluetooth and grant permissions
997
+ - Try force-quitting and restarting the app
998
+
999
+ #### Problem: "Permission denied"
1000
+
1001
+ **Android**:
1002
+ ```xml
1003
+ <!-- Ensure these are in AndroidManifest.xml (auto-added by library) -->
1004
+ <uses-feature android:name="android.hardware.usb.host" />
1005
+ <uses-permission android:name="android.permission.CAMERA"/>
1006
+ ```
1007
+
1008
+ **iOS**:
1009
+ ```xml
1010
+ <!-- Ensure these are in Info.plist -->
1011
+ <key>NSBluetoothAlwaysUsageDescription</key>
1012
+ <string>Required for FLIR cameras</string>
1013
+ ```
1014
+
1015
+ #### Problem: "Temperature returns null"
1016
+
1017
+ ```javascript
1018
+ // Wait for device to start streaming
1019
+ FlirEmitter.addListener('FlirDeviceConnected', async (event) => {
1020
+ // Wait a moment for streaming to start
1021
+ setTimeout(async () => {
1022
+ const temp = await FlirModule.getTemperatureAt(160, 120);
1023
+ console.log('Temperature:', temp);
1024
+ }, 1000);
1025
+ });
1026
+ ```
1027
+
1028
+ #### Problem: "App crashes on disconnect"
1029
+
1030
+ ```javascript
1031
+ // Always check connection before API calls
1032
+ const getTemperatureSafely = async (x, y) => {
1033
+ const connected = await FlirModule.isDeviceConnected();
1034
+
1035
+ if (!connected) {
1036
+ console.log('Device not connected');
1037
+ return null;
1038
+ }
1039
+
1040
+ return await FlirModule.getTemperatureAt(x, y);
1041
+ };
1042
+ ```
1043
+
1044
+ #### Problem: "Events not firing"
1045
+
1046
+ ```javascript
1047
+ // Ensure NativeEventEmitter is created with the module
1048
+ const FlirModule = NativeModules.FlirIOS || NativeModules.FlirAndroid;
1049
+ const FlirEmitter = new NativeEventEmitter(FlirModule); // ✅ Pass module
1050
+
1051
+ // Wrong:
1052
+ const FlirEmitter = new NativeEventEmitter(); // No events will fire!
1053
+ ```
1054
+
1055
+ ### Platform-Specific Notes
1056
+
1057
+ #### Android
1058
+ - Supports USB FLIR ONE cameras
1059
+ - Supports network-based FLIR cameras (ACE series)
1060
+ - Requires physical device (emulator for development only)
1061
+ - USB permissions handled automatically via `UsbPermissionHandler`
1062
+
1063
+ #### iOS
1064
+ - Supports Lightning interface (FLIR ONE Classic)
1065
+ - Supports Bluetooth LE (FLIR ONE Edge/Pro)
1066
+ - Works on both device and simulator (with emulator mode)
1067
+ - Requires Info.plist entries (auto-added via config plugin)
1068
+
1069
+ ### Performance Tips
1070
+
1071
+ 1. **Limit temperature polling frequency**: 1-2 Hz is sufficient for most apps
1072
+ 2. **Disconnect when not in use**: Save battery by disconnecting in background
1073
+ 3. **Use emulator for UI development**: Build UI without physical hardware
1074
+ 4. **Cache device info**: Don't call `getConnectedDeviceInfo()` repeatedly
1075
+
1076
+ ## Publishing to JitPack
1077
+
1078
+ To publish a new version to JitPack:
1079
+
1080
+ 1. Commit all your changes:
1081
+ ```bash
1082
+ git add .
1083
+ git commit -m "Release version 1.0.0"
1084
+ ```
1085
+
1086
+ 2. Create a git tag:
1087
+ ```bash
1088
+ git tag 1.0.0
1089
+ git push origin 1.0.0
1090
+ ```
1091
+
1092
+ 3. JitPack will automatically build your library when someone requests it for the first time.
1093
+
1094
+ ### JitPack / CI notes for local AAR dependencies
1095
+
1096
+ If your module includes local AARs (for example the FLIR SDK binaries under `android/Flir/libs/`), CI environments such as JitPack will not automatically resolve file-based dependencies. To publish or build on JitPack you must ensure those AARs are available to the build system.
1097
+
1098
+ Two options:
1099
+ - Publish the AARs to a repository (mavenLocal or a remote Maven repo) before building the module.
1100
+ - Bundle the AARs into the final AAR using a "fat-AAR" approach.
1101
+
1102
+ The repository is configured to publish the FLIR SDK AARs into `mavenLocal` during the JitPack build (see `jitpack.yml`). That lets the `Flir` module resolve them by coordinates (`com.flir:thermalsdk:1.0.0` and `com.flir:androidsdk:1.0.0`) and prevents missing-class failures when JitPack builds the library.
1103
+
1104
+ ### SLF4J duplicate-class conflict
1105
+
1106
+ If you see build errors about duplicate classes in `org.slf4j.*` (for example `Duplicate class org.slf4j.Logger`), this happens when:
1107
+
1108
+ - The vendor AAR (androidsdk/thermalsdk) embeds SLF4J classes inside the AAR's classes.jar;
1109
+ - And your project or another dependency brings `org.slf4j:slf4j-api:...` as a separate jar. Gradle fails because the same classes exist twice.
1110
+
1111
+ Two ways to resolve this without editing the vendor AAR:
1112
+
1113
+ 1) Exclude SLF4J API from your build (preferred when vendor AAR bundles SLF4J classes):
1114
+
1115
+ In your module's build.gradle.kts (or in the consuming app), add:
1116
+
1117
+ ```kotlin
1118
+ configurations.all {
1119
+ exclude(group = "org.slf4j", module = "slf4j-api")
1120
+ }
1121
+ ```
1122
+
1123
+ This prevents Gradle from pulling `slf4j-api` into the classpath and avoids duplicates.
1124
+
1125
+ 2) Provide a single canonical SLF4J provider at runtime (if your app needs the slf4j API):
1126
+
1127
+ Add a single SLF4J implementation/binding (for example `org.slf4j:slf4j-android` or an appropriate binding) and ensure other copies are excluded.
1128
+
1129
+ Notes:
1130
+ - We updated the Flir module to exclude `org.slf4j:slf4j-api` so it will not bring the API transitively. If you're still seeing duplicates in your app, check other dependencies and exclude slf4j there or use option 1.
1131
+ - If you want me to, I can help you create a more robust fix (publishing Android AAR wrappers without embedded SLF4J or shading/relocating SLF4J) depending on your distribution needs.
1132
+
1133
+ 4. Check build status at: `https://jitpack.io/#PraveenOjha/Flir`
1134
+
1135
+ ### Notes for CI / JitPack
1136
+
1137
+ If the Android build succeeds locally but fails on JitPack/CI with an error like:
1138
+
1139
+ ```
1140
+ Error: Unable to access jarfile /home/jitpack/build/gradle/wrapper/gradle-wrapper.jar
1141
+ ```
1142
+
1143
+ this typically means the Gradle wrapper files are missing from the published repository. JitPack runs builds in a clean VM and expects the wrapper files to be present in the repo. To make the build reproducible on JitPack, ensure you commit the following files:
1144
+
1145
+ - `gradle/wrapper/gradle-wrapper.jar`
1146
+ - `gradle/wrapper/gradle-wrapper.properties`
1147
+ - `gradlew` (ensure executable bit is set)
1148
+ - `gradlew.bat`
1149
+
1150
+ After committing those files, trigger a new JitPack build (or push a new tag). Avoid committing `local.properties` — it contains developer-specific SDK paths and will break CI if present.
1151
+
1152
+ ## Publishing to CocoaPods
1153
+
1154
+ To publish to CocoaPods Trunk:
1155
+
1156
+ 1. Register your CocoaPods account (first time only):
1157
+ ```bash
1158
+ pod trunk register your-email@example.com 'Your Name'
1159
+ ```
1160
+
1161
+ 2. Validate your podspec (run from repository root):
1162
+ ```bash
1163
+ pod spec lint ios/flir/Flir.podspec --allow-warnings
1164
+ ```
1165
+
1166
+ 3. Push to CocoaPods (run from repository root):
1167
+ ```bash
1168
+ pod trunk push ios/flir/Flir.podspec --allow-warnings
1169
+ ```
1170
+
1171
+ 4. Verify publication:
1172
+ ```bash
1173
+ pod search Flir
1174
+ ```
1175
+
1176
+ **Note:** The `--allow-warnings` flag may be needed for vendored frameworks.
1177
+
1178
+ ## Development
1179
+
1180
+ ### Building Locally
1181
+
1182
+ #### Android
1183
+
1184
+ ```bash
1185
+ cd android
1186
+ ./gradlew build
1187
+ ```
1188
+
1189
+ #### iOS
1190
+
1191
+ ```bash
1192
+ cd ios/flir
1193
+ pod install
1194
+ xcodebuild -workspace Flir.xcworkspace -scheme Flir -configuration Release
1195
+ ```
1196
+
1197
+ ### Testing
1198
+
1199
+ ```bash
1200
+ npm test
1201
+ ```
1202
+
1203
+ ## Emulator Mode
1204
+
1205
+ This wrapper supports emulator mode for development and testing without requiring a physical FLIR device.
1206
+
1207
+ ### Features
1208
+
1209
+ - **Device Detection**: Automatically detect if running on an emulator
1210
+ - **Fallback Mode**: Use FLIR's built-in emulator when no physical device is available
1211
+ - **Consistent API**: Same API calls work for both emulator and physical devices
1212
+
1213
+ ### Usage
1214
+
1215
+ ```javascript
1216
+ import FlirModule from 'react-native-flir';
1217
+
1218
+ // Check if running in emulator mode
1219
+ const isEmulator = await FlirModule.isEmulator();
1220
+ console.log('Running in emulator:', isEmulator);
1221
+
1222
+ // Check if a physical device is connected
1223
+ const isDeviceConnected = await FlirModule.isDeviceConnected();
1224
+ console.log('Physical device connected:', isDeviceConnected);
1225
+
1226
+ // Get device information
1227
+ const deviceInfo = await FlirModule.getConnectedDeviceInfo();
1228
+ console.log('Device info:', deviceInfo);
1229
+
1230
+ // Force start emulator mode (useful for testing)
1231
+ await FlirModule.startEmulatorMode();
1232
+ ```
1233
+
1234
+ ### Emulator Features
1235
+
1236
+ - **Simulated Thermal Data**: Provides mock thermal imaging data
1237
+ - **Temperature Readings**: Returns simulated temperature values
1238
+ - **Device Events**: Emits connection/disconnection events like physical devices
1239
+ - **Testing Environment**: Perfect for CI/CD and development without hardware
1240
+
1241
+ ### Android Emulator Detection
1242
+
1243
+ The Android implementation detects emulators by checking:
1244
+ - Build properties (`ro.build.fingerprint`, `ro.kernel.qemu`)
1245
+ - Hardware characteristics
1246
+ - Build model and manufacturer
1247
+
1248
+ ### iOS Simulator Detection
1249
+
1250
+ The iOS implementation uses:
1251
+ - FLIR SDK's built-in emulator interface
1252
+ - Runtime environment detection
1253
+ - Simulator-specific device identifiers
1254
+
1255
+ ## Requirements
1256
+
1257
+ ### Android
1258
+ - Android SDK 24+
1259
+ - Kotlin 1.9.0+
1260
+ - Gradle 8.1.0+
1261
+ - Java 21
1262
+
1263
+ ### iOS
1264
+ - iOS 13.0+
1265
+ - Xcode 14+
1266
+ - CocoaPods 1.10+
1267
+
1268
+ ## FLIR SDK Licensing
1269
+
1270
+ This React Native wrapper is provided under the MIT license, but the FLIR thermal imaging SDKs have their own licensing requirements:
1271
+
1272
+ 1. **Commercial Use**: Requires a commercial license from FLIR
1273
+ 2. **Development License**: Required even for development and testing
1274
+ 3. **Distribution**: You cannot distribute FLIR SDK libraries without proper licensing
1275
+
1276
+ **Important**: The FLIR SDK libraries included in this repository are placeholders. You must:
1277
+ - Register at [FLIR Developer Portal](https://www.flir.com/developer/mobile-sdk/)
1278
+ - Download your licensed SDK versions
1279
+ - Replace the placeholder files with your licensed libraries
1280
+
1281
+ ## License
1282
+
1283
+ **Wrapper Code**: MIT License (this React Native wrapper)
1284
+ **FLIR SDK**: Proprietary license from FLIR Systems (see FLIR developer portal)
1285
+
1286
+ By using this wrapper, you agree to comply with FLIR's licensing terms and conditions. License - see LICENSE file for details
1287
+
1288
+ ### Disclaimer
1289
+
1290
+ Flir SDKs may not be used to create apps intended for medical or health purposes; please refer to the SDK license agreement for more detailed information.
1291
+
1292
+ ## Contributing
1293
+
1294
+ Contributions are welcome! Please feel free to submit a Pull Request.
1295
+
1296
+ ## Support
1297
+
1298
+ For issues and questions:
1299
+ - 🐛 [Report a bug](https://github.com/PraveenOjha/Flir/issues)
1300
+ - 💡 [Request a feature](https://github.com/PraveenOjha/Flir/issues)
1301
+ - 📖 [Documentation](https://github.com/PraveenOjha/Flir/wiki)
1302
+
1303
+ ## Credits
1304
+
1305
+ Built with the FLIR Thermal SDK
1306
+
1307
+ ---
1308
+
1309
+ Made with ❤️ by [Praveen Ojha](https://github.com/PraveenOjha)