@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,498 @@
|
|
|
1
|
+
export type GlassesNotReadyEvent = {
|
|
2
|
+
type: "glasses_not_ready";
|
|
3
|
+
message: string;
|
|
4
|
+
};
|
|
5
|
+
export type ButtonPressEvent = {
|
|
6
|
+
type: "button_press";
|
|
7
|
+
buttonId: string;
|
|
8
|
+
pressType: "long" | "short";
|
|
9
|
+
timestamp: number;
|
|
10
|
+
};
|
|
11
|
+
export type TouchEvent = {
|
|
12
|
+
type: "touch_event";
|
|
13
|
+
device_model?: string;
|
|
14
|
+
gesture_name?: string;
|
|
15
|
+
timestamp: number;
|
|
16
|
+
};
|
|
17
|
+
export type HeadUpEvent = {
|
|
18
|
+
up: boolean;
|
|
19
|
+
};
|
|
20
|
+
export type VadStatusEvent = {
|
|
21
|
+
type: "vad_status";
|
|
22
|
+
status: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type BatteryStatusEvent = {
|
|
25
|
+
type: "battery_status";
|
|
26
|
+
level: number;
|
|
27
|
+
charging: boolean;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
};
|
|
30
|
+
export type GlassesConnectionStatus = {
|
|
31
|
+
state: 'disconnected';
|
|
32
|
+
} | {
|
|
33
|
+
state: 'scanning';
|
|
34
|
+
} | {
|
|
35
|
+
state: 'connecting';
|
|
36
|
+
} | {
|
|
37
|
+
state: 'bonding';
|
|
38
|
+
} | {
|
|
39
|
+
state: 'connected';
|
|
40
|
+
fullyBooted: boolean;
|
|
41
|
+
};
|
|
42
|
+
export type ConnectedGlassesConnectionStatus = Extract<GlassesConnectionStatus, {
|
|
43
|
+
state: 'connected';
|
|
44
|
+
}>;
|
|
45
|
+
export declare function isConnectedGlassesConnectionStatus(status: GlassesConnectionStatus): status is ConnectedGlassesConnectionStatus;
|
|
46
|
+
export declare function isReadyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean;
|
|
47
|
+
export declare function isBusyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean;
|
|
48
|
+
export declare function createDisconnectedGlassesStatus(): Partial<GlassesStatus>;
|
|
49
|
+
/** K900 `sr_getvol` response (Mentra Live glasses media step volume 0–15). */
|
|
50
|
+
export type GlassesMediaVolumeGetResult = {
|
|
51
|
+
vol: number;
|
|
52
|
+
statusCode: number;
|
|
53
|
+
};
|
|
54
|
+
/** K900 `sr_vol` acknowledgment. */
|
|
55
|
+
export type GlassesMediaVolumeSetResult = {
|
|
56
|
+
statusCode: number;
|
|
57
|
+
};
|
|
58
|
+
export type LocalTranscriptionEvent = {
|
|
59
|
+
text: string;
|
|
60
|
+
isFinal?: boolean;
|
|
61
|
+
transcribeLanguage?: string;
|
|
62
|
+
};
|
|
63
|
+
export type LogEvent = {
|
|
64
|
+
message: string;
|
|
65
|
+
};
|
|
66
|
+
export type WifiStatus = {
|
|
67
|
+
state: 'disconnected';
|
|
68
|
+
} | {
|
|
69
|
+
state: 'connected';
|
|
70
|
+
ssid: string;
|
|
71
|
+
localIp?: string;
|
|
72
|
+
};
|
|
73
|
+
export type ConnectedWifiStatus = Extract<WifiStatus, {
|
|
74
|
+
state: 'connected';
|
|
75
|
+
}>;
|
|
76
|
+
export declare function isConnectedWifiStatus(status: WifiStatus): status is ConnectedWifiStatus;
|
|
77
|
+
export type WifiStatusChangeEvent = WifiStatus & {
|
|
78
|
+
type: "wifi_status_change";
|
|
79
|
+
};
|
|
80
|
+
export type HotspotStatus = {
|
|
81
|
+
state: 'disabled';
|
|
82
|
+
} | {
|
|
83
|
+
state: 'enabled';
|
|
84
|
+
ssid: string;
|
|
85
|
+
password: string;
|
|
86
|
+
localIp: string;
|
|
87
|
+
};
|
|
88
|
+
export type EnabledHotspotStatus = Extract<HotspotStatus, {
|
|
89
|
+
state: 'enabled';
|
|
90
|
+
}>;
|
|
91
|
+
export declare function isEnabledHotspotStatus(status: HotspotStatus): status is EnabledHotspotStatus;
|
|
92
|
+
export type HotspotStatusChangeEvent = HotspotStatus & {
|
|
93
|
+
type: "hotspot_status_change";
|
|
94
|
+
};
|
|
95
|
+
export type HotspotErrorEvent = {
|
|
96
|
+
type: "hotspot_error";
|
|
97
|
+
error_message: string;
|
|
98
|
+
timestamp: number;
|
|
99
|
+
};
|
|
100
|
+
export type PhotoResponseEvent = {
|
|
101
|
+
type: "photo_response";
|
|
102
|
+
state: "success";
|
|
103
|
+
requestId: string;
|
|
104
|
+
photoUrl: string;
|
|
105
|
+
timestamp: number;
|
|
106
|
+
} | {
|
|
107
|
+
type: "photo_response";
|
|
108
|
+
state: "error";
|
|
109
|
+
requestId: string;
|
|
110
|
+
timestamp: number;
|
|
111
|
+
errorCode?: string;
|
|
112
|
+
errorMessage: string;
|
|
113
|
+
};
|
|
114
|
+
export type GalleryStatusEvent = {
|
|
115
|
+
type: "gallery_status";
|
|
116
|
+
photos: number;
|
|
117
|
+
videos: number;
|
|
118
|
+
total: number;
|
|
119
|
+
has_content: boolean;
|
|
120
|
+
camera_busy: boolean;
|
|
121
|
+
};
|
|
122
|
+
export type CompatibleGlassesSearchStopEvent = {
|
|
123
|
+
type: "compatible_glasses_search_stop";
|
|
124
|
+
device_model: string;
|
|
125
|
+
};
|
|
126
|
+
export type HeartbeatSentEvent = {
|
|
127
|
+
type: "heartbeat_sent";
|
|
128
|
+
heartbeat_sent: {
|
|
129
|
+
timestamp: number;
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
export type HeartbeatReceivedEvent = {
|
|
133
|
+
type: "heartbeat_received";
|
|
134
|
+
heartbeat_received: {
|
|
135
|
+
timestamp: number;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
export type SwipeVolumeStatusEvent = {
|
|
139
|
+
type: "swipe_volume_status";
|
|
140
|
+
enabled: boolean;
|
|
141
|
+
timestamp: number;
|
|
142
|
+
};
|
|
143
|
+
export type SwitchStatusEvent = {
|
|
144
|
+
type: "switch_status";
|
|
145
|
+
switch_type?: number;
|
|
146
|
+
switchType?: number;
|
|
147
|
+
switch_value?: number;
|
|
148
|
+
switchValue?: number;
|
|
149
|
+
timestamp: number;
|
|
150
|
+
};
|
|
151
|
+
export type RgbLedControlResponseEvent = {
|
|
152
|
+
type: "rgb_led_control_response";
|
|
153
|
+
state: "success";
|
|
154
|
+
requestId: string;
|
|
155
|
+
} | {
|
|
156
|
+
type: "rgb_led_control_response";
|
|
157
|
+
state: "error";
|
|
158
|
+
requestId: string;
|
|
159
|
+
errorCode: string;
|
|
160
|
+
};
|
|
161
|
+
export type RgbLedAction = "on" | "off";
|
|
162
|
+
export type RgbLedColor = "red" | "green" | "blue" | "orange" | "white";
|
|
163
|
+
/** `"auto"` enables local button photo/video capture; `"manual"` reports button events without local gallery capture. */
|
|
164
|
+
export type GalleryMode = "auto" | "manual";
|
|
165
|
+
export type PhotoSize = "small" | "medium" | "large" | "full";
|
|
166
|
+
export type ButtonPhotoSize = "small" | "medium" | "large";
|
|
167
|
+
export type PhotoCompression = "none" | "medium" | "heavy";
|
|
168
|
+
export type StreamVideoConfig = {
|
|
169
|
+
width?: number;
|
|
170
|
+
height?: number;
|
|
171
|
+
bitrate?: number;
|
|
172
|
+
frameRate?: number;
|
|
173
|
+
};
|
|
174
|
+
export type StreamAudioConfig = {
|
|
175
|
+
bitrate?: number;
|
|
176
|
+
sampleRate?: number;
|
|
177
|
+
echoCancellation?: boolean;
|
|
178
|
+
noiseSuppression?: boolean;
|
|
179
|
+
};
|
|
180
|
+
export type StreamStartRequest = {
|
|
181
|
+
type?: "start_stream";
|
|
182
|
+
streamUrl: string;
|
|
183
|
+
streamId?: string;
|
|
184
|
+
keepAlive?: boolean;
|
|
185
|
+
keepAliveIntervalSeconds?: number;
|
|
186
|
+
flash?: boolean;
|
|
187
|
+
sound?: boolean;
|
|
188
|
+
video?: StreamVideoConfig;
|
|
189
|
+
audio?: StreamAudioConfig;
|
|
190
|
+
};
|
|
191
|
+
export type StreamKeepAliveRequest = {
|
|
192
|
+
type?: "keep_stream_alive";
|
|
193
|
+
streamId: string;
|
|
194
|
+
ackId: string;
|
|
195
|
+
};
|
|
196
|
+
export type PairFailureEvent = {
|
|
197
|
+
type: "pair_failure";
|
|
198
|
+
error: string;
|
|
199
|
+
};
|
|
200
|
+
export type AudioPairingNeededEvent = {
|
|
201
|
+
type: "audio_pairing_needed";
|
|
202
|
+
device_name: string;
|
|
203
|
+
};
|
|
204
|
+
export type AudioConnectedEvent = {
|
|
205
|
+
type: "audio_connected";
|
|
206
|
+
device_name: string;
|
|
207
|
+
};
|
|
208
|
+
export type AudioDisconnectedEvent = {
|
|
209
|
+
type: "audio_disconnected";
|
|
210
|
+
};
|
|
211
|
+
export type SaveSettingEvent = {
|
|
212
|
+
type: "save_setting";
|
|
213
|
+
key: string;
|
|
214
|
+
value: any;
|
|
215
|
+
};
|
|
216
|
+
export type WsTextEvent = {
|
|
217
|
+
type: "ws_text";
|
|
218
|
+
text: string;
|
|
219
|
+
};
|
|
220
|
+
export type WsBinEvent = {
|
|
221
|
+
type: "ws_bin";
|
|
222
|
+
base64: string;
|
|
223
|
+
};
|
|
224
|
+
export type MicPcmEvent = {
|
|
225
|
+
type: "mic_pcm";
|
|
226
|
+
pcm: ArrayBuffer;
|
|
227
|
+
};
|
|
228
|
+
export type MicLc3Event = {
|
|
229
|
+
type: "mic_lc3";
|
|
230
|
+
lc3: ArrayBuffer;
|
|
231
|
+
};
|
|
232
|
+
export type StreamStatusLifecycleState = "initializing" | "streaming" | "stopping" | "stopped";
|
|
233
|
+
export type StreamStatusReconnectState = "reconnecting" | "reconnected" | "reconnect_failed";
|
|
234
|
+
export type StreamStatusState = StreamStatusLifecycleState | StreamStatusReconnectState | "error";
|
|
235
|
+
export type StreamStatusEvent = {
|
|
236
|
+
type: "stream_status";
|
|
237
|
+
kind: "lifecycle";
|
|
238
|
+
status: StreamStatusLifecycleState;
|
|
239
|
+
streamId?: string;
|
|
240
|
+
timestamp?: number;
|
|
241
|
+
} | {
|
|
242
|
+
type: "stream_status";
|
|
243
|
+
kind: "reconnect";
|
|
244
|
+
status: "reconnecting";
|
|
245
|
+
streamId?: string;
|
|
246
|
+
attempt: number;
|
|
247
|
+
maxAttempts: number;
|
|
248
|
+
reason: string;
|
|
249
|
+
timestamp?: number;
|
|
250
|
+
} | {
|
|
251
|
+
type: "stream_status";
|
|
252
|
+
kind: "reconnect";
|
|
253
|
+
status: "reconnected";
|
|
254
|
+
streamId?: string;
|
|
255
|
+
attempt: number;
|
|
256
|
+
timestamp?: number;
|
|
257
|
+
} | {
|
|
258
|
+
type: "stream_status";
|
|
259
|
+
kind: "reconnect";
|
|
260
|
+
status: "reconnect_failed";
|
|
261
|
+
streamId?: string;
|
|
262
|
+
maxAttempts: number;
|
|
263
|
+
timestamp?: number;
|
|
264
|
+
} | {
|
|
265
|
+
type: "stream_status";
|
|
266
|
+
kind: "error";
|
|
267
|
+
status: "error";
|
|
268
|
+
streamId?: string;
|
|
269
|
+
errorDetails: string;
|
|
270
|
+
timestamp?: number;
|
|
271
|
+
} | {
|
|
272
|
+
type: "stream_status";
|
|
273
|
+
kind: "snapshot";
|
|
274
|
+
status: "streaming" | "reconnecting" | "stopped";
|
|
275
|
+
streaming: boolean;
|
|
276
|
+
reconnecting: boolean;
|
|
277
|
+
streamId?: string;
|
|
278
|
+
attempt?: number;
|
|
279
|
+
timestamp?: number;
|
|
280
|
+
};
|
|
281
|
+
export type KeepAliveAckEvent = {
|
|
282
|
+
type: "keep_alive_ack";
|
|
283
|
+
streamId: string;
|
|
284
|
+
ackId: string;
|
|
285
|
+
timestamp?: number;
|
|
286
|
+
};
|
|
287
|
+
export type MtkUpdateCompleteEvent = {
|
|
288
|
+
type: "mtk_update_complete";
|
|
289
|
+
message: string;
|
|
290
|
+
timestamp: number;
|
|
291
|
+
};
|
|
292
|
+
export type OtaUpdateAvailableEvent = {
|
|
293
|
+
type: "ota_update_available";
|
|
294
|
+
version_code?: number;
|
|
295
|
+
version_name?: string;
|
|
296
|
+
updates?: string[];
|
|
297
|
+
total_size?: number;
|
|
298
|
+
cache_ready?: boolean;
|
|
299
|
+
};
|
|
300
|
+
/** @deprecated Glasses no longer emit ota_progress; use {@link OtaStatusEvent} and legacy store mapping. */
|
|
301
|
+
export type OtaProgressEvent = {
|
|
302
|
+
type: "ota_progress";
|
|
303
|
+
stage?: OtaStage;
|
|
304
|
+
status?: OtaProgressStatus;
|
|
305
|
+
progress?: number;
|
|
306
|
+
bytes_downloaded?: number;
|
|
307
|
+
total_bytes?: number;
|
|
308
|
+
current_update?: string;
|
|
309
|
+
error_message?: string;
|
|
310
|
+
};
|
|
311
|
+
export type OtaStartAckEvent = {
|
|
312
|
+
type: "ota_start_ack";
|
|
313
|
+
timestamp: number;
|
|
314
|
+
};
|
|
315
|
+
export type OtaStatusEvent = {
|
|
316
|
+
type: "ota_status";
|
|
317
|
+
session_id: string;
|
|
318
|
+
total_steps: number;
|
|
319
|
+
current_step: number;
|
|
320
|
+
step_type: 'apk' | 'mtk' | 'bes';
|
|
321
|
+
phase: 'download' | 'install';
|
|
322
|
+
step_percent: number;
|
|
323
|
+
overall_percent: number;
|
|
324
|
+
status: 'in_progress' | 'step_complete' | 'complete' | 'failed' | 'idle';
|
|
325
|
+
error_message?: string;
|
|
326
|
+
};
|
|
327
|
+
/** Nex BLE protobuf trace (NexEventUtils); payload matches native Map keys. */
|
|
328
|
+
export type BleCommandTraceEvent = {
|
|
329
|
+
command: string;
|
|
330
|
+
commandText: string;
|
|
331
|
+
timestamp: number;
|
|
332
|
+
};
|
|
333
|
+
export type MiniappSelectedEvent = {
|
|
334
|
+
type: "miniapp_selected";
|
|
335
|
+
packageName: string;
|
|
336
|
+
};
|
|
337
|
+
export type BluetoothSdkEvent = Parameters<BluetoothSdkModuleEvents[keyof BluetoothSdkModuleEvents]>[0];
|
|
338
|
+
export type BluetoothSdkModuleEvents = {
|
|
339
|
+
glasses_status: (changed: Partial<GlassesStatus>) => void;
|
|
340
|
+
bluetooth_status: (changed: Partial<BluetoothStatus>) => void;
|
|
341
|
+
log: (event: LogEvent) => void;
|
|
342
|
+
device_discovered: (device: Device) => void;
|
|
343
|
+
default_device_changed: (event: {
|
|
344
|
+
device?: Device;
|
|
345
|
+
}) => void;
|
|
346
|
+
glasses_not_ready: (event: GlassesNotReadyEvent) => void;
|
|
347
|
+
button_press: (event: ButtonPressEvent) => void;
|
|
348
|
+
touch_event: (event: TouchEvent) => void;
|
|
349
|
+
head_up: (event: HeadUpEvent) => void;
|
|
350
|
+
vad_status: (event: VadStatusEvent) => void;
|
|
351
|
+
battery_status: (event: BatteryStatusEvent) => void;
|
|
352
|
+
local_transcription: (event: LocalTranscriptionEvent) => void;
|
|
353
|
+
wifi_status_change: (event: WifiStatusChangeEvent) => void;
|
|
354
|
+
hotspot_status_change: (event: HotspotStatusChangeEvent) => void;
|
|
355
|
+
hotspot_error: (event: HotspotErrorEvent) => void;
|
|
356
|
+
photo_response: (event: PhotoResponseEvent) => void;
|
|
357
|
+
gallery_status: (event: GalleryStatusEvent) => void;
|
|
358
|
+
compatible_glasses_search_stop: (event: CompatibleGlassesSearchStopEvent) => void;
|
|
359
|
+
heartbeat_sent: (event: HeartbeatSentEvent) => void;
|
|
360
|
+
heartbeat_received: (event: HeartbeatReceivedEvent) => void;
|
|
361
|
+
swipe_volume_status: (event: SwipeVolumeStatusEvent) => void;
|
|
362
|
+
switch_status: (event: SwitchStatusEvent) => void;
|
|
363
|
+
rgb_led_control_response: (event: RgbLedControlResponseEvent) => void;
|
|
364
|
+
pair_failure: (event: PairFailureEvent) => void;
|
|
365
|
+
audio_pairing_needed: (event: AudioPairingNeededEvent) => void;
|
|
366
|
+
audio_connected: (event: AudioConnectedEvent) => void;
|
|
367
|
+
audio_disconnected: (event: AudioDisconnectedEvent) => void;
|
|
368
|
+
save_setting: (event: SaveSettingEvent) => void;
|
|
369
|
+
ws_text: (event: WsTextEvent) => void;
|
|
370
|
+
ws_bin: (event: WsBinEvent) => void;
|
|
371
|
+
mic_pcm: (event: MicPcmEvent) => void;
|
|
372
|
+
mic_lc3: (event: MicLc3Event) => void;
|
|
373
|
+
stream_status: (event: StreamStatusEvent) => void;
|
|
374
|
+
keep_alive_ack: (event: KeepAliveAckEvent) => void;
|
|
375
|
+
mtk_update_complete: (event: MtkUpdateCompleteEvent) => void;
|
|
376
|
+
ota_update_available: (event: OtaUpdateAvailableEvent) => void;
|
|
377
|
+
ota_start_ack: (event: OtaStartAckEvent) => void;
|
|
378
|
+
ota_status: (event: OtaStatusEvent) => void;
|
|
379
|
+
send_command_to_ble: (event: BleCommandTraceEvent) => void;
|
|
380
|
+
receive_command_from_ble: (event: BleCommandTraceEvent) => void;
|
|
381
|
+
miniapp_selected: (event: MiniappSelectedEvent) => void;
|
|
382
|
+
};
|
|
383
|
+
export type OtaStage = "download" | "install";
|
|
384
|
+
export type OtaProgressStatus = "STARTED" | "PROGRESS" | "FINISHED" | "FAILED";
|
|
385
|
+
export interface OtaStatus {
|
|
386
|
+
sessionId: string;
|
|
387
|
+
totalSteps: number;
|
|
388
|
+
currentStep: number;
|
|
389
|
+
stepType: 'apk' | 'mtk' | 'bes';
|
|
390
|
+
phase: 'download' | 'install';
|
|
391
|
+
stepPercent: number;
|
|
392
|
+
overallPercent: number;
|
|
393
|
+
status: 'in_progress' | 'step_complete' | 'complete' | 'failed' | 'idle';
|
|
394
|
+
error?: string;
|
|
395
|
+
}
|
|
396
|
+
export interface OtaUpdateInfo {
|
|
397
|
+
available: boolean;
|
|
398
|
+
versionCode: number;
|
|
399
|
+
versionName: string;
|
|
400
|
+
updates: string[];
|
|
401
|
+
totalSize: number;
|
|
402
|
+
cacheReady?: boolean;
|
|
403
|
+
}
|
|
404
|
+
export interface OtaProgress {
|
|
405
|
+
stage: OtaStage;
|
|
406
|
+
status: OtaProgressStatus;
|
|
407
|
+
progress: number;
|
|
408
|
+
bytesDownloaded: number;
|
|
409
|
+
totalBytes: number;
|
|
410
|
+
currentUpdate: string;
|
|
411
|
+
errorMessage?: string;
|
|
412
|
+
}
|
|
413
|
+
export interface GlassesStatus {
|
|
414
|
+
connection: GlassesConnectionStatus;
|
|
415
|
+
micEnabled: boolean;
|
|
416
|
+
btcConnected: boolean;
|
|
417
|
+
signalStrength: number;
|
|
418
|
+
/** Milliseconds since epoch when signalStrength was last refreshed by the phone BLE stack. */
|
|
419
|
+
signalStrengthUpdatedAt: number;
|
|
420
|
+
deviceModel: string;
|
|
421
|
+
androidVersion: string;
|
|
422
|
+
fwVersion: string;
|
|
423
|
+
besFwVersion: string;
|
|
424
|
+
mtkFwVersion: string;
|
|
425
|
+
btMacAddress: string;
|
|
426
|
+
leftMacAddress: string;
|
|
427
|
+
rightMacAddress: string;
|
|
428
|
+
buildNumber: string;
|
|
429
|
+
otaVersionUrl: string;
|
|
430
|
+
appVersion: string;
|
|
431
|
+
bluetoothName: string;
|
|
432
|
+
serialNumber: string;
|
|
433
|
+
style: string;
|
|
434
|
+
color: string;
|
|
435
|
+
wifi: WifiStatus;
|
|
436
|
+
batteryLevel: number;
|
|
437
|
+
charging: boolean;
|
|
438
|
+
caseBatteryLevel: number;
|
|
439
|
+
caseCharging: boolean;
|
|
440
|
+
caseOpen: boolean;
|
|
441
|
+
caseRemoved: boolean;
|
|
442
|
+
hotspot: HotspotStatus;
|
|
443
|
+
otaUpdateAvailable: OtaUpdateInfo | null;
|
|
444
|
+
otaProgress: OtaProgress | null;
|
|
445
|
+
otaInProgress: boolean;
|
|
446
|
+
controllerConnected: boolean;
|
|
447
|
+
controllerFullyBooted: boolean;
|
|
448
|
+
controllerMacAddress: string;
|
|
449
|
+
controllerBatteryLevel: number;
|
|
450
|
+
controllerSignalStrength: number;
|
|
451
|
+
}
|
|
452
|
+
interface DashboardMenuItem {
|
|
453
|
+
name: string;
|
|
454
|
+
packageName: string;
|
|
455
|
+
running: boolean;
|
|
456
|
+
}
|
|
457
|
+
export interface CoreSettings {
|
|
458
|
+
menu_apps: DashboardMenuItem[];
|
|
459
|
+
}
|
|
460
|
+
export type MicRanking = "auto" | "phone" | "glasses" | "bluetooth";
|
|
461
|
+
export interface Device {
|
|
462
|
+
id: string;
|
|
463
|
+
model: string;
|
|
464
|
+
name: string;
|
|
465
|
+
address?: string;
|
|
466
|
+
rssi?: number;
|
|
467
|
+
}
|
|
468
|
+
export interface DeviceScanRequest {
|
|
469
|
+
model: string;
|
|
470
|
+
}
|
|
471
|
+
export interface ConnectOptions {
|
|
472
|
+
saveAsDefault?: boolean;
|
|
473
|
+
cancelExistingConnectionAttempt?: boolean;
|
|
474
|
+
}
|
|
475
|
+
export interface WifiSearchResult {
|
|
476
|
+
ssid: string;
|
|
477
|
+
requiresPassword: boolean;
|
|
478
|
+
signalStrength: number;
|
|
479
|
+
/** Frequency in MHz (from glasses scan). 5 GHz band is typically 5170–5825. Omitted if unknown. */
|
|
480
|
+
frequency?: number;
|
|
481
|
+
}
|
|
482
|
+
export interface BluetoothStatus {
|
|
483
|
+
searching: boolean;
|
|
484
|
+
searchingController: boolean;
|
|
485
|
+
default_wearable?: string;
|
|
486
|
+
device_name?: string;
|
|
487
|
+
device_address?: string;
|
|
488
|
+
systemMicUnavailable: boolean;
|
|
489
|
+
micRanking: MicRanking[];
|
|
490
|
+
currentMic: MicRanking | null;
|
|
491
|
+
searchResults: Device[];
|
|
492
|
+
wifiScanResults: WifiSearchResult[];
|
|
493
|
+
lastLog: string[];
|
|
494
|
+
otherBtConnected: boolean;
|
|
495
|
+
gallery_mode: boolean;
|
|
496
|
+
}
|
|
497
|
+
export {};
|
|
498
|
+
//# sourceMappingURL=BluetoothSdk.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BluetoothSdk.types.d.ts","sourceRoot":"","sources":["../src/BluetoothSdk.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function isConnectedGlassesConnectionStatus(status) {
|
|
2
|
+
return status.state === 'connected';
|
|
3
|
+
}
|
|
4
|
+
export function isReadyGlassesConnectionStatus(status) {
|
|
5
|
+
return status.state === 'connected' && status.fullyBooted;
|
|
6
|
+
}
|
|
7
|
+
export function isBusyGlassesConnectionStatus(status) {
|
|
8
|
+
return status.state === 'scanning' || status.state === 'connecting' || status.state === 'bonding';
|
|
9
|
+
}
|
|
10
|
+
export function createDisconnectedGlassesStatus() {
|
|
11
|
+
return {
|
|
12
|
+
connection: { state: 'disconnected' },
|
|
13
|
+
hotspot: { state: 'disabled' },
|
|
14
|
+
wifi: { state: 'disconnected' },
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export function isConnectedWifiStatus(status) {
|
|
18
|
+
return status.state === 'connected';
|
|
19
|
+
}
|
|
20
|
+
export function isEnabledHotspotStatus(status) {
|
|
21
|
+
return status.state === 'enabled';
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=BluetoothSdk.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BluetoothSdk.types.js","sourceRoot":"","sources":["../src/BluetoothSdk.types.ts"],"names":[],"mappings":"AA6CA,MAAM,UAAU,kCAAkC,CAChD,MAA+B;IAE/B,OAAO,MAAM,CAAC,KAAK,KAAK,WAAW,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAA+B;IAC5E,OAAO,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,MAAM,CAAC,WAAW,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAA+B;IAC3E,OAAO,MAAM,CAAC,KAAK,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAA;AACnG,CAAC;AAED,MAAM,UAAU,+BAA+B;IAC7C,OAAO;QACL,UAAU,EAAE,EAAC,KAAK,EAAE,cAAc,EAAC;QACnC,OAAO,EAAE,EAAC,KAAK,EAAE,UAAU,EAAC;QAC5B,IAAI,EAAE,EAAC,KAAK,EAAE,cAAc,EAAC;KAC9B,CAAA;AACH,CAAC;AA2BD,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACtD,OAAO,MAAM,CAAC,KAAK,KAAK,WAAW,CAAA;AACrC,CAAC;AAUD,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC1D,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,CAAA;AACnC,CAAC","sourcesContent":["// Bluetooth SDK Event Types\nexport type GlassesNotReadyEvent = {\n type: \"glasses_not_ready\"\n message: string\n}\n\nexport type ButtonPressEvent = {\n type: \"button_press\"\n buttonId: string\n pressType: \"long\" | \"short\"\n timestamp: number\n}\n\nexport type TouchEvent = {\n type: \"touch_event\"\n device_model?: string\n gesture_name?: string\n timestamp: number\n}\n\nexport type HeadUpEvent = {\n up: boolean\n}\n\nexport type VadStatusEvent = {\n type: \"vad_status\"\n status: boolean\n}\n\nexport type BatteryStatusEvent = {\n type: \"battery_status\"\n level: number\n charging: boolean\n timestamp: number\n}\n\nexport type GlassesConnectionStatus =\n | {state: 'disconnected'}\n | {state: 'scanning'}\n | {state: 'connecting'}\n | {state: 'bonding'}\n | {state: 'connected'; fullyBooted: boolean}\n\nexport type ConnectedGlassesConnectionStatus = Extract<GlassesConnectionStatus, {state: 'connected'}>\n\nexport function isConnectedGlassesConnectionStatus(\n status: GlassesConnectionStatus,\n): status is ConnectedGlassesConnectionStatus {\n return status.state === 'connected'\n}\n\nexport function isReadyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean {\n return status.state === 'connected' && status.fullyBooted\n}\n\nexport function isBusyGlassesConnectionStatus(status: GlassesConnectionStatus): boolean {\n return status.state === 'scanning' || status.state === 'connecting' || status.state === 'bonding'\n}\n\nexport function createDisconnectedGlassesStatus(): Partial<GlassesStatus> {\n return {\n connection: {state: 'disconnected'},\n hotspot: {state: 'disabled'},\n wifi: {state: 'disconnected'},\n }\n}\n\n/** K900 `sr_getvol` response (Mentra Live glasses media step volume 0–15). */\nexport type GlassesMediaVolumeGetResult = {\n vol: number\n statusCode: number\n}\n\n/** K900 `sr_vol` acknowledgment. */\nexport type GlassesMediaVolumeSetResult = {\n statusCode: number\n}\n\nexport type LocalTranscriptionEvent = {\n text: string\n isFinal?: boolean\n transcribeLanguage?: string\n}\n\nexport type LogEvent = {\n message: string\n}\n\nexport type WifiStatus = {state: 'disconnected'} | {state: 'connected'; ssid: string; localIp?: string}\n\nexport type ConnectedWifiStatus = Extract<WifiStatus, {state: 'connected'}>\n\nexport function isConnectedWifiStatus(status: WifiStatus): status is ConnectedWifiStatus {\n return status.state === 'connected'\n}\n\nexport type WifiStatusChangeEvent = WifiStatus & {\n type: \"wifi_status_change\"\n}\n\nexport type HotspotStatus = {state: 'disabled'} | {state: 'enabled'; ssid: string; password: string; localIp: string}\n\nexport type EnabledHotspotStatus = Extract<HotspotStatus, {state: 'enabled'}>\n\nexport function isEnabledHotspotStatus(status: HotspotStatus): status is EnabledHotspotStatus {\n return status.state === 'enabled'\n}\n\nexport type HotspotStatusChangeEvent = HotspotStatus & {\n type: \"hotspot_status_change\"\n}\n\nexport type HotspotErrorEvent = {\n type: \"hotspot_error\"\n error_message: string\n timestamp: number\n}\n\nexport type PhotoResponseEvent =\n | {\n type: \"photo_response\"\n state: \"success\"\n requestId: string\n photoUrl: string\n timestamp: number\n }\n | {\n type: \"photo_response\"\n state: \"error\"\n requestId: string\n timestamp: number\n errorCode?: string\n errorMessage: string\n }\n\nexport type GalleryStatusEvent = {\n type: \"gallery_status\"\n photos: number\n videos: number\n total: number\n has_content: boolean\n camera_busy: boolean\n}\n\nexport type CompatibleGlassesSearchStopEvent = {\n type: \"compatible_glasses_search_stop\"\n device_model: string\n}\n\nexport type HeartbeatSentEvent = {\n type: \"heartbeat_sent\"\n heartbeat_sent: {\n timestamp: number\n }\n}\n\nexport type HeartbeatReceivedEvent = {\n type: \"heartbeat_received\"\n heartbeat_received: {\n timestamp: number\n }\n}\n\nexport type SwipeVolumeStatusEvent = {\n type: \"swipe_volume_status\"\n enabled: boolean\n timestamp: number\n}\n\nexport type SwitchStatusEvent = {\n type: \"switch_status\"\n switch_type?: number\n switchType?: number\n switch_value?: number\n switchValue?: number\n timestamp: number\n}\n\nexport type RgbLedControlResponseEvent =\n | {\n type: \"rgb_led_control_response\"\n state: \"success\"\n requestId: string\n }\n | {\n type: \"rgb_led_control_response\"\n state: \"error\"\n requestId: string\n errorCode: string\n }\n\nexport type RgbLedAction = \"on\" | \"off\"\nexport type RgbLedColor = \"red\" | \"green\" | \"blue\" | \"orange\" | \"white\"\n/** `\"auto\"` enables local button photo/video capture; `\"manual\"` reports button events without local gallery capture. */\nexport type GalleryMode = \"auto\" | \"manual\"\nexport type PhotoSize = \"small\" | \"medium\" | \"large\" | \"full\"\nexport type ButtonPhotoSize = \"small\" | \"medium\" | \"large\"\nexport type PhotoCompression = \"none\" | \"medium\" | \"heavy\"\n\nexport type StreamVideoConfig = {\n width?: number\n height?: number\n bitrate?: number\n frameRate?: number\n}\n\nexport type StreamAudioConfig = {\n bitrate?: number\n sampleRate?: number\n echoCancellation?: boolean\n noiseSuppression?: boolean\n}\n\nexport type StreamStartRequest = {\n type?: \"start_stream\"\n streamUrl: string\n streamId?: string\n keepAlive?: boolean\n keepAliveIntervalSeconds?: number\n flash?: boolean\n sound?: boolean\n video?: StreamVideoConfig\n audio?: StreamAudioConfig\n}\n\nexport type StreamKeepAliveRequest = {\n type?: \"keep_stream_alive\"\n streamId: string\n ackId: string\n}\n\nexport type PairFailureEvent = {\n type: \"pair_failure\"\n error: string\n}\n\nexport type AudioPairingNeededEvent = {\n type: \"audio_pairing_needed\"\n device_name: string\n}\n\nexport type AudioConnectedEvent = {\n type: \"audio_connected\"\n device_name: string\n}\n\nexport type AudioDisconnectedEvent = {\n type: \"audio_disconnected\"\n}\n\nexport type SaveSettingEvent = {\n type: \"save_setting\"\n key: string\n value: any\n}\n\nexport type WsTextEvent = {\n type: \"ws_text\"\n text: string\n}\n\nexport type WsBinEvent = {\n type: \"ws_bin\"\n base64: string\n}\n\nexport type MicPcmEvent = {\n type: \"mic_pcm\"\n pcm: ArrayBuffer\n}\n\nexport type MicLc3Event = {\n type: \"mic_lc3\"\n lc3: ArrayBuffer\n}\n\nexport type StreamStatusLifecycleState = \"initializing\" | \"streaming\" | \"stopping\" | \"stopped\"\nexport type StreamStatusReconnectState = \"reconnecting\" | \"reconnected\" | \"reconnect_failed\"\nexport type StreamStatusState = StreamStatusLifecycleState | StreamStatusReconnectState | \"error\"\n\nexport type StreamStatusEvent =\n | {\n type: \"stream_status\"\n kind: \"lifecycle\"\n status: StreamStatusLifecycleState\n streamId?: string\n timestamp?: number\n }\n | {\n type: \"stream_status\"\n kind: \"reconnect\"\n status: \"reconnecting\"\n streamId?: string\n attempt: number\n maxAttempts: number\n reason: string\n timestamp?: number\n }\n | {\n type: \"stream_status\"\n kind: \"reconnect\"\n status: \"reconnected\"\n streamId?: string\n attempt: number\n timestamp?: number\n }\n | {\n type: \"stream_status\"\n kind: \"reconnect\"\n status: \"reconnect_failed\"\n streamId?: string\n maxAttempts: number\n timestamp?: number\n }\n | {\n type: \"stream_status\"\n kind: \"error\"\n status: \"error\"\n streamId?: string\n errorDetails: string\n timestamp?: number\n }\n | {\n type: \"stream_status\"\n kind: \"snapshot\"\n status: \"streaming\" | \"reconnecting\" | \"stopped\"\n streaming: boolean\n reconnecting: boolean\n streamId?: string\n attempt?: number\n timestamp?: number\n }\n\nexport type KeepAliveAckEvent = {\n type: \"keep_alive_ack\"\n streamId: string\n ackId: string\n timestamp?: number\n}\n\nexport type MtkUpdateCompleteEvent = {\n type: \"mtk_update_complete\"\n message: string\n timestamp: number\n}\n\nexport type OtaUpdateAvailableEvent = {\n type: \"ota_update_available\"\n version_code?: number\n version_name?: string\n updates?: string[]\n total_size?: number\n cache_ready?: boolean\n}\n\n/** @deprecated Glasses no longer emit ota_progress; use {@link OtaStatusEvent} and legacy store mapping. */\nexport type OtaProgressEvent = {\n type: \"ota_progress\"\n stage?: OtaStage\n status?: OtaProgressStatus\n progress?: number\n bytes_downloaded?: number\n total_bytes?: number\n current_update?: string\n error_message?: string\n}\n\nexport type OtaStartAckEvent = {\n type: \"ota_start_ack\"\n timestamp: number\n}\n\nexport type OtaStatusEvent = {\n type: \"ota_status\"\n session_id: string\n total_steps: number\n current_step: number\n step_type: 'apk' | 'mtk' | 'bes'\n phase: 'download' | 'install'\n step_percent: number\n overall_percent: number\n status: 'in_progress' | 'step_complete' | 'complete' | 'failed' | 'idle'\n error_message?: string\n}\n\n/** Nex BLE protobuf trace (NexEventUtils); payload matches native Map keys. */\nexport type BleCommandTraceEvent = {\n command: string\n commandText: string\n timestamp: number\n}\n\nexport type MiniappSelectedEvent = {\n type: \"miniapp_selected\"\n packageName: string\n}\n\n// Union type of all Bluetooth SDK events\nexport type BluetoothSdkEvent = Parameters<BluetoothSdkModuleEvents[keyof BluetoothSdkModuleEvents]>[0]\n\nexport type BluetoothSdkModuleEvents = {\n glasses_status: (changed: Partial<GlassesStatus>) => void\n bluetooth_status: (changed: Partial<BluetoothStatus>) => void\n log: (event: LogEvent) => void\n device_discovered: (device: Device) => void\n default_device_changed: (event: {device?: Device}) => void\n // Individual event handlers\n glasses_not_ready: (event: GlassesNotReadyEvent) => void\n button_press: (event: ButtonPressEvent) => void\n touch_event: (event: TouchEvent) => void\n head_up: (event: HeadUpEvent) => void\n vad_status: (event: VadStatusEvent) => void\n battery_status: (event: BatteryStatusEvent) => void\n local_transcription: (event: LocalTranscriptionEvent) => void\n wifi_status_change: (event: WifiStatusChangeEvent) => void\n hotspot_status_change: (event: HotspotStatusChangeEvent) => void\n hotspot_error: (event: HotspotErrorEvent) => void\n photo_response: (event: PhotoResponseEvent) => void\n gallery_status: (event: GalleryStatusEvent) => void\n compatible_glasses_search_stop: (event: CompatibleGlassesSearchStopEvent) => void\n heartbeat_sent: (event: HeartbeatSentEvent) => void\n heartbeat_received: (event: HeartbeatReceivedEvent) => void\n swipe_volume_status: (event: SwipeVolumeStatusEvent) => void\n switch_status: (event: SwitchStatusEvent) => void\n rgb_led_control_response: (event: RgbLedControlResponseEvent) => void\n pair_failure: (event: PairFailureEvent) => void\n audio_pairing_needed: (event: AudioPairingNeededEvent) => void\n audio_connected: (event: AudioConnectedEvent) => void\n audio_disconnected: (event: AudioDisconnectedEvent) => void\n save_setting: (event: SaveSettingEvent) => void\n ws_text: (event: WsTextEvent) => void\n ws_bin: (event: WsBinEvent) => void\n mic_pcm: (event: MicPcmEvent) => void\n mic_lc3: (event: MicLc3Event) => void\n stream_status: (event: StreamStatusEvent) => void\n keep_alive_ack: (event: KeepAliveAckEvent) => void\n mtk_update_complete: (event: MtkUpdateCompleteEvent) => void\n ota_update_available: (event: OtaUpdateAvailableEvent) => void\n ota_start_ack: (event: OtaStartAckEvent) => void\n ota_status: (event: OtaStatusEvent) => void\n send_command_to_ble: (event: BleCommandTraceEvent) => void\n receive_command_from_ble: (event: BleCommandTraceEvent) => void\n miniapp_selected: (event: MiniappSelectedEvent) => void\n}\n\n// OTA update status types\nexport type OtaStage = \"download\" | \"install\"\nexport type OtaProgressStatus = \"STARTED\" | \"PROGRESS\" | \"FINISHED\" | \"FAILED\"\n\nexport interface OtaStatus {\n sessionId: string\n totalSteps: number\n currentStep: number\n stepType: 'apk' | 'mtk' | 'bes'\n phase: 'download' | 'install'\n stepPercent: number\n overallPercent: number\n status: 'in_progress' | 'step_complete' | 'complete' | 'failed' | 'idle'\n error?: string\n}\n\nexport interface OtaUpdateInfo {\n available: boolean\n versionCode: number\n versionName: string\n updates: string[] // [\"apk\", \"mtk\", \"bes\"]\n totalSize: number\n cacheReady?: boolean\n}\n\nexport interface OtaProgress {\n stage: OtaStage\n status: OtaProgressStatus\n progress: number\n bytesDownloaded: number\n totalBytes: number\n currentUpdate: string\n errorMessage?: string\n}\n\nexport interface GlassesStatus {\n // state:\n connection: GlassesConnectionStatus\n micEnabled: boolean\n btcConnected: boolean\n signalStrength: number\n /** Milliseconds since epoch when signalStrength was last refreshed by the phone BLE stack. */\n signalStrengthUpdatedAt: number\n // device info\n deviceModel: string\n androidVersion: string\n fwVersion: string\n besFwVersion: string\n mtkFwVersion: string\n btMacAddress: string\n leftMacAddress: string\n rightMacAddress: string\n buildNumber: string\n otaVersionUrl: string\n appVersion: string\n bluetoothName: string\n serialNumber: string\n style: string\n color: string\n // wifi info\n wifi: WifiStatus\n // battery info\n batteryLevel: number\n charging: boolean\n caseBatteryLevel: number\n caseCharging: boolean\n caseOpen: boolean\n caseRemoved: boolean\n // hotspot info\n hotspot: HotspotStatus\n // OTA update info\n otaUpdateAvailable: OtaUpdateInfo | null\n otaProgress: OtaProgress | null\n otaInProgress: boolean\n // ring info\n controllerConnected: boolean\n controllerFullyBooted: boolean\n controllerMacAddress: string\n controllerBatteryLevel: number\n controllerSignalStrength: number\n}\n\ninterface DashboardMenuItem {\n name: string\n packageName: string\n running: boolean\n}\n\nexport interface CoreSettings {\n menu_apps: DashboardMenuItem[]\n}\n\nexport type MicRanking = \"auto\" | \"phone\" | \"glasses\" | \"bluetooth\"\n\nexport interface Device {\n id: string\n model: string\n name: string\n address?: string\n rssi?: number\n}\n\nexport interface DeviceScanRequest {\n model: string\n}\n\nexport interface ConnectOptions {\n saveAsDefault?: boolean\n cancelExistingConnectionAttempt?: boolean\n}\n\nexport interface WifiSearchResult {\n ssid: string\n requiresPassword: boolean\n signalStrength: number\n /** Frequency in MHz (from glasses scan). 5 GHz band is typically 5170–5825. Omitted if unknown. */\n frequency?: number\n}\n\nexport interface BluetoothStatus {\n // state:\n searching: boolean\n searchingController: boolean\n default_wearable?: string\n device_name?: string\n device_address?: string\n systemMicUnavailable: boolean\n micRanking: MicRanking[]\n currentMic: MicRanking | null\n searchResults: Device[]\n wifiScanResults: WifiSearchResult[]\n lastLog: string[]\n otherBtConnected: boolean\n // desired settings the SDK sends to compatible connected glasses:\n gallery_mode: boolean\n}\n"]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { NativeModule } from "expo";
|
|
2
|
+
import { ConnectOptions, BluetoothSdkModuleEvents, BluetoothStatus, DeviceScanRequest, GalleryMode, Device, GlassesMediaVolumeGetResult, GlassesMediaVolumeSetResult, GlassesStatus, PhotoCompression, PhotoSize, RgbLedAction, RgbLedColor, StreamKeepAliveRequest, StreamStartRequest } from "./BluetoothSdk.types";
|
|
3
|
+
type GlassesListener = (changed: Partial<GlassesStatus>) => void;
|
|
4
|
+
type BluetoothStatusListener = (changed: Partial<BluetoothStatus>) => void;
|
|
5
|
+
declare class BluetoothSdkModule extends NativeModule<BluetoothSdkModuleEvents> {
|
|
6
|
+
getGlassesStatus(): Promise<GlassesStatus>;
|
|
7
|
+
getBluetoothStatus(): Promise<BluetoothStatus>;
|
|
8
|
+
getDefaultDevice(): Promise<Device | null>;
|
|
9
|
+
update(category: string, values: Record<string, any>): Promise<void>;
|
|
10
|
+
displayEvent(params: Record<string, any>): Promise<void>;
|
|
11
|
+
displayText(params: Record<string, any>): Promise<void>;
|
|
12
|
+
clearDisplay(): Promise<void>;
|
|
13
|
+
requestStatus(): Promise<void>;
|
|
14
|
+
connectDefault(options?: ConnectOptions): Promise<void>;
|
|
15
|
+
connectDefaultWithOptions(options: Required<ConnectOptions>): Promise<void>;
|
|
16
|
+
setDefaultDevice(device: Device | null): Promise<void>;
|
|
17
|
+
clearDefaultDevice(): Promise<void>;
|
|
18
|
+
startScan(params: DeviceScanRequest): Promise<void>;
|
|
19
|
+
connect(device: Device, options?: ConnectOptions): Promise<void>;
|
|
20
|
+
connectWithOptions(device: Device, options: Required<ConnectOptions>): Promise<void>;
|
|
21
|
+
cancelConnectionAttempt(): Promise<void>;
|
|
22
|
+
connectDefaultController(): Promise<void>;
|
|
23
|
+
disconnectController(): Promise<void>;
|
|
24
|
+
connectSimulated(): Promise<void>;
|
|
25
|
+
disconnect(): Promise<void>;
|
|
26
|
+
forget(): Promise<void>;
|
|
27
|
+
forgetController(): Promise<void>;
|
|
28
|
+
showDashboard(): Promise<void>;
|
|
29
|
+
ping(): Promise<void>;
|
|
30
|
+
dbg1(): Promise<void>;
|
|
31
|
+
dbg2(): Promise<void>;
|
|
32
|
+
sendIncidentId(incidentId: string, apiBaseUrl?: string | null): Promise<void>;
|
|
33
|
+
requestWifiScan(): Promise<void>;
|
|
34
|
+
sendWifiCredentials(ssid: string, password: string): Promise<void>;
|
|
35
|
+
forgetWifiNetwork(ssid: string): Promise<void>;
|
|
36
|
+
setHotspotState(enabled: boolean): Promise<void>;
|
|
37
|
+
/** Logs current WiFi frequency (MHz) and 5 GHz band to Android logcat. */
|
|
38
|
+
logCurrentWifiFrequency(): Promise<void>;
|
|
39
|
+
setGalleryMode(mode: GalleryMode): Promise<void>;
|
|
40
|
+
queryGalleryStatus(): Promise<void>;
|
|
41
|
+
photoRequest(requestId: string, appId: string, size: PhotoSize, webhookUrl: string | null, authToken: string | null, compress: PhotoCompression, flash: boolean, sound: boolean): Promise<void>;
|
|
42
|
+
sendOtaStart(): Promise<void>;
|
|
43
|
+
sendOtaQueryStatus(): Promise<void>;
|
|
44
|
+
requestVersionInfo(): Promise<void>;
|
|
45
|
+
startVideoRecording(requestId: string, save: boolean, flash: boolean, sound: boolean): Promise<void>;
|
|
46
|
+
stopVideoRecording(requestId: string): Promise<void>;
|
|
47
|
+
startStream(params: StreamStartRequest): Promise<void>;
|
|
48
|
+
stopStream(): Promise<void>;
|
|
49
|
+
keepStreamAlive(params: StreamKeepAliveRequest): Promise<void>;
|
|
50
|
+
setMicState(sendPcmData: boolean, sendTranscript: boolean, bypassVad: boolean): Promise<void>;
|
|
51
|
+
restartTranscriber(): Promise<void>;
|
|
52
|
+
setOwnAppAudioPlaying(playing: boolean): Promise<void>;
|
|
53
|
+
/** Mentra Live only: K900 `cs_getvol` / `sr_getvol`. */
|
|
54
|
+
getGlassesMediaVolume(): Promise<GlassesMediaVolumeGetResult>;
|
|
55
|
+
/** Mentra Live only: K900 `cs_vol` / `sr_vol`; level clamped 0–15 on native. */
|
|
56
|
+
setGlassesMediaVolume(level: number): Promise<GlassesMediaVolumeSetResult>;
|
|
57
|
+
rgbLedControl(requestId: string, packageName: string | null, action: RgbLedAction, color: RgbLedColor | null, ontime: number, offtime: number, count: number): Promise<void>;
|
|
58
|
+
setSttModelDetails(path: string, languageCode: string): Promise<void>;
|
|
59
|
+
getSttModelPath(): Promise<string>;
|
|
60
|
+
checkSttModelAvailable(): Promise<boolean>;
|
|
61
|
+
validateSttModel(path: string): Promise<boolean>;
|
|
62
|
+
extractTarBz2(sourcePath: string, destinationPath: string): Promise<boolean>;
|
|
63
|
+
updateGlasses(values: Partial<GlassesStatus>): Promise<void>;
|
|
64
|
+
updateBluetoothSettings(values: Record<string, any>): Promise<void>;
|
|
65
|
+
onGlassesStatus(callback: GlassesListener): () => void;
|
|
66
|
+
onBluetoothStatus(callback: BluetoothStatusListener): () => void;
|
|
67
|
+
getMemoryMB(): number;
|
|
68
|
+
}
|
|
69
|
+
declare const NativeBluetoothSdkModule: BluetoothSdkModule;
|
|
70
|
+
export default NativeBluetoothSdkModule;
|
|
71
|
+
//# sourceMappingURL=BluetoothSdkModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BluetoothSdkModule.d.ts","sourceRoot":"","sources":["../src/BluetoothSdkModule.ts"],"names":[],"mappings":"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"}
|