@mentra/bluetooth-sdk 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +278 -0
- package/android/build.gradle +167 -0
- package/android/lc3Lib/CMakeLists.txt +6 -0
- package/android/lc3Lib/build.gradle +109 -0
- package/android/lc3Lib/proguard-rules.pro +33 -0
- package/android/lc3Lib/src/main/AndroidManifest.xml +2 -0
- package/android/lc3Lib/src/main/cpp/CMakeLists.txt +8 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/CMakeLists.txt +30 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/jni/CMakeLists.txt +7 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/jni/ogg_opus_encoder.cc +96 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/jni/ogg_opus_encoder.h +53 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libogg/Makefile.am +6 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libogg/config_types.h +26 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libogg/config_types.h.in +26 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libogg/ogg.h +209 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libogg/os_types.h +158 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libopus/opus.h +981 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libopus/opus_custom.h +342 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libopus/opus_defines.h +799 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libopus/opus_multistream.h +660 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libopus/opus_projection.h +568 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/libopus/opus_types.h +166 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/ogg_opus_encoder.cc +268 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/ogg_opus_encoder.h +115 -0
- package/android/lc3Lib/src/main/cpp/google_opus_stuff/opus_tools/opus_header.h +59 -0
- package/android/lc3Lib/src/main/cpp/liblc3/CMakeLists.txt +38 -0
- package/android/lc3Lib/src/main/cpp/liblc3/include/lc3.h +309 -0
- package/android/lc3Lib/src/main/cpp/liblc3/include/lc3_private.h +162 -0
- package/android/lc3Lib/src/main/cpp/liblc3/include/rnnoise.h +114 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/CMakeLists.txt +19 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/attdet.c +92 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/attdet.h +44 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/bits.c +375 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/bits.h +315 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/bwdet.c +129 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/bwdet.h +69 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/common.h +148 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/energy.c +70 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/energy.h +43 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/fastmath.h +158 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/lc3.c +702 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/ltpf.c +893 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/ltpf.h +111 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/ltpf_arm.h +506 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/ltpf_neon.h +281 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/makefile.mk +35 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/mdct.c +452 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/mdct.h +57 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/mdct_neon.h +296 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/meson.build +46 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/plc.c +61 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/plc.h +57 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/sns.c +880 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/sns.h +103 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/spec.c +904 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/spec.h +119 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/tables.c +3457 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/tables.h +94 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/tns.c +457 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3/tns.h +99 -0
- package/android/lc3Lib/src/main/cpp/liblc3/liblc3.cpp +159 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/_kiss_fft_guts.h +182 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/arch.h +261 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/celt_lpc.c +279 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/celt_lpc.h +59 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/common.h +48 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/compile.sh +3 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/denoise.c +646 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/kiss_fft.c +601 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/kiss_fft.h +203 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/opus_types.h +159 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/pitch.c +526 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/pitch.h +149 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn.c +178 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn.h +69 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_data.c +11051 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_data.h +34 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_reader.c +168 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/rnn_train.py +66 -0
- package/android/lc3Lib/src/main/cpp/liblc3/rnnoise/tansig_table.h +45 -0
- package/android/lc3Lib/src/main/java/com/mentra/lc3Lib/Lc3Cpp.java +38 -0
- package/android/lc3Lib/third_party/CMakeLists.txt +23 -0
- package/android/lc3Lib/third_party/CMakeLists_libogg.txt +18 -0
- package/android/lc3Lib/third_party/CMakeLists_libopus.txt +18 -0
- package/android/lc3Lib/third_party/CMakeLists_opus-tools.txt +23 -0
- package/android/lc3Lib/third_party/opus_tools/src/AUTHORS +5 -0
- package/android/lc3Lib/third_party/opus_tools/src/CMakeLists.txt +4 -0
- package/android/lc3Lib/third_party/opus_tools/src/COPYING +371 -0
- package/android/lc3Lib/third_party/opus_tools/src/ChangeLog +3 -0
- package/android/lc3Lib/third_party/opus_tools/src/Makefile.am +42 -0
- package/android/lc3Lib/third_party/opus_tools/src/Makefile.unix +23 -0
- package/android/lc3Lib/third_party/opus_tools/src/NEWS +0 -0
- package/android/lc3Lib/third_party/opus_tools/src/README +0 -0
- package/android/lc3Lib/third_party/opus_tools/src/autogen.sh +115 -0
- package/android/lc3Lib/third_party/opus_tools/src/configure.ac +293 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/arch.h +239 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/audio-in.c +1046 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/diag_range.c +245 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/diag_range.h +28 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/info_opus.c +320 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/info_opus.h +51 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/lpc.c +157 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/lpc.h +27 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/opus_header.c +286 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/opus_header.h +59 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/opusdec.c +884 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/opusenc.c +1021 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/opusenc.h +101 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/opusinfo.c +639 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/opusinfo.h +51 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/os_support.h +167 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/resample.c +1137 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/speex_resampler.h +344 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/stack_alloc.h +115 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/wav_io.c +125 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/wav_io.h +62 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/wave_out.c +223 -0
- package/android/lc3Lib/third_party/opus_tools/src/src/wave_out.h +60 -0
- package/android/settings.gradle +1 -0
- package/android/src/main/AndroidManifest.xml +40 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt +528 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/Bridge.kt +610 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/DeviceManager.kt +1616 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/DeviceStore.kt +314 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/MentraBluetoothModels.kt +1710 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/MentraBluetoothSdk.kt +554 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/ObservableStore.kt +68 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/controllers/ControllerManager.kt +158 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/controllers/R1.kt +934 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/services/Foreground.kt +175 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/services/PhoneMic.kt +1109 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/G1.java +3974 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/G2.kt +3551 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/Mach1.java +1327 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/MentraLive.java +6959 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/MentraNex.kt +1655 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/MentraosBle.java +53675 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/SGCManager.kt +202 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/Simulated.kt +224 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/stt/STTTools.kt +340 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/stt/SherpaOnnxTranscriber.kt +465 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/stt/VadGateSpeechPolicy.kt +221 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/AES.java +106 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/AudioSessionMonitor.kt +189 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/BitmapJavaUtils.java +169 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/BlePhotoUploadService.java +179 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/Constants.kt +44 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/G1Text.kt +436 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/IncidentLogBleRelayNaming.java +29 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/IncidentLogBleUploadService.java +76 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/K900ProtocolUtils.java +791 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/MessageChunker.java +186 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/NexSGCUtils.kt +589 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/PhoneAudioMonitor.kt +303 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/SmartGlassesConnectionState.java +9 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/audio/ByteUtilAudioPlayer.java +655 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/audio/Lc3Player.java +441 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/audio/PCMAudioPlayer.java +431 -0
- package/android/src/main/res/values/strings.xml +4 -0
- package/app.plugin.js +1 -0
- package/build/BluetoothSdk.types.d.ts +498 -0
- package/build/BluetoothSdk.types.d.ts.map +1 -0
- package/build/BluetoothSdk.types.js +23 -0
- package/build/BluetoothSdk.types.js.map +1 -0
- package/build/BluetoothSdkModule.d.ts +71 -0
- package/build/BluetoothSdkModule.d.ts.map +1 -0
- package/build/BluetoothSdkModule.js +106 -0
- package/build/BluetoothSdkModule.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +5 -0
- package/build/index.js.map +1 -0
- package/expo-module.config.json +9 -0
- package/ios/BluetoothSdkModule.swift +665 -0
- package/ios/MentraBluetoothSDK.podspec +77 -0
- package/ios/Packages/CoreObjC/CoreObjC.xcodeproj/project.pbxproj +213 -0
- package/ios/Packages/CoreObjC/PcmConverter.h +22 -0
- package/ios/Packages/CoreObjC/PcmConverter.m +266 -0
- package/ios/Packages/CoreObjC/attdet.c +92 -0
- package/ios/Packages/CoreObjC/attdet.h +44 -0
- package/ios/Packages/CoreObjC/bits.c +375 -0
- package/ios/Packages/CoreObjC/bits.h +315 -0
- package/ios/Packages/CoreObjC/bwdet.c +129 -0
- package/ios/Packages/CoreObjC/bwdet.h +69 -0
- package/ios/Packages/CoreObjC/common.h +151 -0
- package/ios/Packages/CoreObjC/energy.c +70 -0
- package/ios/Packages/CoreObjC/energy.h +43 -0
- package/ios/Packages/CoreObjC/fastmath.h +158 -0
- package/ios/Packages/CoreObjC/lc3.c +704 -0
- package/ios/Packages/CoreObjC/lc3.h +313 -0
- package/ios/Packages/CoreObjC/lc3_cpp.h +283 -0
- package/ios/Packages/CoreObjC/lc3_private.h +163 -0
- package/ios/Packages/CoreObjC/ltpf.c +905 -0
- package/ios/Packages/CoreObjC/ltpf.h +111 -0
- package/ios/Packages/CoreObjC/ltpf_arm.h +506 -0
- package/ios/Packages/CoreObjC/ltpf_neon.h +281 -0
- package/ios/Packages/CoreObjC/makefile.mk +35 -0
- package/ios/Packages/CoreObjC/mdct.c +469 -0
- package/ios/Packages/CoreObjC/mdct.h +57 -0
- package/ios/Packages/CoreObjC/mdct_neon.h +296 -0
- package/ios/Packages/CoreObjC/meson.build +61 -0
- package/ios/Packages/CoreObjC/plc.c +61 -0
- package/ios/Packages/CoreObjC/plc.h +57 -0
- package/ios/Packages/CoreObjC/rnnoise.h +114 -0
- package/ios/Packages/CoreObjC/sns.c +880 -0
- package/ios/Packages/CoreObjC/sns.h +103 -0
- package/ios/Packages/CoreObjC/spec.c +907 -0
- package/ios/Packages/CoreObjC/spec.h +119 -0
- package/ios/Packages/CoreObjC/tables.c +3457 -0
- package/ios/Packages/CoreObjC/tables.h +94 -0
- package/ios/Packages/CoreObjC/tns.c +457 -0
- package/ios/Packages/CoreObjC/tns.h +99 -0
- package/ios/Packages/SherpaOnnx/Model/joiner.onnx +0 -0
- package/ios/Packages/SherpaOnnx/Model/tokens.txt +502 -0
- package/ios/Packages/SherpaOnnx/SherpaOnnx.swift +1659 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/Headers/cargs.h +162 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/Headers/sherpa-onnx/c-api/c-api.h +1852 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/Headers/sherpa-onnx/c-api/cxx-api.h +674 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/Info.plist +44 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/ios-arm64/libsherpa-onnx.a +0 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/ios-arm64/sherpa-onnx.a +0 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/ios-arm64_x86_64-simulator/libsherpa-onnx.a +0 -0
- package/ios/Packages/SherpaOnnx/sherpa-onnx.xcframework/ios-arm64_x86_64-simulator/sherpa-onnx.a +0 -0
- package/ios/Packages/VAD/Common/VAD/VADQuality.swift +41 -0
- package/ios/Packages/VAD/Common/VAD/VADState.swift +26 -0
- package/ios/Packages/VAD/Common/VAD/VADStrategy.swift +29 -0
- package/ios/Packages/VAD/Common/VAD/VADType.swift +14 -0
- package/ios/Packages/VAD/Data/Configuration.swift +68 -0
- package/ios/Packages/VAD/Data/FrameSize.swift +39 -0
- package/ios/Packages/VAD/Data/Record.swift +13 -0
- package/ios/Packages/VAD/Data/Result.swift +22 -0
- package/ios/Packages/VAD/Data/SampleRate.swift +48 -0
- package/ios/Packages/VAD/Silero/Model/silero_vad.onnx +0 -0
- package/ios/Packages/VAD/Silero/SileroVAD.swift +284 -0
- package/ios/Packages/VAD/Silero/SileroVADStrategy.swift +64 -0
- package/ios/Packages/libbz2/module.modulemap +5 -0
- package/ios/Packages/libbz2/shim.h +1 -0
- package/ios/Source/Bridge.swift +353 -0
- package/ios/Source/Bridging-Header.h +16 -0
- package/ios/Source/DeviceManager.swift +1478 -0
- package/ios/Source/DeviceStore.swift +295 -0
- package/ios/Source/MentraBluetoothSDK.swift +2439 -0
- package/ios/Source/ObservableStore.swift +88 -0
- package/ios/Source/PrivacyInfo.xcprivacy +23 -0
- package/ios/Source/controllers/ControllerManager.swift +187 -0
- package/ios/Source/controllers/R1.swift +827 -0
- package/ios/Source/services/PhoneMic.swift +662 -0
- package/ios/Source/sgcs/Frame.swift +651 -0
- package/ios/Source/sgcs/G1.swift +2505 -0
- package/ios/Source/sgcs/G2.swift +3730 -0
- package/ios/Source/sgcs/Mach1.swift +543 -0
- package/ios/Source/sgcs/MentraLive.swift +4708 -0
- package/ios/Source/sgcs/MentraNex.swift +2479 -0
- package/ios/Source/sgcs/SGCManager.swift +243 -0
- package/ios/Source/sgcs/Simulated.swift +270 -0
- package/ios/Source/sgcs/mentraos_ble.pb.swift +3811 -0
- package/ios/Source/stt/STTTools.swift +154 -0
- package/ios/Source/stt/SherpaOnnxTranscriber.swift +401 -0
- package/ios/Source/utils/AudioSessionMonitor.swift +283 -0
- package/ios/Source/utils/Constants.swift +74 -0
- package/ios/Source/utils/Enums.swift +95 -0
- package/ios/Source/utils/G1Text.swift +2067 -0
- package/ios/Source/utils/JSCExperiment.swift +241 -0
- package/ios/Source/utils/MemoryMonitor.swift +44 -0
- package/ios/Source/utils/MessageChunker.swift +164 -0
- package/ios/Source/utils/Models.swift +135 -0
- package/ios/Source/utils/PhoneAudioMonitor.swift +226 -0
- package/ios/Source/utils/TarBz2Extractor.swift +206 -0
- package/package.json +78 -0
- package/plugin/build/index.d.ts +6 -0
- package/plugin/build/index.js +12 -0
- package/plugin/build/withAndroid.d.ts +4 -0
- package/plugin/build/withAndroid.js +80 -0
- package/plugin/build/withIos.d.ts +4 -0
- package/plugin/build/withIos.js +64 -0
- package/src/BluetoothSdk.types.ts +581 -0
- package/src/BluetoothSdkModule.ts +259 -0
- package/src/index.ts +4 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
package com.mentra.bluetoothsdk.sgcs
|
|
2
|
+
|
|
3
|
+
import com.mentra.bluetoothsdk.DeviceStore
|
|
4
|
+
import com.mentra.bluetoothsdk.utils.ConnTypes
|
|
5
|
+
|
|
6
|
+
abstract class SGCManager {
|
|
7
|
+
// Hard coded device properties:
|
|
8
|
+
@JvmField var type: String = ""
|
|
9
|
+
@JvmField var hasMic: Boolean = false
|
|
10
|
+
|
|
11
|
+
// Audio Control
|
|
12
|
+
abstract fun setMicEnabled(enabled: Boolean)
|
|
13
|
+
abstract fun sortMicRanking(list: MutableList<String>): MutableList<String>
|
|
14
|
+
|
|
15
|
+
// Camera & Media
|
|
16
|
+
abstract fun requestPhoto(
|
|
17
|
+
requestId: String,
|
|
18
|
+
appId: String,
|
|
19
|
+
size: String,
|
|
20
|
+
webhookUrl: String?,
|
|
21
|
+
authToken: String?,
|
|
22
|
+
compress: String?,
|
|
23
|
+
flash: Boolean,
|
|
24
|
+
sound: Boolean
|
|
25
|
+
)
|
|
26
|
+
abstract fun startStream(message: MutableMap<String, Any>)
|
|
27
|
+
abstract fun stopStream()
|
|
28
|
+
abstract fun sendStreamKeepAlive(message: MutableMap<String, Any>)
|
|
29
|
+
abstract fun startVideoRecording(requestId: String, save: Boolean, flash: Boolean, sound: Boolean)
|
|
30
|
+
abstract fun stopVideoRecording(requestId: String)
|
|
31
|
+
|
|
32
|
+
// Button Settings
|
|
33
|
+
abstract fun sendButtonPhotoSettings()
|
|
34
|
+
abstract fun sendButtonVideoRecordingSettings()
|
|
35
|
+
abstract fun sendButtonMaxRecordingTime()
|
|
36
|
+
abstract fun sendButtonCameraLedSetting()
|
|
37
|
+
abstract fun sendCameraFovSetting()
|
|
38
|
+
|
|
39
|
+
// Display Control
|
|
40
|
+
abstract fun setBrightness(level: Int, autoMode: Boolean)
|
|
41
|
+
abstract fun clearDisplay()
|
|
42
|
+
abstract fun sendTextWall(text: String)
|
|
43
|
+
abstract fun sendDoubleTextWall(top: String, bottom: String)
|
|
44
|
+
abstract fun displayBitmap(base64ImageData: String): Boolean
|
|
45
|
+
abstract fun showDashboard()
|
|
46
|
+
abstract fun setDashboardPosition(height: Int, depth: Int)
|
|
47
|
+
|
|
48
|
+
/** Default: full [setDashboardPosition] (e.g. G1 single command). Nex overrides to height protobuf only. */
|
|
49
|
+
open fun setDashboardHeightOnly(height: Int) {
|
|
50
|
+
val depth = (DeviceStore.store.get("bluetooth", "dashboard_depth") as? Number)?.toInt() ?: 2
|
|
51
|
+
setDashboardPosition(height, depth)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Default: full [setDashboardPosition]. Nex overrides to display_distance only. */
|
|
55
|
+
open fun setDashboardDepthOnly(depth: Int) {
|
|
56
|
+
val height = (DeviceStore.store.get("bluetooth", "dashboard_height") as? Number)?.toInt() ?: 4
|
|
57
|
+
setDashboardPosition(height, depth)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Dashboard Menu (default no-op — only G2 supports this)
|
|
61
|
+
open fun setDashboardMenu(items: List<Map<String, Any>>) {}
|
|
62
|
+
|
|
63
|
+
// Controller bridging (default no-op — only G2 supports pairing with a ring controller)
|
|
64
|
+
open fun connectController() {}
|
|
65
|
+
open fun disconnectController() {}
|
|
66
|
+
|
|
67
|
+
// Device Control
|
|
68
|
+
abstract fun setHeadUpAngle(angle: Int)
|
|
69
|
+
abstract fun getBatteryStatus()
|
|
70
|
+
abstract fun setSilentMode(enabled: Boolean)
|
|
71
|
+
abstract fun exit()
|
|
72
|
+
abstract fun sendShutdown()
|
|
73
|
+
abstract fun sendReboot()
|
|
74
|
+
abstract fun sendRgbLedControl(
|
|
75
|
+
requestId: String,
|
|
76
|
+
packageName: String?,
|
|
77
|
+
action: String,
|
|
78
|
+
color: String?,
|
|
79
|
+
ontime: Int,
|
|
80
|
+
offtime: Int,
|
|
81
|
+
count: Int
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
// Connection Management
|
|
85
|
+
abstract fun disconnect()
|
|
86
|
+
abstract fun forget()
|
|
87
|
+
abstract fun findCompatibleDevices()
|
|
88
|
+
abstract fun stopScan()
|
|
89
|
+
abstract fun connectById(id: String)
|
|
90
|
+
abstract fun getConnectedBluetoothName(): String
|
|
91
|
+
abstract fun cleanup()
|
|
92
|
+
abstract fun ping()
|
|
93
|
+
abstract fun dbg1()
|
|
94
|
+
abstract fun dbg2()
|
|
95
|
+
|
|
96
|
+
// Network Management
|
|
97
|
+
abstract fun requestWifiScan()
|
|
98
|
+
abstract fun sendWifiCredentials(ssid: String, password: String)
|
|
99
|
+
abstract fun forgetWifiNetwork(ssid: String)
|
|
100
|
+
abstract fun sendHotspotState(enabled: Boolean)
|
|
101
|
+
|
|
102
|
+
// User Context (for crash reporting)
|
|
103
|
+
abstract fun sendUserEmailToGlasses(email: String)
|
|
104
|
+
|
|
105
|
+
// Incident Reporting
|
|
106
|
+
abstract fun sendIncidentId(incidentId: String, apiBaseUrl: String? = null)
|
|
107
|
+
|
|
108
|
+
// Gallery
|
|
109
|
+
abstract fun queryGalleryStatus()
|
|
110
|
+
abstract fun sendGalleryMode()
|
|
111
|
+
|
|
112
|
+
// Version info
|
|
113
|
+
abstract fun requestVersionInfo()
|
|
114
|
+
|
|
115
|
+
// DeviceStore-backed read-only getters for convenience
|
|
116
|
+
val fullyBooted: Boolean
|
|
117
|
+
get() = DeviceStore.get("glasses", "fullyBooted") as? Boolean ?: false
|
|
118
|
+
|
|
119
|
+
val connected: Boolean
|
|
120
|
+
get() = DeviceStore.get("glasses", "connected") as? Boolean ?: false
|
|
121
|
+
|
|
122
|
+
val connectionState: String
|
|
123
|
+
get() = DeviceStore.get("glasses", "connectionState") as? String ?: ConnTypes.DISCONNECTED
|
|
124
|
+
|
|
125
|
+
val appVersion: String
|
|
126
|
+
get() = DeviceStore.get("glasses", "appVersion") as? String ?: ""
|
|
127
|
+
|
|
128
|
+
val buildNumber: String
|
|
129
|
+
get() = DeviceStore.get("glasses", "buildNumber") as? String ?: ""
|
|
130
|
+
|
|
131
|
+
val deviceModel: String
|
|
132
|
+
get() = DeviceStore.get("glasses", "deviceModel") as? String ?: ""
|
|
133
|
+
|
|
134
|
+
val androidVersion: String
|
|
135
|
+
get() = DeviceStore.get("glasses", "androidVersion") as? String ?: ""
|
|
136
|
+
|
|
137
|
+
val otaVersionUrl: String
|
|
138
|
+
get() = DeviceStore.get("glasses", "otaVersionUrl") as? String ?: ""
|
|
139
|
+
|
|
140
|
+
val firmwareVersion: String
|
|
141
|
+
get() = DeviceStore.get("glasses", "firmwareVersion") as? String ?: ""
|
|
142
|
+
|
|
143
|
+
val btMacAddress: String
|
|
144
|
+
get() = DeviceStore.get("glasses", "btMacAddress") as? String ?: ""
|
|
145
|
+
|
|
146
|
+
val serialNumber: String
|
|
147
|
+
get() = DeviceStore.get("glasses", "serialNumber") as? String ?: ""
|
|
148
|
+
|
|
149
|
+
val style: String
|
|
150
|
+
get() = DeviceStore.get("glasses", "style") as? String ?: ""
|
|
151
|
+
|
|
152
|
+
val color: String
|
|
153
|
+
get() = DeviceStore.get("glasses", "color") as? String ?: ""
|
|
154
|
+
|
|
155
|
+
val micEnabled: Boolean
|
|
156
|
+
get() = DeviceStore.get("glasses", "micEnabled") as? Boolean ?: false
|
|
157
|
+
|
|
158
|
+
val vadEnabled: Boolean
|
|
159
|
+
get() = DeviceStore.get("glasses", "vadEnabled") as? Boolean ?: false
|
|
160
|
+
|
|
161
|
+
val batteryLevel: Int
|
|
162
|
+
get() = DeviceStore.get("glasses", "batteryLevel") as? Int ?: -1
|
|
163
|
+
|
|
164
|
+
val headUp: Boolean
|
|
165
|
+
get() = DeviceStore.get("glasses", "headUp") as? Boolean ?: false
|
|
166
|
+
|
|
167
|
+
val charging: Boolean
|
|
168
|
+
get() = DeviceStore.get("glasses", "charging") as? Boolean ?: false
|
|
169
|
+
|
|
170
|
+
val caseOpen: Boolean
|
|
171
|
+
get() = DeviceStore.get("glasses", "caseOpen") as? Boolean ?: true
|
|
172
|
+
|
|
173
|
+
val caseRemoved: Boolean
|
|
174
|
+
get() = DeviceStore.get("glasses", "caseRemoved") as? Boolean ?: true
|
|
175
|
+
|
|
176
|
+
val caseCharging: Boolean
|
|
177
|
+
get() = DeviceStore.get("glasses", "caseCharging") as? Boolean ?: false
|
|
178
|
+
|
|
179
|
+
val caseBatteryLevel: Int
|
|
180
|
+
get() = DeviceStore.get("glasses", "caseBatteryLevel") as? Int ?: -1
|
|
181
|
+
|
|
182
|
+
val wifiSsid: String
|
|
183
|
+
get() = DeviceStore.get("glasses", "wifiSsid") as? String ?: ""
|
|
184
|
+
|
|
185
|
+
val wifiConnected: Boolean
|
|
186
|
+
get() = DeviceStore.get("glasses", "wifiConnected") as? Boolean ?: false
|
|
187
|
+
|
|
188
|
+
val wifiLocalIp: String
|
|
189
|
+
get() = DeviceStore.get("glasses", "wifiLocalIp") as? String ?: ""
|
|
190
|
+
|
|
191
|
+
val hotspotEnabled: Boolean
|
|
192
|
+
get() = DeviceStore.get("glasses", "hotspotEnabled") as? Boolean ?: false
|
|
193
|
+
|
|
194
|
+
val hotspotSsid: String
|
|
195
|
+
get() = DeviceStore.get("glasses", "hotspotSsid") as? String ?: ""
|
|
196
|
+
|
|
197
|
+
val hotspotPassword: String
|
|
198
|
+
get() = DeviceStore.get("glasses", "hotspotPassword") as? String ?: ""
|
|
199
|
+
|
|
200
|
+
val hotspotGatewayIp: String
|
|
201
|
+
get() = DeviceStore.get("glasses", "hotspotGatewayIp") as? String ?: ""
|
|
202
|
+
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
package com.mentra.bluetoothsdk.sgcs
|
|
2
|
+
|
|
3
|
+
import com.mentra.bluetoothsdk.Bridge
|
|
4
|
+
import com.mentra.bluetoothsdk.DeviceManager
|
|
5
|
+
import com.mentra.bluetoothsdk.utils.ConnTypes
|
|
6
|
+
import com.mentra.bluetoothsdk.utils.DeviceTypes
|
|
7
|
+
import com.mentra.bluetoothsdk.DeviceStore
|
|
8
|
+
|
|
9
|
+
class Simulated : SGCManager() {
|
|
10
|
+
|
|
11
|
+
init {
|
|
12
|
+
type = DeviceTypes.SIMULATED
|
|
13
|
+
DeviceStore.apply("glasses", "fullyBooted", true)
|
|
14
|
+
DeviceStore.apply("glasses", "connected", true)
|
|
15
|
+
DeviceStore.apply("glasses", "connectionState", ConnTypes.CONNECTED)
|
|
16
|
+
DeviceStore.apply("glasses", "micEnabled", false)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Audio Control
|
|
20
|
+
override fun setMicEnabled(enabled: Boolean) {
|
|
21
|
+
Bridge.log("setMicEnabled")
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
override fun sortMicRanking(list: MutableList<String>): MutableList<String> {
|
|
25
|
+
return list
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// Camera & Media
|
|
29
|
+
override fun requestPhoto(
|
|
30
|
+
requestId: String,
|
|
31
|
+
appId: String,
|
|
32
|
+
size: String,
|
|
33
|
+
webhookUrl: String?,
|
|
34
|
+
authToken: String?,
|
|
35
|
+
compress: String?,
|
|
36
|
+
flash: Boolean,
|
|
37
|
+
sound: Boolean
|
|
38
|
+
) {
|
|
39
|
+
Bridge.log("requestPhoto flash=$flash, sound=$sound")
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
override fun startStream(message: MutableMap<String, Any>) {
|
|
43
|
+
Bridge.log("startStream")
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
override fun stopStream() {
|
|
47
|
+
Bridge.log("stopStream")
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
override fun sendStreamKeepAlive(message: MutableMap<String, Any>) {
|
|
51
|
+
Bridge.log("sendStreamKeepAlive")
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
override fun startVideoRecording(requestId: String, save: Boolean, flash: Boolean, sound: Boolean) {
|
|
55
|
+
Bridge.log("startVideoRecording flash=$flash, sound=$sound")
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
override fun stopVideoRecording(requestId: String) {
|
|
59
|
+
Bridge.log("stopVideoRecording")
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Button Settings
|
|
63
|
+
override fun sendButtonPhotoSettings() {
|
|
64
|
+
Bridge.log("sendButtonPhotoSettings")
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
override fun sendButtonVideoRecordingSettings() {
|
|
68
|
+
Bridge.log("sendButtonVideoRecordingSettings")
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
override fun sendButtonMaxRecordingTime() {
|
|
72
|
+
Bridge.log("sendButtonMaxRecordingTime")
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
override fun sendButtonCameraLedSetting() {
|
|
76
|
+
Bridge.log("sendButtonCameraLedSetting")
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
override fun sendCameraFovSetting() {
|
|
80
|
+
Bridge.log("sendCameraFovSetting")
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Display Control
|
|
84
|
+
override fun setBrightness(level: Int, autoMode: Boolean) {
|
|
85
|
+
Bridge.log("setBrightness")
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
override fun clearDisplay() {
|
|
89
|
+
Bridge.log("clearDisplay")
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
override fun sendTextWall(text: String) {
|
|
93
|
+
Bridge.log("sendTextWall")
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
override fun sendDoubleTextWall(top: String, bottom: String) {
|
|
97
|
+
Bridge.log("sendDoubleTextWall")
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
override fun displayBitmap(base64ImageData: String): Boolean {
|
|
101
|
+
Bridge.log("displayBitmap")
|
|
102
|
+
return false
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
override fun showDashboard() {
|
|
106
|
+
Bridge.log("showDashboard")
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
override fun setDashboardPosition(height: Int, depth: Int) {
|
|
110
|
+
Bridge.log("setDashboardPosition")
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Device Control
|
|
114
|
+
override fun setHeadUpAngle(angle: Int) {
|
|
115
|
+
Bridge.log("setHeadUpAngle")
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
override fun getBatteryStatus() {
|
|
119
|
+
Bridge.log("getBatteryStatus")
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
override fun setSilentMode(enabled: Boolean) {
|
|
123
|
+
Bridge.log("setSilentMode")
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
override fun exit() {
|
|
127
|
+
Bridge.log("exit")
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
override fun sendShutdown() {
|
|
131
|
+
Bridge.log("sendShutdown - not supported on Simulated")
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
override fun sendReboot() {
|
|
135
|
+
Bridge.log("sendReboot - not supported on Simulated")
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
override fun sendRgbLedControl(
|
|
139
|
+
requestId: String,
|
|
140
|
+
packageName: String?,
|
|
141
|
+
action: String,
|
|
142
|
+
color: String?,
|
|
143
|
+
ontime: Int,
|
|
144
|
+
offtime: Int,
|
|
145
|
+
count: Int
|
|
146
|
+
) {
|
|
147
|
+
Bridge.log("sendRgbLedControl - not supported on Simulated")
|
|
148
|
+
Bridge.sendRgbLedControlResponse(requestId, false, "device_not_supported")
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Connection Management
|
|
152
|
+
override fun disconnect() {
|
|
153
|
+
Bridge.log("disconnect")
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
override fun forget() {
|
|
157
|
+
Bridge.log("forget")
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
override fun findCompatibleDevices() {
|
|
161
|
+
Bridge.log("findCompatibleDevices")
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
override fun stopScan() {
|
|
165
|
+
Bridge.log("stopScan")
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
override fun connectById(id: String) {
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
override fun getConnectedBluetoothName(): String {
|
|
172
|
+
return ""
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
override fun cleanup() {
|
|
176
|
+
Bridge.log("cleanup")
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
override fun ping() {
|
|
180
|
+
Bridge.log("ping")
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
override fun dbg1() {}
|
|
184
|
+
override fun dbg2() {}
|
|
185
|
+
|
|
186
|
+
// Network Management
|
|
187
|
+
override fun requestWifiScan() {
|
|
188
|
+
Bridge.log("requestWifiScan")
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
override fun sendWifiCredentials(ssid: String, password: String) {
|
|
192
|
+
Bridge.log("sendWifiCredentials")
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
override fun forgetWifiNetwork(ssid: String) {
|
|
196
|
+
Bridge.log("forgetWifiNetwork: $ssid")
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
override fun sendHotspotState(enabled: Boolean) {
|
|
200
|
+
Bridge.log("sendHotspotState")
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
override fun sendUserEmailToGlasses(email: String) {
|
|
204
|
+
Bridge.log("sendUserEmailToGlasses: $email")
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
override fun sendIncidentId(incidentId: String, apiBaseUrl: String?) {
|
|
208
|
+
Bridge.log("sendIncidentId: $incidentId")
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
// Gallery
|
|
212
|
+
override fun queryGalleryStatus() {
|
|
213
|
+
Bridge.log("queryGalleryStatus")
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
override fun sendGalleryMode() {
|
|
217
|
+
Bridge.log("SIMULATED: 📸 Received gallery mode")
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
// Version info
|
|
221
|
+
override fun requestVersionInfo() {
|
|
222
|
+
Bridge.log("SIMULATED: 📱 Requesting version info (no-op)")
|
|
223
|
+
}
|
|
224
|
+
}
|