@mentra/bluetooth-sdk 0.1.0 → 0.1.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 +7 -22
- package/android/src/main/java/com/mentra/bluetoothsdk/BluetoothSdkModule.kt +16 -17
- package/android/src/main/java/com/mentra/bluetoothsdk/MentraBluetoothSdk.kt +69 -10
- package/build/BluetoothSdk.types.d.ts +86 -12
- package/build/BluetoothSdk.types.d.ts.map +1 -1
- package/build/BluetoothSdk.types.js +11 -0
- package/build/BluetoothSdk.types.js.map +1 -1
- package/build/BluetoothSdkModule.d.ts +20 -7
- package/build/BluetoothSdkModule.d.ts.map +1 -1
- package/build/BluetoothSdkModule.js +114 -0
- package/build/BluetoothSdkModule.js.map +1 -1
- package/ios/BluetoothSdkModule.swift +15 -29
- package/ios/Source/MentraBluetoothSDK.swift +66 -13
- package/package.json +1 -1
- package/src/BluetoothSdk.types.ts +89 -13
- package/src/BluetoothSdkModule.ts +207 -13
package/README.md
CHANGED
|
@@ -107,41 +107,23 @@ iOS apps should include usage descriptions:
|
|
|
107
107
|
|
|
108
108
|
## Minimal Usage
|
|
109
109
|
|
|
110
|
-
`
|
|
110
|
+
`connectFirst()` scans for the first matching glasses and connects to them. It times out after 15 seconds by default. Use `startScan()` plus `onBluetoothStatus()` only when your app needs to present a custom device picker.
|
|
111
111
|
|
|
112
112
|
```ts
|
|
113
113
|
import BluetoothSdk, {
|
|
114
|
+
DeviceModels,
|
|
114
115
|
isReadyGlassesConnectionStatus,
|
|
115
|
-
type Device,
|
|
116
116
|
} from '@mentra/bluetooth-sdk'
|
|
117
117
|
|
|
118
|
-
const firstDevice = new Promise<Device>((resolve) => {
|
|
119
|
-
let removeBluetoothListener = () => {}
|
|
120
|
-
removeBluetoothListener = BluetoothSdk.onBluetoothStatus((status) => {
|
|
121
|
-
const device = status.searchResults?.[0]
|
|
122
|
-
if (device) {
|
|
123
|
-
removeBluetoothListener()
|
|
124
|
-
resolve(device)
|
|
125
|
-
}
|
|
126
|
-
})
|
|
127
|
-
})
|
|
128
|
-
|
|
129
118
|
const removeGlassesListener = BluetoothSdk.onGlassesStatus((status) => {
|
|
130
119
|
console.log('Glasses status changed', status)
|
|
131
120
|
})
|
|
132
121
|
|
|
133
|
-
await BluetoothSdk.
|
|
134
|
-
|
|
135
|
-
await BluetoothSdk.connect(await firstDevice)
|
|
122
|
+
await BluetoothSdk.connectFirst(DeviceModels.MentraLive)
|
|
136
123
|
|
|
137
124
|
const glasses = await BluetoothSdk.getGlassesStatus()
|
|
138
125
|
if (isReadyGlassesConnectionStatus(glasses.connection)) {
|
|
139
|
-
await BluetoothSdk.displayText(
|
|
140
|
-
text: 'Hello from Mentra',
|
|
141
|
-
x: 0,
|
|
142
|
-
y: 0,
|
|
143
|
-
size: 24,
|
|
144
|
-
})
|
|
126
|
+
await BluetoothSdk.displayText('Hello from Mentra', 0, 0, 24)
|
|
145
127
|
}
|
|
146
128
|
|
|
147
129
|
removeGlassesListener()
|
|
@@ -184,6 +166,8 @@ await saveDeviceToYourAppStorage(null)
|
|
|
184
166
|
```ts
|
|
185
167
|
await BluetoothSdk.clearDisplay()
|
|
186
168
|
await BluetoothSdk.showDashboard()
|
|
169
|
+
await BluetoothSdk.setBrightness(60, false)
|
|
170
|
+
await BluetoothSdk.setDashboardPosition(4, 2)
|
|
187
171
|
|
|
188
172
|
await BluetoothSdk.requestWifiScan()
|
|
189
173
|
await BluetoothSdk.sendWifiCredentials('Office WiFi', 'secret')
|
|
@@ -193,6 +177,7 @@ await BluetoothSdk.setHotspotState(true)
|
|
|
193
177
|
await BluetoothSdk.setGalleryMode('auto')
|
|
194
178
|
await BluetoothSdk.setGalleryMode('manual')
|
|
195
179
|
|
|
180
|
+
await BluetoothSdk.setPreferredMic('auto')
|
|
196
181
|
await BluetoothSdk.setMicState(true, true, false)
|
|
197
182
|
await BluetoothSdk.setOwnAppAudioPlaying(false)
|
|
198
183
|
|
|
@@ -246,14 +246,12 @@ class BluetoothSdkModule : Module() {
|
|
|
246
246
|
sdk?.displayEvent(DisplayEventRequest(params))
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
AsyncFunction("displayText") {
|
|
249
|
+
AsyncFunction("displayText") { text: String, x: Int?, y: Int?, size: Int? ->
|
|
250
250
|
sdk?.displayText(
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
size = (params["size"] as? Number)?.toInt() ?: 24,
|
|
256
|
-
)
|
|
251
|
+
text = text,
|
|
252
|
+
x = x ?: 0,
|
|
253
|
+
y = y ?: 0,
|
|
254
|
+
size = size ?: 24,
|
|
257
255
|
)
|
|
258
256
|
}
|
|
259
257
|
|
|
@@ -292,8 +290,7 @@ class BluetoothSdkModule : Module() {
|
|
|
292
290
|
|
|
293
291
|
AsyncFunction("forgetController") { deviceManager?.forgetController() }
|
|
294
292
|
|
|
295
|
-
AsyncFunction("startScan") {
|
|
296
|
-
val model = params["model"] as? String ?: DeviceTypes.LIVE
|
|
293
|
+
AsyncFunction("startScan") { model: String ->
|
|
297
294
|
sdk?.startScan(DeviceModel.fromDeviceType(model))
|
|
298
295
|
}
|
|
299
296
|
|
|
@@ -413,15 +410,17 @@ class BluetoothSdkModule : Module() {
|
|
|
413
410
|
// MARK: - Microphone Commands
|
|
414
411
|
|
|
415
412
|
AsyncFunction("setMicState") {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
bypassVad: Boolean
|
|
413
|
+
enabled: Boolean,
|
|
414
|
+
useGlassesMic: Boolean?,
|
|
415
|
+
bypassVad: Boolean?,
|
|
416
|
+
sendTranscript: Boolean?,
|
|
417
|
+
sendLc3Data: Boolean? ->
|
|
419
418
|
sdk?.setMicState(
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
419
|
+
enabled = enabled,
|
|
420
|
+
useGlassesMic = useGlassesMic ?: true,
|
|
421
|
+
bypassVad = bypassVad ?: false,
|
|
422
|
+
sendTranscript = sendTranscript ?: false,
|
|
423
|
+
sendLc3Data = sendLc3Data ?: false,
|
|
425
424
|
)
|
|
426
425
|
}
|
|
427
426
|
|
|
@@ -161,6 +161,11 @@ class MentraBluetoothSdk private constructor(
|
|
|
161
161
|
deviceManager.forget()
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
+
@JvmOverloads
|
|
165
|
+
fun displayText(text: String, x: Int = 0, y: Int = 0, size: Int = 24) {
|
|
166
|
+
displayText(DisplayTextRequest(text = text, x = x, y = y, size = size))
|
|
167
|
+
}
|
|
168
|
+
|
|
164
169
|
fun displayText(request: DisplayTextRequest) {
|
|
165
170
|
deviceManager.displayText(request.toMap())
|
|
166
171
|
}
|
|
@@ -187,9 +192,13 @@ class MentraBluetoothSdk private constructor(
|
|
|
187
192
|
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "auto_brightness", enabled)
|
|
188
193
|
}
|
|
189
194
|
|
|
195
|
+
fun setDashboardPosition(height: Int, depth: Int) {
|
|
196
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "dashboard_height", height)
|
|
197
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "dashboard_depth", depth)
|
|
198
|
+
}
|
|
199
|
+
|
|
190
200
|
fun setDashboardPosition(request: DashboardPositionRequest) {
|
|
191
|
-
|
|
192
|
-
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "dashboard_depth", request.depth)
|
|
201
|
+
setDashboardPosition(height = request.height, depth = request.depth)
|
|
193
202
|
}
|
|
194
203
|
|
|
195
204
|
fun setDashboardMenu(items: List<DashboardMenuItem>) {
|
|
@@ -212,14 +221,22 @@ class MentraBluetoothSdk private constructor(
|
|
|
212
221
|
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "gallery_mode", mode == GalleryMode.AUTO)
|
|
213
222
|
}
|
|
214
223
|
|
|
224
|
+
fun setButtonPhotoSettings(size: ButtonPhotoSize) {
|
|
225
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "button_photo_size", size.value)
|
|
226
|
+
}
|
|
227
|
+
|
|
215
228
|
fun setButtonPhotoSettings(settings: ButtonPhotoSettings) {
|
|
216
|
-
|
|
229
|
+
setButtonPhotoSettings(size = settings.size)
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
fun setButtonVideoRecordingSettings(width: Int, height: Int, fps: Int) {
|
|
233
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "button_video_width", width)
|
|
234
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "button_video_height", height)
|
|
235
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "button_video_fps", fps)
|
|
217
236
|
}
|
|
218
237
|
|
|
219
238
|
fun setButtonVideoRecordingSettings(settings: ButtonVideoRecordingSettings) {
|
|
220
|
-
|
|
221
|
-
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "button_video_height", settings.height)
|
|
222
|
-
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "button_video_fps", settings.fps)
|
|
239
|
+
setButtonVideoRecordingSettings(width = settings.width, height = settings.height, fps = settings.fps)
|
|
223
240
|
}
|
|
224
241
|
|
|
225
242
|
fun setButtonCameraLed(enabled: Boolean) {
|
|
@@ -238,11 +255,53 @@ class MentraBluetoothSdk private constructor(
|
|
|
238
255
|
)
|
|
239
256
|
}
|
|
240
257
|
|
|
258
|
+
fun setMicState(
|
|
259
|
+
enabled: Boolean,
|
|
260
|
+
useGlassesMic: Boolean = true,
|
|
261
|
+
bypassVad: Boolean = false,
|
|
262
|
+
sendTranscript: Boolean = false,
|
|
263
|
+
sendLc3Data: Boolean = false,
|
|
264
|
+
) {
|
|
265
|
+
if (enabled) {
|
|
266
|
+
DeviceStore.apply(
|
|
267
|
+
ObservableStore.BLUETOOTH_CATEGORY,
|
|
268
|
+
"preferred_mic",
|
|
269
|
+
if (useGlassesMic) MicPreference.GLASSES.value else MicPreference.PHONE.value,
|
|
270
|
+
)
|
|
271
|
+
}
|
|
272
|
+
applyMicState(
|
|
273
|
+
sendPcmData = enabled,
|
|
274
|
+
sendTranscript = enabled && sendTranscript,
|
|
275
|
+
bypassVad = bypassVad,
|
|
276
|
+
sendLc3Data = enabled && sendLc3Data,
|
|
277
|
+
)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
@Deprecated(
|
|
281
|
+
"Use setMicState(enabled = ..., useGlassesMic = ..., bypassVad = ...) instead.",
|
|
282
|
+
ReplaceWith(
|
|
283
|
+
"setMicState(enabled = config.sendPcmData, bypassVad = config.bypassVad, sendTranscript = config.sendTranscript, sendLc3Data = config.sendLc3Data)"
|
|
284
|
+
),
|
|
285
|
+
)
|
|
241
286
|
fun setMicState(config: MicConfig) {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
287
|
+
applyMicState(
|
|
288
|
+
sendPcmData = config.sendPcmData,
|
|
289
|
+
sendTranscript = config.sendTranscript,
|
|
290
|
+
bypassVad = config.bypassVad,
|
|
291
|
+
sendLc3Data = config.sendLc3Data,
|
|
292
|
+
)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
private fun applyMicState(
|
|
296
|
+
sendPcmData: Boolean,
|
|
297
|
+
sendTranscript: Boolean,
|
|
298
|
+
bypassVad: Boolean,
|
|
299
|
+
sendLc3Data: Boolean,
|
|
300
|
+
) {
|
|
301
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "should_send_pcm", sendPcmData)
|
|
302
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "should_send_lc3", sendLc3Data)
|
|
303
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "should_send_transcript", sendTranscript)
|
|
304
|
+
DeviceStore.apply(ObservableStore.BLUETOOTH_CATEGORY, "bypass_vad", bypassVad)
|
|
246
305
|
deviceManager.setMicState()
|
|
247
306
|
}
|
|
248
307
|
|
|
@@ -121,7 +121,7 @@ export type GalleryStatusEvent = {
|
|
|
121
121
|
};
|
|
122
122
|
export type CompatibleGlassesSearchStopEvent = {
|
|
123
123
|
type: "compatible_glasses_search_stop";
|
|
124
|
-
device_model:
|
|
124
|
+
device_model: DeviceModel;
|
|
125
125
|
};
|
|
126
126
|
export type HeartbeatSentEvent = {
|
|
127
127
|
type: "heartbeat_sent";
|
|
@@ -165,6 +165,33 @@ export type GalleryMode = "auto" | "manual";
|
|
|
165
165
|
export type PhotoSize = "small" | "medium" | "large" | "full";
|
|
166
166
|
export type ButtonPhotoSize = "small" | "medium" | "large";
|
|
167
167
|
export type PhotoCompression = "none" | "medium" | "heavy";
|
|
168
|
+
export declare const DeviceModels: {
|
|
169
|
+
readonly Simulated: "Simulated Glasses";
|
|
170
|
+
readonly G1: "Even Realities G1";
|
|
171
|
+
readonly G2: "Even Realities G2";
|
|
172
|
+
readonly MentraLive: "Mentra Live";
|
|
173
|
+
readonly MentraNex: "Mentra Display";
|
|
174
|
+
readonly Mach1: "Mentra Mach1";
|
|
175
|
+
readonly Z100: "Vuzix Z100";
|
|
176
|
+
readonly Frame: "Brilliant Frame";
|
|
177
|
+
readonly R1: "Even Realities R1";
|
|
178
|
+
};
|
|
179
|
+
export type DeviceModel = (typeof DeviceModels)[keyof typeof DeviceModels];
|
|
180
|
+
export type ObservableStoreCategory = "glasses" | "bluetooth" | "core";
|
|
181
|
+
export type DashboardMenuItem = {
|
|
182
|
+
title: string;
|
|
183
|
+
packageName: string;
|
|
184
|
+
values?: Record<string, unknown>;
|
|
185
|
+
};
|
|
186
|
+
export type CameraFov = "standard" | "wide";
|
|
187
|
+
export type CameraFovSetting = {
|
|
188
|
+
fov: number;
|
|
189
|
+
roi_position: number;
|
|
190
|
+
};
|
|
191
|
+
export type MicPreference = "auto" | "phone" | "glasses" | "bluetooth";
|
|
192
|
+
export type MicMode = "phone" | "glasses" | "btclassic" | "bt";
|
|
193
|
+
/** @deprecated Use {@link MicMode} for active/ranked mic modes or {@link MicPreference} for preferences. */
|
|
194
|
+
export type MicRanking = MicMode;
|
|
168
195
|
export type StreamVideoConfig = {
|
|
169
196
|
width?: number;
|
|
170
197
|
height?: number;
|
|
@@ -449,29 +476,28 @@ export interface GlassesStatus {
|
|
|
449
476
|
controllerBatteryLevel: number;
|
|
450
477
|
controllerSignalStrength: number;
|
|
451
478
|
}
|
|
452
|
-
interface
|
|
479
|
+
export interface CoreDashboardMenuItem {
|
|
453
480
|
name: string;
|
|
454
481
|
packageName: string;
|
|
455
482
|
running: boolean;
|
|
456
483
|
}
|
|
457
484
|
export interface CoreSettings {
|
|
458
|
-
menu_apps:
|
|
485
|
+
menu_apps: CoreDashboardMenuItem[];
|
|
459
486
|
}
|
|
460
|
-
export type MicRanking = "auto" | "phone" | "glasses" | "bluetooth";
|
|
461
487
|
export interface Device {
|
|
462
488
|
id: string;
|
|
463
|
-
model:
|
|
489
|
+
model: DeviceModel;
|
|
464
490
|
name: string;
|
|
465
491
|
address?: string;
|
|
466
492
|
rssi?: number;
|
|
467
493
|
}
|
|
468
|
-
export interface DeviceScanRequest {
|
|
469
|
-
model: string;
|
|
470
|
-
}
|
|
471
494
|
export interface ConnectOptions {
|
|
472
495
|
saveAsDefault?: boolean;
|
|
473
496
|
cancelExistingConnectionAttempt?: boolean;
|
|
474
497
|
}
|
|
498
|
+
export interface ConnectFirstOptions extends ConnectOptions {
|
|
499
|
+
timeoutMs?: number;
|
|
500
|
+
}
|
|
475
501
|
export interface WifiSearchResult {
|
|
476
502
|
ssid: string;
|
|
477
503
|
requiresPassword: boolean;
|
|
@@ -482,17 +508,65 @@ export interface WifiSearchResult {
|
|
|
482
508
|
export interface BluetoothStatus {
|
|
483
509
|
searching: boolean;
|
|
484
510
|
searchingController: boolean;
|
|
485
|
-
default_wearable?:
|
|
511
|
+
default_wearable?: DeviceModel | "";
|
|
512
|
+
pending_wearable?: DeviceModel | "";
|
|
486
513
|
device_name?: string;
|
|
487
514
|
device_address?: string;
|
|
515
|
+
default_controller?: DeviceModel | "";
|
|
516
|
+
pending_controller?: DeviceModel | "";
|
|
517
|
+
controller_device_name?: string;
|
|
518
|
+
controller_address?: string;
|
|
488
519
|
systemMicUnavailable: boolean;
|
|
489
|
-
micRanking:
|
|
490
|
-
currentMic:
|
|
520
|
+
micRanking: MicMode[];
|
|
521
|
+
currentMic: MicMode | "" | null;
|
|
491
522
|
searchResults: Device[];
|
|
492
523
|
wifiScanResults: WifiSearchResult[];
|
|
493
524
|
lastLog: string[];
|
|
494
525
|
otherBtConnected: boolean;
|
|
495
526
|
gallery_mode: boolean;
|
|
496
527
|
}
|
|
497
|
-
export {
|
|
528
|
+
export type BluetoothSettingsUpdate = Partial<{
|
|
529
|
+
auth_email: string;
|
|
530
|
+
core_token: string;
|
|
531
|
+
sensing_enabled: boolean;
|
|
532
|
+
power_saving_mode: boolean;
|
|
533
|
+
lc3_frame_size: number;
|
|
534
|
+
preferred_mic: MicPreference;
|
|
535
|
+
screen_disabled: boolean;
|
|
536
|
+
contextual_dashboard: boolean;
|
|
537
|
+
head_up_angle: number;
|
|
538
|
+
brightness: number;
|
|
539
|
+
auto_brightness: boolean;
|
|
540
|
+
dashboard_height: number;
|
|
541
|
+
dashboard_depth: number;
|
|
542
|
+
menu_apps: DashboardMenuItem[] | CoreDashboardMenuItem[] | Array<Record<string, unknown>> | null;
|
|
543
|
+
gallery_mode: boolean;
|
|
544
|
+
button_photo_size: ButtonPhotoSize;
|
|
545
|
+
button_video_settings: {
|
|
546
|
+
width: number;
|
|
547
|
+
height: number;
|
|
548
|
+
fps: number;
|
|
549
|
+
};
|
|
550
|
+
button_video_width: number;
|
|
551
|
+
button_video_height: number;
|
|
552
|
+
button_video_fps: number;
|
|
553
|
+
button_camera_led: boolean;
|
|
554
|
+
button_max_recording_time: number;
|
|
555
|
+
camera_fov: CameraFovSetting;
|
|
556
|
+
should_send_pcm: boolean;
|
|
557
|
+
should_send_lc3: boolean;
|
|
558
|
+
should_send_transcript: boolean;
|
|
559
|
+
bypass_vad: boolean;
|
|
560
|
+
offline_mode: boolean;
|
|
561
|
+
offline_captions_running: boolean;
|
|
562
|
+
local_stt_fallback_active: boolean;
|
|
563
|
+
pending_wearable: DeviceModel | "";
|
|
564
|
+
default_wearable: DeviceModel | "";
|
|
565
|
+
device_name: string;
|
|
566
|
+
device_address: string;
|
|
567
|
+
default_controller: DeviceModel | "";
|
|
568
|
+
pending_controller: DeviceModel | "";
|
|
569
|
+
controller_device_name: string;
|
|
570
|
+
controller_address: string;
|
|
571
|
+
}>;
|
|
498
572
|
//# sourceMappingURL=BluetoothSdk.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BluetoothSdk.types.d.ts","sourceRoot":"","sources":["../src/BluetoothSdk.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BluetoothSdk.types.d.ts","sourceRoot":"","sources":["../src/BluetoothSdk.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,4 +20,15 @@ export function isConnectedWifiStatus(status) {
|
|
|
20
20
|
export function isEnabledHotspotStatus(status) {
|
|
21
21
|
return status.state === 'enabled';
|
|
22
22
|
}
|
|
23
|
+
export const DeviceModels = {
|
|
24
|
+
Simulated: "Simulated Glasses",
|
|
25
|
+
G1: "Even Realities G1",
|
|
26
|
+
G2: "Even Realities G2",
|
|
27
|
+
MentraLive: "Mentra Live",
|
|
28
|
+
MentraNex: "Mentra Display",
|
|
29
|
+
Mach1: "Mentra Mach1",
|
|
30
|
+
Z100: "Vuzix Z100",
|
|
31
|
+
Frame: "Brilliant Frame",
|
|
32
|
+
R1: "Even Realities R1",
|
|
33
|
+
};
|
|
23
34
|
//# sourceMappingURL=BluetoothSdk.types.js.map
|
|
@@ -1 +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"]}
|
|
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;AA4FD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,SAAS,EAAE,mBAAmB;IAC9B,EAAE,EAAE,mBAAmB;IACvB,EAAE,EAAE,mBAAmB;IACvB,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,gBAAgB;IAC3B,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,iBAAiB;IACxB,EAAE,EAAE,mBAAmB;CACf,CAAA","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: DeviceModel\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\"\nexport const DeviceModels = {\n Simulated: \"Simulated Glasses\",\n G1: \"Even Realities G1\",\n G2: \"Even Realities G2\",\n MentraLive: \"Mentra Live\",\n MentraNex: \"Mentra Display\",\n Mach1: \"Mentra Mach1\",\n Z100: \"Vuzix Z100\",\n Frame: \"Brilliant Frame\",\n R1: \"Even Realities R1\",\n} as const\n\nexport type DeviceModel = (typeof DeviceModels)[keyof typeof DeviceModels]\nexport type ObservableStoreCategory = \"glasses\" | \"bluetooth\" | \"core\"\n\nexport type DashboardMenuItem = {\n title: string\n packageName: string\n values?: Record<string, unknown>\n}\n\nexport type CameraFov = \"standard\" | \"wide\"\n\nexport type CameraFovSetting = {\n fov: number\n roi_position: number\n}\n\nexport type MicPreference = \"auto\" | \"phone\" | \"glasses\" | \"bluetooth\"\nexport type MicMode = \"phone\" | \"glasses\" | \"btclassic\" | \"bt\"\n/** @deprecated Use {@link MicMode} for active/ranked mic modes or {@link MicPreference} for preferences. */\nexport type MicRanking = MicMode\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\nexport interface CoreDashboardMenuItem {\n name: string\n packageName: string\n running: boolean\n}\n\nexport interface CoreSettings {\n menu_apps: CoreDashboardMenuItem[]\n}\n\nexport interface Device {\n id: string\n model: DeviceModel\n name: string\n address?: string\n rssi?: number\n}\n\nexport interface ConnectOptions {\n saveAsDefault?: boolean\n cancelExistingConnectionAttempt?: boolean\n}\n\nexport interface ConnectFirstOptions extends ConnectOptions {\n timeoutMs?: number\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?: DeviceModel | \"\"\n pending_wearable?: DeviceModel | \"\"\n device_name?: string\n device_address?: string\n default_controller?: DeviceModel | \"\"\n pending_controller?: DeviceModel | \"\"\n controller_device_name?: string\n controller_address?: string\n systemMicUnavailable: boolean\n micRanking: MicMode[]\n currentMic: MicMode | \"\" | 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\nexport type BluetoothSettingsUpdate = Partial<{\n auth_email: string\n core_token: string\n sensing_enabled: boolean\n power_saving_mode: boolean\n lc3_frame_size: number\n preferred_mic: MicPreference\n screen_disabled: boolean\n contextual_dashboard: boolean\n head_up_angle: number\n brightness: number\n auto_brightness: boolean\n dashboard_height: number\n dashboard_depth: number\n menu_apps: DashboardMenuItem[] | CoreDashboardMenuItem[] | Array<Record<string, unknown>> | null\n gallery_mode: boolean\n button_photo_size: ButtonPhotoSize\n button_video_settings: {width: number; height: number; fps: number}\n button_video_width: number\n button_video_height: number\n button_video_fps: number\n button_camera_led: boolean\n button_max_recording_time: number\n camera_fov: CameraFovSetting\n should_send_pcm: boolean\n should_send_lc3: boolean\n should_send_transcript: boolean\n bypass_vad: boolean\n offline_mode: boolean\n offline_captions_running: boolean\n local_stt_fallback_active: boolean\n pending_wearable: DeviceModel | \"\"\n default_wearable: DeviceModel | \"\"\n device_name: string\n device_address: string\n default_controller: DeviceModel | \"\"\n pending_controller: DeviceModel | \"\"\n controller_device_name: string\n controller_address: string\n}>\n"]}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { NativeModule } from "expo";
|
|
2
|
-
import {
|
|
2
|
+
import { BluetoothSettingsUpdate, BluetoothSdkModuleEvents, BluetoothStatus, ButtonPhotoSize, CameraFov, ConnectFirstOptions, ConnectOptions, DashboardMenuItem, Device, DeviceModel, GalleryMode, GlassesMediaVolumeGetResult, GlassesMediaVolumeSetResult, GlassesStatus, MicPreference, ObservableStoreCategory, PhotoCompression, PhotoSize, RgbLedAction, RgbLedColor, StreamKeepAliveRequest, StreamStartRequest } from "./BluetoothSdk.types";
|
|
3
3
|
type GlassesListener = (changed: Partial<GlassesStatus>) => void;
|
|
4
4
|
type BluetoothStatusListener = (changed: Partial<BluetoothStatus>) => void;
|
|
5
5
|
declare class BluetoothSdkModule extends NativeModule<BluetoothSdkModuleEvents> {
|
|
6
6
|
getGlassesStatus(): Promise<GlassesStatus>;
|
|
7
7
|
getBluetoothStatus(): Promise<BluetoothStatus>;
|
|
8
8
|
getDefaultDevice(): Promise<Device | null>;
|
|
9
|
-
update(category:
|
|
10
|
-
displayEvent(params: Record<string,
|
|
11
|
-
displayText(
|
|
9
|
+
update(category: ObservableStoreCategory, values: object): Promise<void>;
|
|
10
|
+
displayEvent(params: Record<string, unknown>): Promise<void>;
|
|
11
|
+
displayText(text: string, x?: number, y?: number, size?: number): Promise<void>;
|
|
12
12
|
clearDisplay(): Promise<void>;
|
|
13
13
|
requestStatus(): Promise<void>;
|
|
14
14
|
connectDefault(options?: ConnectOptions): Promise<void>;
|
|
15
15
|
connectDefaultWithOptions(options: Required<ConnectOptions>): Promise<void>;
|
|
16
16
|
setDefaultDevice(device: Device | null): Promise<void>;
|
|
17
17
|
clearDefaultDevice(): Promise<void>;
|
|
18
|
-
startScan(
|
|
18
|
+
startScan(model: DeviceModel): Promise<void>;
|
|
19
|
+
connectFirst(model: DeviceModel, options?: ConnectFirstOptions): Promise<Device>;
|
|
19
20
|
connect(device: Device, options?: ConnectOptions): Promise<void>;
|
|
20
21
|
connectWithOptions(device: Device, options: Required<ConnectOptions>): Promise<void>;
|
|
21
22
|
cancelConnectionAttempt(): Promise<void>;
|
|
@@ -26,6 +27,12 @@ declare class BluetoothSdkModule extends NativeModule<BluetoothSdkModuleEvents>
|
|
|
26
27
|
forget(): Promise<void>;
|
|
27
28
|
forgetController(): Promise<void>;
|
|
28
29
|
showDashboard(): Promise<void>;
|
|
30
|
+
setBrightness(level: number, autoMode?: boolean | null): Promise<void>;
|
|
31
|
+
setAutoBrightness(enabled: boolean): Promise<void>;
|
|
32
|
+
setDashboardPosition(height: number, depth: number): Promise<void>;
|
|
33
|
+
setDashboardMenu(items: DashboardMenuItem[]): Promise<void>;
|
|
34
|
+
setHeadUpAngle(angleDegrees: number): Promise<void>;
|
|
35
|
+
setScreenDisabled(disabled: boolean): Promise<void>;
|
|
29
36
|
ping(): Promise<void>;
|
|
30
37
|
dbg1(): Promise<void>;
|
|
31
38
|
dbg2(): Promise<void>;
|
|
@@ -37,6 +44,11 @@ declare class BluetoothSdkModule extends NativeModule<BluetoothSdkModuleEvents>
|
|
|
37
44
|
/** Logs current WiFi frequency (MHz) and 5 GHz band to Android logcat. */
|
|
38
45
|
logCurrentWifiFrequency(): Promise<void>;
|
|
39
46
|
setGalleryMode(mode: GalleryMode): Promise<void>;
|
|
47
|
+
setButtonPhotoSettings(size: ButtonPhotoSize): Promise<void>;
|
|
48
|
+
setButtonVideoRecordingSettings(width: number, height: number, fps: number): Promise<void>;
|
|
49
|
+
setButtonCameraLed(enabled: boolean): Promise<void>;
|
|
50
|
+
setButtonMaxRecordingTime(minutes: number): Promise<void>;
|
|
51
|
+
setCameraFov(fov: CameraFov): Promise<void>;
|
|
40
52
|
queryGalleryStatus(): Promise<void>;
|
|
41
53
|
photoRequest(requestId: string, appId: string, size: PhotoSize, webhookUrl: string | null, authToken: string | null, compress: PhotoCompression, flash: boolean, sound: boolean): Promise<void>;
|
|
42
54
|
sendOtaStart(): Promise<void>;
|
|
@@ -47,7 +59,8 @@ declare class BluetoothSdkModule extends NativeModule<BluetoothSdkModuleEvents>
|
|
|
47
59
|
startStream(params: StreamStartRequest): Promise<void>;
|
|
48
60
|
stopStream(): Promise<void>;
|
|
49
61
|
keepStreamAlive(params: StreamKeepAliveRequest): Promise<void>;
|
|
50
|
-
setMicState(
|
|
62
|
+
setMicState(enabled: boolean, useGlassesMic?: boolean, bypassVad?: boolean, sendTranscript?: boolean, sendLc3Data?: boolean): Promise<void>;
|
|
63
|
+
setPreferredMic(preferredMic: MicPreference): Promise<void>;
|
|
51
64
|
restartTranscriber(): Promise<void>;
|
|
52
65
|
setOwnAppAudioPlaying(playing: boolean): Promise<void>;
|
|
53
66
|
/** Mentra Live only: K900 `cs_getvol` / `sr_getvol`. */
|
|
@@ -61,7 +74,7 @@ declare class BluetoothSdkModule extends NativeModule<BluetoothSdkModuleEvents>
|
|
|
61
74
|
validateSttModel(path: string): Promise<boolean>;
|
|
62
75
|
extractTarBz2(sourcePath: string, destinationPath: string): Promise<boolean>;
|
|
63
76
|
updateGlasses(values: Partial<GlassesStatus>): Promise<void>;
|
|
64
|
-
updateBluetoothSettings(values:
|
|
77
|
+
updateBluetoothSettings(values: BluetoothSettingsUpdate): Promise<void>;
|
|
65
78
|
onGlassesStatus(callback: GlassesListener): () => void;
|
|
66
79
|
onBluetoothStatus(callback: BluetoothStatusListener): () => void;
|
|
67
80
|
getMemoryMB(): number;
|