@mentra/bluetooth-sdk 0.1.21-beta.0 → 0.1.21-beta.2
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 +22 -11
- package/android/build.gradle +3 -0
- package/android/src/main/AndroidManifest.xml +3 -1
- package/android/src/main/java/com/mentra/bluetoothsdk/BluetoothSdkAnalytics.kt +34 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/BluetoothSdkDefaults.kt +1 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt +43 -3
- package/android/src/main/java/com/mentra/bluetoothsdk/Bridge.kt +7 -2
- package/android/src/main/java/com/mentra/bluetoothsdk/DeviceManager.kt +82 -6
- package/android/src/main/java/com/mentra/bluetoothsdk/DeviceStore.kt +5 -1
- package/android/src/main/java/com/mentra/bluetoothsdk/MentraBluetoothSdk.kt +32 -3
- package/android/src/main/java/com/mentra/bluetoothsdk/OtaManifest.kt +43 -3
- package/android/src/main/java/com/mentra/bluetoothsdk/camera/CameraModels.kt +17 -4
- package/android/src/main/java/com/mentra/bluetoothsdk/debug/BleTraceLogger.kt +1 -1
- package/android/src/main/java/com/mentra/bluetoothsdk/services/Foreground.kt +53 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/Ar99.java +2653 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/MentraLive.kt +161 -14
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/SGCManager.kt +3 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/ar99/ota/Ar99OtaManager.java +566 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/ar99/ota/OtaByteUtils.java +18 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/ar99/ota/OtaCommandConstants.java +35 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/ar99/ota/OtaCrc32Util.java +13 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/ar99/ota/OtaGattTransport.java +11 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/sgcs/ar99/ota/OtaProtocol.java +92 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/streaming/StreamModels.kt +41 -1
- package/android/src/main/java/com/mentra/bluetoothsdk/types/DeviceModels.kt +7 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/BleJsonCompact.java +8 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/Constants.kt +2 -1
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/PhoneAudioMonitor.kt +45 -0
- package/android/src/main/java/com/mentra/bluetoothsdk/utils/audio/Ar99OpusPcmDecoder.java +398 -0
- package/android/src/test/java/com/mentra/bluetoothsdk/OtaManifestDowngradeTest.kt +86 -0
- package/android/src/test/java/com/mentra/bluetoothsdk/StreamStatusEventTest.kt +29 -0
- package/android/src/test/java/com/mentra/bluetoothsdk/camera/PhotoRequestTest.kt +30 -0
- package/android/src/test/java/com/mentra/bluetoothsdk/sgcs/Ar99AdvertisementMatcherTest.java +22 -0
- package/android/src/test/java/com/mentra/bluetoothsdk/utils/BleJsonCompactTest.java +20 -0
- package/android/src/test/java/com/mentra/bluetoothsdk/utils/PhoneAudioMonitorTest.kt +45 -0
- package/build/BluetoothSdk.types.d.ts +58 -25
- package/build/BluetoothSdk.types.d.ts.map +1 -1
- package/build/BluetoothSdk.types.js +2 -1
- package/build/BluetoothSdk.types.js.map +1 -1
- package/build/_internal.d.ts +1 -0
- package/build/_internal.d.ts.map +1 -1
- package/build/_internal.js +1 -0
- package/build/_internal.js.map +1 -1
- package/build/_private/BluetoothSdkModule.d.ts +8 -2
- package/build/_private/BluetoothSdkModule.d.ts.map +1 -1
- package/build/_private/BluetoothSdkModule.js +6 -3
- package/build/_private/BluetoothSdkModule.js.map +1 -1
- package/build/_private/cameraRequestPayload.d.ts +1 -1
- package/build/_private/cameraRequestPayload.d.ts.map +1 -1
- package/build/_private/cameraRequestPayload.js +6 -0
- package/build/_private/cameraRequestPayload.js.map +1 -1
- package/build/_private/photoRequestPayload.d.ts.map +1 -1
- package/build/_private/photoRequestPayload.js +10 -1
- package/build/_private/photoRequestPayload.js.map +1 -1
- package/build/_private/sdkOtaManifest.d.ts +20 -0
- package/build/_private/sdkOtaManifest.d.ts.map +1 -0
- package/build/_private/sdkOtaManifest.js +28 -0
- package/build/_private/sdkOtaManifest.js.map +1 -0
- package/build/index.d.ts +1 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +7 -1
- package/build/index.js.map +1 -1
- package/ios/BluetoothSdkModule.swift +41 -2
- package/ios/Source/BluetoothSdkDefaults.swift +2 -1
- package/ios/Source/Bridge.swift +15 -3
- package/ios/Source/DeviceManager.swift +67 -17
- package/ios/Source/DeviceStore.swift +5 -1
- package/ios/Source/MentraBluetoothSDK.swift +37 -8
- package/ios/Source/OtaManifest.swift +47 -4
- package/ios/Source/camera/CameraModels.swift +20 -5
- package/ios/Source/internal/BleTraceLogger.swift +1 -1
- package/ios/Source/internal/BluetoothSdkAnalytics.swift +39 -0
- package/ios/Source/sgcs/Ar99.swift +2451 -0
- package/ios/Source/sgcs/MentraLive.swift +174 -38
- package/ios/Source/sgcs/SGCManager.swift +8 -0
- package/ios/Source/sgcs/ar99/ota/Ar99OtaManager.swift +637 -0
- package/ios/Source/streaming/StreamModels.swift +71 -7
- package/ios/Source/types/DeviceModels.swift +13 -0
- package/ios/Source/utils/BleJsonCompact.swift +8 -0
- package/ios/Source/utils/Constants.swift +2 -0
- package/ios/Source/utils/PhoneAudioMonitor.swift +4 -0
- package/package.json +1 -1
- package/src/BluetoothSdk.types.ts +61 -28
- package/src/_internal.ts +1 -0
- package/src/_private/BluetoothSdkModule.ts +20 -6
- package/src/_private/cameraRequestPayload.ts +8 -2
- package/src/_private/photoRequestPayload.ts +12 -2
- package/src/_private/sdkOtaManifest.ts +31 -0
- package/src/index.ts +9 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK-pinned OTA manifest URL derivation.
|
|
3
|
+
*
|
|
4
|
+
* Each Bluetooth SDK release publishes an immutable manifest
|
|
5
|
+
* (`bluetooth-sdk-<version>-version.json`) pinning the exact ASG artifact paired with that SDK
|
|
6
|
+
* version. The URL is derived from this package's own version — the version is frozen into the
|
|
7
|
+
* published artifact, so this is equivalent to baking the URL at release time while keeping the
|
|
8
|
+
* manifest itself replaceable as an operational escape hatch (asset moves, CDN migration).
|
|
9
|
+
*
|
|
10
|
+
* Mirrors the native derivation in `OtaManifestDefaults.defaultOtaVersionUrl()` (Kotlin) /
|
|
11
|
+
* `BluetoothSdkDefaults` (Swift).
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
const SDK_OTA_RELEASE_BASE_URL = "https://github.com/Mentra-Community/MentraOS/releases/download/bluetooth-sdk-ota"
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
17
|
+
const packageJson = require("../../package.json") as {version?: string}
|
|
18
|
+
|
|
19
|
+
/** This Bluetooth SDK package's own version, as published. */
|
|
20
|
+
export const BLUETOOTH_SDK_VERSION: string = (packageJson.version ?? "").trim()
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* The immutable manifest URL pinning the ASG artifact paired with this SDK version, or null when
|
|
24
|
+
* the package version is unavailable (malformed workspace state).
|
|
25
|
+
*/
|
|
26
|
+
export function sdkPinnedOtaManifestUrl(): string | null {
|
|
27
|
+
if (!BLUETOOTH_SDK_VERSION) {
|
|
28
|
+
return null
|
|
29
|
+
}
|
|
30
|
+
return `${SDK_OTA_RELEASE_BASE_URL}/bluetooth-sdk-${BLUETOOTH_SDK_VERSION}-version.json`
|
|
31
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -44,6 +44,7 @@ const PUBLIC_EVENT_NAMES = new Set<BluetoothSdkEventName>([
|
|
|
44
44
|
"stream_status",
|
|
45
45
|
"ota_start_ack",
|
|
46
46
|
"ota_status",
|
|
47
|
+
"ar99_ota_status",
|
|
47
48
|
"version_info",
|
|
48
49
|
"extraction_progress",
|
|
49
50
|
])
|
|
@@ -96,9 +97,10 @@ export const BluetoothSdk: BluetoothSdkPublicModule = Object.freeze({
|
|
|
96
97
|
setHotspotState: bindPublicMethod("setHotspotState"),
|
|
97
98
|
setGalleryModeEnabled: bindPublicMethod("setGalleryModeEnabled"),
|
|
98
99
|
setVoiceActivityDetectionEnabled: bindPublicMethod("setVoiceActivityDetectionEnabled"),
|
|
100
|
+
setLoudnessGateEnabled: bindPublicMethod("setLoudnessGateEnabled"),
|
|
99
101
|
/**
|
|
100
102
|
* @deprecated Sticky action-button photo presets are deprecated. Prefer per-request
|
|
101
|
-
* `requestPhoto(...)` options (e.g. `mode: "text"` for
|
|
103
|
+
* `requestPhoto(...)` options (e.g. `mode: "text"` for text sensor size/crop, or explicit per-shot
|
|
102
104
|
* fields). Still functional until removed in a future release.
|
|
103
105
|
*/
|
|
104
106
|
setPhotoCaptureDefaults: bindPublicMethod("setPhotoCaptureDefaults"),
|
|
@@ -134,6 +136,10 @@ export const BluetoothSdk: BluetoothSdkPublicModule = Object.freeze({
|
|
|
134
136
|
requestVersionInfo: bindPublicMethod("requestVersionInfo"),
|
|
135
137
|
checkForOtaUpdate: bindPublicMethod("checkForOtaUpdate"),
|
|
136
138
|
startOtaUpdate,
|
|
139
|
+
startAr99OtaFromFile: bindPublicMethod("startAr99OtaFromFile"),
|
|
140
|
+
cancelAr99Ota: bindPublicMethod("cancelAr99Ota"),
|
|
141
|
+
sendAr99FactoryReset: bindPublicMethod("sendAr99FactoryReset"),
|
|
142
|
+
buildAr99OtaSignature: bindPublicMethod("buildAr99OtaSignature"),
|
|
137
143
|
setSttModelDetails: bindPublicMethod("setSttModelDetails"),
|
|
138
144
|
getSttModelPath: bindPublicMethod("getSttModelPath"),
|
|
139
145
|
checkSttModelAvailable: bindPublicMethod("checkSttModelAvailable"),
|
|
@@ -164,6 +170,7 @@ export {
|
|
|
164
170
|
|
|
165
171
|
export type {
|
|
166
172
|
AccelEvent,
|
|
173
|
+
Ar99OtaStatusEvent,
|
|
167
174
|
AudioConnectedEvent,
|
|
168
175
|
AudioDisconnectedEvent,
|
|
169
176
|
AudioPairingNeededEvent,
|
|
@@ -214,6 +221,7 @@ export type {
|
|
|
214
221
|
PhotoFpsRange,
|
|
215
222
|
PhotoMeteredPreview,
|
|
216
223
|
PhotoMode,
|
|
224
|
+
PhotoTransferMethod,
|
|
217
225
|
PhotoResponseEvent,
|
|
218
226
|
PhotoRequestedCaptureConfig,
|
|
219
227
|
PhotoRequestParams,
|