@mentra/sdk 2.1.2 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/app/session/events.d.ts +3 -2
  2. package/dist/app/session/events.d.ts.map +1 -1
  3. package/dist/app/session/events.js +3 -0
  4. package/dist/app/session/index.d.ts +8 -1
  5. package/dist/app/session/index.d.ts.map +1 -1
  6. package/dist/app/session/index.js +9 -0
  7. package/dist/app/session/layouts.d.ts +63 -3
  8. package/dist/app/session/layouts.d.ts.map +1 -1
  9. package/dist/app/session/layouts.js +101 -7
  10. package/dist/app/session/modules/camera-managed-extension.d.ts +3 -1
  11. package/dist/app/session/modules/camera-managed-extension.d.ts.map +1 -1
  12. package/dist/app/session/modules/camera-managed-extension.js +26 -18
  13. package/dist/examples/managed-rtmp-streaming-example.js +3 -0
  14. package/dist/examples/managed-rtmp-streaming-with-restream-example.d.ts +11 -0
  15. package/dist/examples/managed-rtmp-streaming-with-restream-example.d.ts.map +1 -0
  16. package/dist/examples/managed-rtmp-streaming-with-restream-example.js +124 -0
  17. package/dist/index.d.ts +6 -4
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -1
  20. package/dist/types/enums.d.ts +3 -1
  21. package/dist/types/enums.d.ts.map +1 -1
  22. package/dist/types/enums.js +2 -0
  23. package/dist/types/index.d.ts +2 -2
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/layouts.d.ts +16 -1
  26. package/dist/types/layouts.d.ts.map +1 -1
  27. package/dist/types/message-types.d.ts +2 -2
  28. package/dist/types/message-types.d.ts.map +1 -1
  29. package/dist/types/message-types.js +3 -3
  30. package/dist/types/messages/app-to-cloud.d.ts +11 -0
  31. package/dist/types/messages/app-to-cloud.d.ts.map +1 -1
  32. package/dist/types/messages/cloud-to-app.d.ts +19 -0
  33. package/dist/types/messages/cloud-to-app.d.ts.map +1 -1
  34. package/dist/types/messages/glasses-to-cloud.d.ts +8 -4
  35. package/dist/types/messages/glasses-to-cloud.d.ts.map +1 -1
  36. package/dist/types/messages/glasses-to-cloud.js +3 -3
  37. package/dist/types/models.d.ts +1 -0
  38. package/dist/types/models.d.ts.map +1 -1
  39. package/dist/types/models.js +1 -0
  40. package/dist/types/streams.d.ts +1 -1
  41. package/dist/types/streams.d.ts.map +1 -1
  42. package/dist/types/streams.js +2 -2
  43. package/dist/utils/animation-utils.d.ts +206 -0
  44. package/dist/utils/animation-utils.d.ts.map +1 -0
  45. package/dist/utils/animation-utils.js +339 -0
  46. package/dist/utils/bitmap-utils.d.ts +147 -0
  47. package/dist/utils/bitmap-utils.d.ts.map +1 -0
  48. package/dist/utils/bitmap-utils.js +338 -0
  49. package/package.json +1 -1
@@ -2,7 +2,7 @@
2
2
  * 🎮 Event Manager Module
3
3
  */
4
4
  import EventEmitter from 'events';
5
- import { StreamType, ExtendedStreamType, AppSettings, WebSocketError, ButtonPress, HeadPosition, PhoneNotification, TranscriptionData, TranslationData, GlassesBatteryUpdate, PhoneBatteryUpdate, GlassesConnectionState, LocationUpdate, Vad, NotificationDismissed, AudioChunk, CalendarEvent, VpsCoordinates, CustomMessage, RtmpStreamStatus, PhotoTaken, ManagedStreamStatus } from '../../types';
5
+ import { StreamType, ExtendedStreamType, AppSettings, WebSocketError, ButtonPress, HeadPosition, PhoneNotification, TranscriptionData, TranslationData, GlassesBatteryUpdate, PhoneBatteryUpdate, GlassesConnectionState, LocationUpdate, Vad, AudioChunk, CalendarEvent, VpsCoordinates, CustomMessage, RtmpStreamStatus, PhotoTaken, ManagedStreamStatus, PhoneNotificationDismissed } from '../../types';
6
6
  import { DashboardMode } from '../../types/dashboard';
7
7
  import { PermissionErrorDetail } from '../../types/messages/cloud-to-app';
8
8
  /** 🎯 Type-safe event handler function */
@@ -52,7 +52,7 @@ export interface StreamDataTypes {
52
52
  [StreamType.LOCATION_UPDATE]: LocationUpdate;
53
53
  [StreamType.CALENDAR_EVENT]: CalendarEvent;
54
54
  [StreamType.VAD]: Vad;
55
- [StreamType.NOTIFICATION_DISMISSED]: NotificationDismissed;
55
+ [StreamType.PHONE_NOTIFICATION_DISMISSED]: PhoneNotificationDismissed;
56
56
  [StreamType.AUDIO_CHUNK]: AudioChunk;
57
57
  [StreamType.VIDEO]: ArrayBuffer;
58
58
  [StreamType.RTMP_STREAM_STATUS]: RtmpStreamStatus;
@@ -96,6 +96,7 @@ export declare class EventManager {
96
96
  onHeadPosition(handler: Handler<HeadPosition>): () => void;
97
97
  onButtonPress(handler: Handler<ButtonPress>): () => void;
98
98
  onPhoneNotifications(handler: Handler<PhoneNotification>): () => void;
99
+ onPhoneNotificationDismissed(handler: Handler<PhoneNotificationDismissed>): () => void;
99
100
  onGlassesBattery(handler: Handler<GlassesBatteryUpdate>): () => void;
100
101
  onPhoneBattery(handler: Handler<PhoneBatteryUpdate>): () => void;
101
102
  onVoiceActivity(handler: Handler<Vad>): () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/app/session/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/app/session/events.ts"],"names":[],"mappings":"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"}
@@ -71,6 +71,9 @@ class EventManager {
71
71
  onPhoneNotifications(handler) {
72
72
  return this.addHandler(types_1.StreamType.PHONE_NOTIFICATION, handler);
73
73
  }
74
+ onPhoneNotificationDismissed(handler) {
75
+ return this.addHandler(types_1.StreamType.PHONE_NOTIFICATION_DISMISSED, handler);
76
+ }
74
77
  onGlassesBattery(handler) {
75
78
  return this.addHandler(types_1.StreamType.GLASSES_BATTERY_UPDATE, handler);
76
79
  }
@@ -4,7 +4,7 @@ import { SettingsManager } from './settings';
4
4
  import { LocationManager } from './modules/location';
5
5
  import { CameraModule } from './modules/camera';
6
6
  import { AudioManager } from './modules/audio';
7
- import { ExtendedStreamType, ButtonPress, HeadPosition, PhoneNotification, TranscriptionData, TranslationData, AppSettings, AppSetting, AppConfig, VpsCoordinates, PhotoTaken, SubscriptionRequest, Capabilities } from '../../types';
7
+ import { ExtendedStreamType, ButtonPress, HeadPosition, PhoneNotification, PhoneNotificationDismissed, TranscriptionData, TranslationData, AppSettings, AppSetting, AppConfig, VpsCoordinates, PhotoTaken, SubscriptionRequest, Capabilities } from '../../types';
8
8
  import { DashboardAPI } from '../../types/dashboard';
9
9
  import { Logger } from 'pino';
10
10
  import { AppServer } from '../server';
@@ -167,6 +167,13 @@ export declare class AppSession {
167
167
  * @deprecated Use session.events.onPhoneNotifications() instead
168
168
  */
169
169
  onPhoneNotifications(handler: (data: PhoneNotification) => void): () => void;
170
+ /**
171
+ * 📱 Listen for phone notification dismissed events
172
+ * @param handler - Function to handle notification dismissal data
173
+ * @returns Cleanup function to remove the handler
174
+ * @deprecated Use session.events.onPhoneNotificationDismissed() instead
175
+ */
176
+ onPhoneNotificationDismissed(handler: (data: PhoneNotificationDismissed) => void): () => void;
170
177
  /**
171
178
  * 📡 Listen for VPS coordinates updates
172
179
  * @param handler - Function to handle VPS coordinates
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/session/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/app/session/index.ts"],"names":[],"mappings":"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"}
@@ -239,6 +239,15 @@ class AppSession {
239
239
  onPhoneNotifications(handler) {
240
240
  return this.events.onPhoneNotifications(handler);
241
241
  }
242
+ /**
243
+ * 📱 Listen for phone notification dismissed events
244
+ * @param handler - Function to handle notification dismissal data
245
+ * @returns Cleanup function to remove the handler
246
+ * @deprecated Use session.events.onPhoneNotificationDismissed() instead
247
+ */
248
+ onPhoneNotificationDismissed(handler) {
249
+ return this.events.onPhoneNotificationDismissed(handler);
250
+ }
242
251
  /**
243
252
  * 📡 Listen for VPS coordinates updates
244
253
  * @param handler - Function to handle VPS coordinates
@@ -111,20 +111,26 @@ export declare class LayoutManager {
111
111
  /**
112
112
  * 📇 Shows a bitmap
113
113
  *
114
- * @param data - base64 encoded bitmap data
114
+ * Uses the proven animation system internally for proper L/R eye synchronization.
115
+ * This ensures single bitmap displays work consistently with the same
116
+ * hardware-optimized timing as animations.
117
+ *
118
+ * @param data - hex or base64 encoded bitmap data
115
119
  * @param options - Optional parameters (view, duration)
116
120
  *
117
121
  * @example
118
122
  * ```typescript
119
123
  * layouts.showBitmapView(
120
- * yourBase64EncodedBitmapDataString
124
+ * yourHexOrBase64EncodedBitmapDataString
121
125
  * );
122
126
  * ```
123
127
  */
124
128
  showBitmapView(data: string, options?: {
125
129
  view?: ViewType;
126
130
  durationMs?: number;
127
- }): void;
131
+ }): {
132
+ stop: () => void;
133
+ };
128
134
  /**
129
135
  * 📊 Shows a dashboard card with left and right text
130
136
  *
@@ -146,5 +152,59 @@ export declare class LayoutManager {
146
152
  view?: ViewType;
147
153
  durationMs?: number;
148
154
  }): void;
155
+ /**
156
+ * 🧹 Clears the display
157
+ *
158
+ * Best for:
159
+ * - Clearing previous content
160
+ * - Resetting display state
161
+ * - Starting fresh
162
+ *
163
+ * @param options - Optional parameters (view)
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * layouts.clearView();
168
+ * layouts.clearView({ view: ViewType.DASHBOARD });
169
+ * ```
170
+ */
171
+ clearView(options?: {
172
+ view?: ViewType;
173
+ }): void;
174
+ /**
175
+ * 🎬 Shows an animated sequence of bitmap images (iOS-controlled timing)
176
+ *
177
+ * Sends complete animation package to iOS for device-controlled timing.
178
+ * This provides superior performance and synchronization by letting
179
+ * the device control the display timing directly.
180
+ *
181
+ * Best for:
182
+ * - Smooth high-performance animations
183
+ * - Precise timing control
184
+ * - Synchronized left/right display
185
+ * - EvenDemo-quality performance
186
+ *
187
+ * @param bitmapDataArray - Array of bitmap data strings (hex or base64 encoded)
188
+ * @param intervalMs - Time between frames in milliseconds (default: 1650ms)
189
+ * @param repeat - Whether to loop the animation continuously (default: false)
190
+ * @param options - Optional parameters (view)
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * // Device-controlled animation (recommended)
195
+ * const frames = ['hexdata1', 'hexdata2', 'hexdata3'];
196
+ * layouts.showBitmapAnimation(frames, 1650, true);
197
+ *
198
+ * // Single-cycle animation
199
+ * layouts.showBitmapAnimation(loadingFrames, 1650, false);
200
+ * ```
201
+ *
202
+ * @returns Animation controller object with stop() method
203
+ */
204
+ showBitmapAnimation(bitmapDataArray: string[], intervalMs?: number, repeat?: boolean, options?: {
205
+ view?: ViewType;
206
+ }): {
207
+ stop: () => void;
208
+ };
149
209
  }
150
210
  //# sourceMappingURL=layouts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../../src/app/session/layouts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,cAAc,EAOd,QAAQ,EAGT,MAAM,aAAa,CAAC;AAErB,qBAAa,aAAa;IAQtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IARrB;;;;;OAKG;gBAEO,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI;IAGxD;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAmG1B;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC;IAuCnD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAcpD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAclD;;;;;;;;;;;;KAYC;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAapD;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAarD"}
1
+ {"version":3,"file":"layouts.d.ts","sourceRoot":"","sources":["../../../src/app/session/layouts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EACL,cAAc,EAOd,QAAQ,EAKT,MAAM,aAAa,CAAC;AAErB,qBAAa,aAAa;IAQtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,WAAW;IARrB;;;;;OAKG;gBAEO,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI;IAGxD;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAuG1B;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAC;IAuCnD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAcpD;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAclD;;;;;;;;;;;;;;;;KAgBC;IACH,cAAc,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;cA0HzC,MAAM,IAAI;;IA/FrB;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAiB,CACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;IAcpD;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;KAAE;IAUvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,mBAAmB,CACjB,eAAe,EAAE,MAAM,EAAE,EACzB,UAAU,GAAE,MAAa,EACzB,MAAM,GAAE,OAAe,EACvB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;KAAE,GAC5B;QAAE,IAAI,EAAE,MAAM,IAAI,CAAA;KAAE;CA8BxB"}
@@ -96,6 +96,9 @@ class LayoutManager {
96
96
  throw new Error("Bitmap data is too large (>1MB), please reduce size");
97
97
  }
98
98
  break;
99
+ case types_1.LayoutType.CLEAR_VIEW:
100
+ // ClearView has no additional validation needed
101
+ break;
99
102
  }
100
103
  // Validate view type
101
104
  if (view !== types_1.ViewType.MAIN && view !== types_1.ViewType.DASHBOARD) {
@@ -236,22 +239,38 @@ class LayoutManager {
236
239
  /**
237
240
  * 📇 Shows a bitmap
238
241
  *
239
- * @param data - base64 encoded bitmap data
242
+ * Uses the proven animation system internally for proper L/R eye synchronization.
243
+ * This ensures single bitmap displays work consistently with the same
244
+ * hardware-optimized timing as animations.
245
+ *
246
+ * @param data - hex or base64 encoded bitmap data
240
247
  * @param options - Optional parameters (view, duration)
241
248
  *
242
249
  * @example
243
250
  * ```typescript
244
251
  * layouts.showBitmapView(
245
- * yourBase64EncodedBitmapDataString
252
+ * yourHexOrBase64EncodedBitmapDataString
246
253
  * );
247
254
  * ```
248
255
  */
249
256
  showBitmapView(data, options) {
250
- const layout = {
251
- layoutType: types_1.LayoutType.BITMAP_VIEW,
252
- data
253
- };
254
- this.sendMessage(this.createDisplayEvent(layout, options?.view, options?.durationMs));
257
+ // Use the proven animation system for single frame display
258
+ // This ensures proper L/R eye synchronization that works with
259
+ // the optimized iOS BLE transmission system
260
+ const duration = options?.durationMs || 5000; // Default 5 seconds
261
+ const frameInterval = 1650; // Use same interval as working animations
262
+ // Create short multi-frame animation for better L/R sync
263
+ // Repeat the same frame a few times to mimic continuous animation behavior
264
+ const frames = [data, data, data]; // Triple the frame for stability
265
+ const animation = this.showBitmapAnimation(frames, // Multi-frame array (same image repeated)
266
+ frameInterval, // Use proven 1650ms interval
267
+ false, // Don't repeat infinitely
268
+ { view: options?.view });
269
+ // Auto-stop after duration
270
+ setTimeout(() => {
271
+ animation.stop();
272
+ }, duration);
273
+ return animation;
255
274
  }
256
275
  /**
257
276
  * 📊 Shows a dashboard card with left and right text
@@ -278,5 +297,80 @@ class LayoutManager {
278
297
  };
279
298
  this.sendMessage(this.createDisplayEvent(layout, options?.view || types_1.ViewType.DASHBOARD, options?.durationMs));
280
299
  }
300
+ /**
301
+ * 🧹 Clears the display
302
+ *
303
+ * Best for:
304
+ * - Clearing previous content
305
+ * - Resetting display state
306
+ * - Starting fresh
307
+ *
308
+ * @param options - Optional parameters (view)
309
+ *
310
+ * @example
311
+ * ```typescript
312
+ * layouts.clearView();
313
+ * layouts.clearView({ view: ViewType.DASHBOARD });
314
+ * ```
315
+ */
316
+ clearView(options) {
317
+ const layout = {
318
+ layoutType: types_1.LayoutType.CLEAR_VIEW
319
+ };
320
+ this.sendMessage(this.createDisplayEvent(layout, options?.view));
321
+ }
322
+ /**
323
+ * 🎬 Shows an animated sequence of bitmap images (iOS-controlled timing)
324
+ *
325
+ * Sends complete animation package to iOS for device-controlled timing.
326
+ * This provides superior performance and synchronization by letting
327
+ * the device control the display timing directly.
328
+ *
329
+ * Best for:
330
+ * - Smooth high-performance animations
331
+ * - Precise timing control
332
+ * - Synchronized left/right display
333
+ * - EvenDemo-quality performance
334
+ *
335
+ * @param bitmapDataArray - Array of bitmap data strings (hex or base64 encoded)
336
+ * @param intervalMs - Time between frames in milliseconds (default: 1650ms)
337
+ * @param repeat - Whether to loop the animation continuously (default: false)
338
+ * @param options - Optional parameters (view)
339
+ *
340
+ * @example
341
+ * ```typescript
342
+ * // Device-controlled animation (recommended)
343
+ * const frames = ['hexdata1', 'hexdata2', 'hexdata3'];
344
+ * layouts.showBitmapAnimation(frames, 1650, true);
345
+ *
346
+ * // Single-cycle animation
347
+ * layouts.showBitmapAnimation(loadingFrames, 1650, false);
348
+ * ```
349
+ *
350
+ * @returns Animation controller object with stop() method
351
+ */
352
+ showBitmapAnimation(bitmapDataArray, intervalMs = 1650, repeat = false, options) {
353
+ // Validation
354
+ if (!Array.isArray(bitmapDataArray) || bitmapDataArray.length === 0) {
355
+ throw new Error("showBitmapAnimation requires a non-empty array of bitmap data");
356
+ }
357
+ // Send complete animation package to iOS for device-controlled timing
358
+ const layout = {
359
+ layoutType: types_1.LayoutType.BITMAP_ANIMATION,
360
+ frames: bitmapDataArray,
361
+ interval: intervalMs,
362
+ repeat: repeat
363
+ };
364
+ this.sendMessage(this.createDisplayEvent(layout, options?.view));
365
+ console.log(`🎬 Sent batched animation to iOS: ${bitmapDataArray.length} frames at ${intervalMs}ms${repeat ? ' (repeating)' : ''}`);
366
+ // Return controller for compatibility
367
+ return {
368
+ stop: () => {
369
+ // Send stop command to iOS
370
+ this.clearView();
371
+ console.log('🛑 Animation stop requested');
372
+ }
373
+ };
374
+ }
281
375
  }
282
376
  exports.LayoutManager = LayoutManager;
@@ -4,7 +4,7 @@
4
4
  * Extends the camera module with managed streaming capabilities.
5
5
  * Apps can request managed streams and receive HLS/DASH URLs without managing RTMP endpoints.
6
6
  */
7
- import { ManagedStreamStatus } from '../../../types';
7
+ import { ManagedStreamStatus, RestreamDestination } from '../../../types';
8
8
  import { VideoConfig, AudioConfig, StreamConfig } from '../../../types/rtmp-stream';
9
9
  import { Logger } from 'pino';
10
10
  /**
@@ -21,6 +21,8 @@ export interface ManagedStreamOptions {
21
21
  audio?: AudioConfig;
22
22
  /** Optional stream configuration settings */
23
23
  stream?: StreamConfig;
24
+ /** Optional RTMP destinations to re-stream to (YouTube, Twitch, etc) */
25
+ restreamDestinations?: RestreamDestination[];
24
26
  }
25
27
  /**
26
28
  * Result returned when starting a managed stream
@@ -1 +1 @@
1
- {"version":3,"file":"camera-managed-extension.d.ts","sourceRoot":"","sources":["../../../../src/app/session/modules/camera-managed-extension.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,mBAAmB,EAKpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAM;IAGtB,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,wBAAwB,CAAC,CAAsB;IACvD,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAGlD,OAAO,CAAC,2BAA2B,CAAC,CAGlC;gBAGA,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,GAAG;IASf;;;;;;;;;;;;;;;;;;OAkBG;IACG,kBAAkB,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAwC1F;;;;;;;OAOG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBxC;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;;;OAIG;IACH,oBAAoB,IAAI,mBAAmB,GAAG,SAAS;IAIvD;;;;OAIG;IACH,sBAAsB,IAAI,mBAAmB,GAAG,SAAS;IAIzD;;;;;;;;;;;;;;;;;;OAkBG;IACH,qBAAqB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,GAAG,MAAM,IAAI;IAYjF;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IA2C5D;;OAEG;IACH,OAAO,IAAI,IAAI;CAahB"}
1
+ {"version":3,"file":"camera-managed-extension.d.ts","sourceRoot":"","sources":["../../../../src/app/session/modules/camera-managed-extension.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAGL,mBAAmB,EAKnB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,wEAAwE;IACxE,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAM;IAGtB,OAAO,CAAC,kBAAkB,CAAkB;IAC5C,OAAO,CAAC,sBAAsB,CAAC,CAAS;IACxC,OAAO,CAAC,wBAAwB,CAAC,CAAsB;IACvD,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAGlD,OAAO,CAAC,2BAA2B,CAAC,CAGlC;gBAGA,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,GAAG;IASf;;;;;;;;;;;;;;;;;;OAkBG;IACG,kBAAkB,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyC1F;;;;;;;OAOG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBxC;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAIhC;;;;OAIG;IACH,oBAAoB,IAAI,mBAAmB,GAAG,SAAS;IAIvD;;;;OAIG;IACH,sBAAsB,IAAI,mBAAmB,GAAG,SAAS;IAIzD;;;;;;;;;;;;;;;;;;OAkBG;IACH,qBAAqB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,GAAG,MAAM,IAAI;IAYjF;;;OAGG;IACH,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAwD5D;;OAEG;IACH,OAAO,IAAI,IAAI;CAahB"}
@@ -78,7 +78,8 @@ class CameraManagedExtension {
78
78
  enableWebRTC: options.enableWebRTC,
79
79
  video: options.video,
80
80
  audio: options.audio,
81
- stream: options.stream
81
+ stream: options.stream,
82
+ restreamDestinations: options.restreamDestinations
82
83
  };
83
84
  // Send the request
84
85
  this.send(request);
@@ -115,12 +116,8 @@ class CameraManagedExtension {
115
116
  packageName: this.packageName
116
117
  };
117
118
  this.send(request);
118
- // Clean up state
119
- this.isManagedStreaming = false;
120
- this.currentManagedStreamId = undefined;
121
- this.currentManagedStreamUrls = undefined;
122
- this.managedStreamStatus = undefined;
123
- this.pendingManagedStreamRequest = undefined;
119
+ // Don't clean up state immediately - wait for the 'stopped' status from cloud
120
+ // This ensures we can retry stop if needed and maintains accurate state
124
121
  }
125
122
  /**
126
123
  * 📊 Check if currently managed streaming
@@ -184,19 +181,30 @@ class CameraManagedExtension {
184
181
  streamId: status.streamId
185
182
  }, '📹 Received managed stream status');
186
183
  this.managedStreamStatus = status;
184
+ // Handle initializing status - stream is starting
185
+ if (status.status === 'initializing' && status.streamId) {
186
+ this.isManagedStreaming = true;
187
+ this.currentManagedStreamId = status.streamId;
188
+ }
187
189
  // Handle initial stream ready status
188
- if (status.status === 'active' && this.pendingManagedStreamRequest && status.hlsUrl && status.dashUrl) {
189
- const result = {
190
- hlsUrl: status.hlsUrl,
191
- dashUrl: status.dashUrl,
192
- webrtcUrl: status.webrtcUrl,
193
- streamId: status.streamId || ''
194
- };
190
+ if (status.status === 'active') {
191
+ // Always update state when stream is active
192
+ this.isManagedStreaming = true;
195
193
  this.currentManagedStreamId = status.streamId;
196
- this.currentManagedStreamUrls = result;
197
- // Resolve the pending promise
198
- this.pendingManagedStreamRequest.resolve(result);
199
- this.pendingManagedStreamRequest = undefined;
194
+ if (status.hlsUrl && status.dashUrl) {
195
+ const result = {
196
+ hlsUrl: status.hlsUrl,
197
+ dashUrl: status.dashUrl,
198
+ webrtcUrl: status.webrtcUrl,
199
+ streamId: status.streamId || ''
200
+ };
201
+ this.currentManagedStreamUrls = result;
202
+ // Resolve pending promise if exists
203
+ if (this.pendingManagedStreamRequest) {
204
+ this.pendingManagedStreamRequest.resolve(result);
205
+ this.pendingManagedStreamRequest = undefined;
206
+ }
207
+ }
200
208
  }
201
209
  // Handle error status
202
210
  if ((status.status === 'error' || status.status === 'stopped') && this.pendingManagedStreamRequest) {
@@ -11,6 +11,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  * - Social media streaming (X, YouTube Live, TikTok Live)
12
12
  * - Quick demos and prototypes
13
13
  * - Production apps without existing streaming infrastructure
14
+ *
15
+ * NEW: You can now add re-streaming to multiple platforms! See
16
+ * managed-rtmp-streaming-with-restream-example.ts for details.
14
17
  */
15
18
  const __1 = require("../");
16
19
  // Initialize App session
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Example: Managed RTMP Streaming with Re-streaming to Multiple Platforms
3
+ *
4
+ * This example demonstrates how to use the managed streaming feature with
5
+ * automatic re-streaming to platforms like YouTube, Twitch, and Facebook.
6
+ *
7
+ * The cloud handles all RTMP endpoints and automatically forwards your stream
8
+ * to the specified destinations.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=managed-rtmp-streaming-with-restream-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managed-rtmp-streaming-with-restream-example.d.ts","sourceRoot":"","sources":["../../src/examples/managed-rtmp-streaming-with-restream-example.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ /**
3
+ * Example: Managed RTMP Streaming with Re-streaming to Multiple Platforms
4
+ *
5
+ * This example demonstrates how to use the managed streaming feature with
6
+ * automatic re-streaming to platforms like YouTube, Twitch, and Facebook.
7
+ *
8
+ * The cloud handles all RTMP endpoints and automatically forwards your stream
9
+ * to the specified destinations.
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const __1 = require("../");
13
+ class MultiPlatformStreamingApp extends __1.AppServer {
14
+ constructor() {
15
+ super({
16
+ packageName: 'com.example.multiplatform-streaming',
17
+ apiKey: process.env.MENTRAOS_API_KEY || 'your-api-key',
18
+ port: 3000
19
+ });
20
+ }
21
+ async onSession(session, sessionId, userId) {
22
+ console.log(`New session started: ${sessionId} for user ${userId}`);
23
+ // Subscribe to managed stream status updates
24
+ const managedStreamCleanup = session.camera.onManagedStreamStatus((status) => {
25
+ console.log(`Stream status: ${status.status}`);
26
+ // Check output statuses
27
+ if (status.outputs && status.outputs.length > 0) {
28
+ console.log('Re-stream outputs:');
29
+ status.outputs.forEach(output => {
30
+ console.log(`- ${output.name || output.url}: ${output.status}`);
31
+ if (output.error) {
32
+ console.error(` Error: ${output.error}`);
33
+ }
34
+ });
35
+ }
36
+ if (status.status === 'active') {
37
+ console.log('Stream is live!');
38
+ console.log('HLS URL:', status.hlsUrl);
39
+ console.log('DASH URL:', status.dashUrl);
40
+ session.layouts.showTextWall('Multi-platform stream is live!');
41
+ }
42
+ });
43
+ // Start managed stream when glasses connect
44
+ const connectCleanup = session.events.onConnected(async () => {
45
+ console.log('Glasses connected! Starting multi-platform stream...');
46
+ session.layouts.showTextWall('Starting multi-platform stream...');
47
+ try {
48
+ const streamResult = await session.camera.startManagedStream({
49
+ quality: '720p',
50
+ enableWebRTC: true,
51
+ // NEW: Add re-streaming destinations
52
+ restreamDestinations: [
53
+ {
54
+ url: 'rtmp://a.rtmp.youtube.com/live2/YOUR-YOUTUBE-STREAM-KEY',
55
+ name: 'YouTube'
56
+ },
57
+ {
58
+ url: 'rtmp://live.twitch.tv/app/YOUR-TWITCH-STREAM-KEY',
59
+ name: 'Twitch'
60
+ },
61
+ {
62
+ url: 'rtmps://live-api-s.facebook.com:443/rtmp/YOUR-FACEBOOK-STREAM-KEY',
63
+ name: 'Facebook'
64
+ }
65
+ ],
66
+ // Optional: Custom encoding settings
67
+ video: {
68
+ width: 1280,
69
+ height: 720,
70
+ bitrate: 2000000, // 2 Mbps
71
+ frameRate: 30
72
+ },
73
+ audio: {
74
+ bitrate: 128000, // 128 kbps
75
+ sampleRate: 48000,
76
+ echoCancellation: true,
77
+ noiseSuppression: true
78
+ }
79
+ });
80
+ console.log('Managed stream started successfully!');
81
+ console.log('Stream ID:', streamResult.streamId);
82
+ console.log('HLS URL:', streamResult.hlsUrl);
83
+ console.log('DASH URL:', streamResult.dashUrl);
84
+ console.log('WebRTC URL:', streamResult.webrtcUrl);
85
+ // The stream is now being:
86
+ // 1. Sent from glasses to the RTMP relay
87
+ // 2. Forwarded to Cloudflare for HLS/DASH distribution
88
+ // 3. Re-streamed to YouTube, Twitch, and Facebook automatically
89
+ }
90
+ catch (error) {
91
+ console.error('Failed to start managed stream:', error);
92
+ session.layouts.showTextWall(`Failed to start stream: ${error instanceof Error ? error.message : String(error)}`);
93
+ }
94
+ });
95
+ // Stop stream when disconnected
96
+ const disconnectCleanup = session.events.onDisconnected(async () => {
97
+ console.log('Glasses disconnected, stopping stream...');
98
+ try {
99
+ await session.camera.stopManagedStream();
100
+ }
101
+ catch (error) {
102
+ console.error('Error stopping stream:', error);
103
+ }
104
+ });
105
+ // Register cleanup handlers
106
+ this.addCleanupHandler(managedStreamCleanup);
107
+ this.addCleanupHandler(connectCleanup);
108
+ this.addCleanupHandler(disconnectCleanup);
109
+ }
110
+ }
111
+ // Start the app server
112
+ const app = new MultiPlatformStreamingApp();
113
+ app.start().catch(console.error);
114
+ // Important notes:
115
+ //
116
+ // 1. Stream Keys: Replace YOUR-*-STREAM-KEY with actual stream keys from each platform
117
+ // 2. Platform Requirements: Each platform has specific requirements:
118
+ // - YouTube: Requires 720p+ resolution, 30fps+, 2.5-4 Mbps bitrate
119
+ // - Twitch: Flexible, but recommends 3-6 Mbps for 1080p
120
+ // - Facebook: Supports up to 1080p, recommends 4 Mbps
121
+ //
122
+ // 3. The RTMP relay automatically transcodes your stream to meet platform requirements
123
+ // 4. You can monitor the status of each output in the ManagedStreamStatus updates
124
+ // 5. If an output fails, the main stream and other outputs continue working