@mentra/sdk 2.1.1 → 2.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.
Files changed (56) hide show
  1. package/dist/app/session/events.d.ts +2 -1
  2. package/dist/app/session/events.d.ts.map +1 -1
  3. package/dist/app/session/index.d.ts +14 -5
  4. package/dist/app/session/index.d.ts.map +1 -1
  5. package/dist/app/session/index.js +71 -21
  6. package/dist/app/session/modules/audio.d.ts +190 -0
  7. package/dist/app/session/modules/audio.d.ts.map +1 -0
  8. package/dist/app/session/modules/audio.js +317 -0
  9. package/dist/app/session/modules/camera-managed-extension.d.ts +152 -0
  10. package/dist/app/session/modules/camera-managed-extension.d.ts.map +1 -0
  11. package/dist/app/session/modules/camera-managed-extension.js +231 -0
  12. package/dist/app/session/modules/camera.d.ts +55 -1
  13. package/dist/app/session/modules/camera.d.ts.map +1 -1
  14. package/dist/app/session/modules/camera.js +72 -0
  15. package/dist/app/session/modules/index.d.ts +4 -0
  16. package/dist/app/session/modules/index.d.ts.map +1 -0
  17. package/dist/app/session/modules/index.js +19 -0
  18. package/dist/app/session/modules/location.d.ts +16 -0
  19. package/dist/app/session/modules/location.d.ts.map +1 -0
  20. package/dist/app/session/modules/location.js +55 -0
  21. package/dist/app/webview/index.d.ts.map +1 -1
  22. package/dist/app/webview/index.js +0 -1
  23. package/dist/examples/managed-rtmp-streaming-example.d.ts +2 -0
  24. package/dist/examples/managed-rtmp-streaming-example.d.ts.map +1 -0
  25. package/dist/examples/managed-rtmp-streaming-example.js +155 -0
  26. package/dist/index.d.ts +2 -1
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +4 -1
  29. package/dist/types/enums.d.ts +3 -1
  30. package/dist/types/enums.d.ts.map +1 -1
  31. package/dist/types/enums.js +2 -0
  32. package/dist/types/index.d.ts +5 -5
  33. package/dist/types/index.d.ts.map +1 -1
  34. package/dist/types/index.js +7 -1
  35. package/dist/types/message-types.d.ts +14 -2
  36. package/dist/types/message-types.d.ts.map +1 -1
  37. package/dist/types/message-types.js +16 -0
  38. package/dist/types/messages/app-to-cloud.d.ts +65 -3
  39. package/dist/types/messages/app-to-cloud.d.ts.map +1 -1
  40. package/dist/types/messages/app-to-cloud.js +28 -0
  41. package/dist/types/messages/cloud-to-app.d.ts +26 -1
  42. package/dist/types/messages/cloud-to-app.d.ts.map +1 -1
  43. package/dist/types/messages/cloud-to-app.js +8 -0
  44. package/dist/types/messages/cloud-to-glasses.d.ts +38 -1
  45. package/dist/types/messages/cloud-to-glasses.d.ts.map +1 -1
  46. package/dist/types/messages/cloud-to-glasses.js +8 -0
  47. package/dist/types/messages/glasses-to-cloud.d.ts +14 -1
  48. package/dist/types/messages/glasses-to-cloud.d.ts.map +1 -1
  49. package/dist/types/messages/glasses-to-cloud.js +4 -0
  50. package/dist/types/models.d.ts +13 -0
  51. package/dist/types/models.d.ts.map +1 -1
  52. package/dist/types/models.js +9 -0
  53. package/dist/types/streams.d.ts +6 -0
  54. package/dist/types/streams.d.ts.map +1 -1
  55. package/dist/types/streams.js +4 -0
  56. package/package.json +1 -1
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Managed RTMP Streaming Example
5
+ *
6
+ * This example demonstrates how to use the MentraOS SDK's managed streaming
7
+ * feature. With managed streaming, you don't need your own RTMP server -
8
+ * MentraOS handles all the infrastructure and provides viewer URLs.
9
+ *
10
+ * Perfect for:
11
+ * - Social media streaming (X, YouTube Live, TikTok Live)
12
+ * - Quick demos and prototypes
13
+ * - Production apps without existing streaming infrastructure
14
+ */
15
+ const __1 = require("../");
16
+ // Initialize App session
17
+ const session = new __1.AppSession({
18
+ packageName: 'com.example.managed-streaming',
19
+ apiKey: 'your-api-key',
20
+ userId: 'example-user@example.com',
21
+ appServer: {}, // In a real app, this would be a AppServer instance
22
+ mentraOSWebsocketUrl: 'ws://localhost:8002/app-ws'
23
+ });
24
+ // Track current stream for cleanup
25
+ let currentStreamId = null;
26
+ // Connect to MentraOS Cloud and start streaming
27
+ async function main() {
28
+ try {
29
+ // 1. Connect to MentraOS Cloud
30
+ await session.connect('managed-streaming-session');
31
+ console.log('✅ Connected to MentraOS Cloud');
32
+ // 2. Subscribe to stream status updates
33
+ session.subscribe(__1.StreamType.MANAGED_STREAM_STATUS);
34
+ setupStreamStatusHandler();
35
+ // 3. Start managed streaming
36
+ await startManagedStream();
37
+ // 4. Keep streaming for 2 minutes then stop
38
+ setTimeout(async () => {
39
+ await stopManagedStream();
40
+ session.disconnect();
41
+ }, 2 * 60 * 1000);
42
+ }
43
+ catch (error) {
44
+ console.error('❌ Error:', error);
45
+ session.disconnect();
46
+ }
47
+ }
48
+ // Start a managed stream
49
+ async function startManagedStream() {
50
+ try {
51
+ console.log('🎬 Starting managed stream...');
52
+ // Start streaming with zero configuration!
53
+ const result = await session.camera.startManagedStream();
54
+ currentStreamId = result.streamId;
55
+ console.log('\n🎉 Stream started successfully!');
56
+ console.log('📺 Share these URLs with viewers:');
57
+ console.log(` HLS URL (Best compatibility): ${result.hlsUrl}`);
58
+ console.log(` DASH URL (Alternative): ${result.dashUrl}`);
59
+ if (result.webrtcUrl) {
60
+ console.log(` WebRTC URL (Low latency): ${result.webrtcUrl}`);
61
+ }
62
+ console.log('\n💡 Viewers can open the HLS URL in:');
63
+ console.log(' - Any modern web browser');
64
+ console.log(' - VLC Media Player');
65
+ console.log(' - Mobile video players');
66
+ console.log(' - Or embed in your app with video.js or hls.js\n');
67
+ }
68
+ catch (error) {
69
+ console.error('❌ Failed to start managed stream:', error);
70
+ }
71
+ }
72
+ // Example: Enable WebRTC for low-latency viewing
73
+ async function startLowLatencyStream() {
74
+ try {
75
+ const result = await session.camera.startManagedStream({
76
+ enableWebRTC: true
77
+ });
78
+ console.log('✅ Low-latency stream started');
79
+ console.log('🚀 WebRTC URL:', result.webrtcUrl);
80
+ console.log(' (Latency: ~2-3 seconds vs 5-10 seconds for HLS)');
81
+ }
82
+ catch (error) {
83
+ console.error('❌ Failed to start stream:', error);
84
+ }
85
+ }
86
+ // Set up handler for stream status updates
87
+ function setupStreamStatusHandler() {
88
+ session.on(__1.StreamType.MANAGED_STREAM_STATUS, (status) => {
89
+ const timestamp = new Date().toLocaleTimeString();
90
+ switch (status.status) {
91
+ case 'initializing':
92
+ console.log(`[${timestamp}] 📡 Stream initializing...`);
93
+ break;
94
+ case 'active':
95
+ console.log(`[${timestamp}] 🟢 Stream is LIVE!`);
96
+ if (status.hlsUrl) {
97
+ console.log(` View at: ${status.hlsUrl}`);
98
+ }
99
+ break;
100
+ case 'stopping':
101
+ console.log(`[${timestamp}] 🟡 Stream stopping...`);
102
+ break;
103
+ case 'stopped':
104
+ console.log(`[${timestamp}] 🔴 Stream stopped`);
105
+ currentStreamId = null;
106
+ break;
107
+ case 'error':
108
+ console.error(`[${timestamp}] ❌ Stream error: ${status.message}`);
109
+ currentStreamId = null;
110
+ break;
111
+ default:
112
+ console.log(`[${timestamp}] Stream status: ${status.status}`);
113
+ }
114
+ });
115
+ }
116
+ // Stop the managed stream
117
+ async function stopManagedStream() {
118
+ if (!currentStreamId) {
119
+ console.log('No active stream to stop');
120
+ return;
121
+ }
122
+ try {
123
+ console.log('🛑 Stopping managed stream...');
124
+ await session.camera.stopManagedStream();
125
+ console.log('✅ Stream stopped successfully');
126
+ currentStreamId = null;
127
+ }
128
+ catch (error) {
129
+ console.error('❌ Error stopping stream:', error);
130
+ }
131
+ }
132
+ // Handle errors
133
+ session.events.on('error', (error) => {
134
+ console.error('Session error:', error);
135
+ });
136
+ // Handle disconnection
137
+ session.events.on('disconnected', (info) => {
138
+ console.log('Disconnected:', info);
139
+ currentStreamId = null;
140
+ });
141
+ // Graceful shutdown on exit
142
+ process.on('SIGINT', async () => {
143
+ console.log('\n👋 Shutting down...');
144
+ if (currentStreamId) {
145
+ await stopManagedStream();
146
+ }
147
+ session.disconnect();
148
+ process.exit(0);
149
+ });
150
+ // Run the example
151
+ console.log('🚀 Managed RTMP Streaming Example');
152
+ console.log('==================================');
153
+ console.log('This example demonstrates zero-infrastructure streaming.');
154
+ console.log('No RTMP server needed - MentraOS handles everything!\n');
155
+ main().catch(console.error);
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export * from './types/messages/glasses-to-cloud';
5
5
  export * from './types/messages/cloud-to-glasses';
6
6
  export * from './types/messages/app-to-cloud';
7
7
  export { AppConnectionAck, AppConnectionError, AppStopped, SettingsUpdate as AppSettingsUpdate, // Alias to avoid conflict with cloud-to-glasses SettingsUpdate
8
- DataStream, CloudToAppMessage, TranslationData, ToolCall, StandardConnectionError, CustomMessage, MentraosSettingsUpdate, TranscriptionData, AudioChunk, PermissionError, PermissionErrorDetail, isAppConnectionAck, isAppConnectionError, isAppStopped, isSettingsUpdate, isDataStream, isAudioChunk, isDashboardModeChanged, isDashboardAlwaysOnChanged, isPhotoResponse as isPhotoResponseFromCloud, isRtmpStreamStatus as isRtmpStreamStatusFromCloud } from './types/messages/cloud-to-app';
8
+ DataStream, CloudToAppMessage, TranslationData, ToolCall, StandardConnectionError, CustomMessage, ManagedStreamStatus, MentraosSettingsUpdate, TranscriptionData, AudioChunk, PermissionError, PermissionErrorDetail, AudioPlayResponse, isAppConnectionAck, isAppConnectionError, isAppStopped, isSettingsUpdate, isDataStream, isAudioChunk, isDashboardModeChanged, isDashboardAlwaysOnChanged, isManagedStreamStatus, isPhotoResponse as isPhotoResponseFromCloud, isRtmpStreamStatus as isRtmpStreamStatusFromCloud } from './types/messages/cloud-to-app';
9
9
  export * from './types/streams';
10
10
  export * from './types/layouts';
11
11
  export * from './types/dashboard';
@@ -26,6 +26,7 @@ export { isConnectionAck, isDisplayEvent, isAppStateChange, isPhotoRequest, isSe
26
26
  export { isAppConnectionInit, isAppSubscriptionUpdate, isDisplayRequest, isRtmpStreamRequest, isRtmpStreamStopRequest, isPhotoRequest as isPhotoRequestFromApp } from './types/messages/app-to-cloud';
27
27
  export { BaseAppSetting, AppSetting, AppSettings, AppConfig, validateAppConfig, ToolSchema, ToolParameterSchema } from './types/models';
28
28
  export { VideoConfig, AudioConfig, StreamConfig, StreamStatusHandler } from './types/rtmp-stream';
29
+ export * from './app/session/modules';
29
30
  export { PhotoData } from './types/photo-data';
30
31
  /**
31
32
  * WebSocket error information
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.validateAppConfig = exports.isPhotoRequestFromApp = exports.isRtmpStreamStopRequest = exports.isRtmpStreamRequest = exports.isDisplayRequest = exports.isAppSubscriptionUpdate = exports.isAppConnectionInit = exports.isKeepRtmpStreamAlive = exports.isStopRtmpStream = exports.isStartRtmpStream = exports.isSettingsUpdateToGlasses = exports.isPhotoRequest = exports.isAppStateChange = exports.isDisplayEvent = exports.isConnectionAck = exports.isKeepAliveAck = exports.isRtmpStreamStatusFromGlasses = exports.isPhotoResponseFromGlasses = exports.isStopApp = exports.isStartApp = exports.isConnectionInit = exports.isHeadPosition = exports.isButtonPress = exports.isRtmpStreamStatusFromCloud = exports.isPhotoResponseFromCloud = exports.isDashboardAlwaysOnChanged = exports.isDashboardModeChanged = exports.isAudioChunk = exports.isDataStream = exports.isSettingsUpdate = exports.isAppStopped = exports.isAppConnectionError = exports.isAppConnectionAck = void 0;
18
+ exports.validateAppConfig = exports.isPhotoRequestFromApp = exports.isRtmpStreamStopRequest = exports.isRtmpStreamRequest = exports.isDisplayRequest = exports.isAppSubscriptionUpdate = exports.isAppConnectionInit = exports.isKeepRtmpStreamAlive = exports.isStopRtmpStream = exports.isStartRtmpStream = exports.isSettingsUpdateToGlasses = exports.isPhotoRequest = exports.isAppStateChange = exports.isDisplayEvent = exports.isConnectionAck = exports.isKeepAliveAck = exports.isRtmpStreamStatusFromGlasses = exports.isPhotoResponseFromGlasses = exports.isStopApp = exports.isStartApp = exports.isConnectionInit = exports.isHeadPosition = exports.isButtonPress = exports.isRtmpStreamStatusFromCloud = exports.isPhotoResponseFromCloud = exports.isManagedStreamStatus = exports.isDashboardAlwaysOnChanged = exports.isDashboardModeChanged = exports.isAudioChunk = exports.isDataStream = exports.isSettingsUpdate = exports.isAppStopped = exports.isAppConnectionError = exports.isAppConnectionAck = void 0;
19
19
  __exportStar(require("./types/token"), exports);
20
20
  // Message type enums
21
21
  __exportStar(require("./types/message-types"), exports);
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "isDataStream", { enumerable: true, get: function
36
36
  Object.defineProperty(exports, "isAudioChunk", { enumerable: true, get: function () { return cloud_to_app_1.isAudioChunk; } });
37
37
  Object.defineProperty(exports, "isDashboardModeChanged", { enumerable: true, get: function () { return cloud_to_app_1.isDashboardModeChanged; } });
38
38
  Object.defineProperty(exports, "isDashboardAlwaysOnChanged", { enumerable: true, get: function () { return cloud_to_app_1.isDashboardAlwaysOnChanged; } });
39
+ Object.defineProperty(exports, "isManagedStreamStatus", { enumerable: true, get: function () { return cloud_to_app_1.isManagedStreamStatus; } });
39
40
  // Re-export the cloud-to-app versions of these type guards since they're the ones
40
41
  // that should be used when dealing with CloudToAppMessage types
41
42
  Object.defineProperty(exports, "isPhotoResponseFromCloud", { enumerable: true, get: function () { return cloud_to_app_1.isPhotoResponse; } });
@@ -91,3 +92,5 @@ Object.defineProperty(exports, "isPhotoRequestFromApp", { enumerable: true, get:
91
92
  // Export setting-related types
92
93
  var models_1 = require("./types/models");
93
94
  Object.defineProperty(exports, "validateAppConfig", { enumerable: true, get: function () { return models_1.validateAppConfig; } });
95
+ // Export app session modules
96
+ __exportStar(require("./app/session/modules"), exports);
@@ -52,6 +52,8 @@ export declare enum AppSettingType {
52
52
  TEXT_NO_SAVE_BUTTON = "text_no_save_button",
53
53
  SELECT_WITH_SEARCH = "select_with_search",
54
54
  MULTISELECT = "multiselect",
55
- TITLE_VALUE = "titleValue"
55
+ TITLE_VALUE = "titleValue",
56
+ NUMERIC_INPUT = "numeric_input",
57
+ TIME_PICKER = "time_picker"
56
58
  }
57
59
  //# sourceMappingURL=enums.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/types/enums.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,OAAO;IACf,gBAAgB,qBAAqB,CAAG,6CAA6C;IACrF,UAAU,eAAe,CAAe,0CAA0C;IAClF,QAAQ,aAAa;CACxB;AAGD;;GAEG;AACH,oBAAY,QAAQ;IAChB,aAAa,kBAAkB,CAAG,gBAAgB;IAClD,SAAS,cAAc,CAAW,0BAA0B;IAC5D,OAAO,YAAY,CAAe,cAAc;IAChD,OAAO,YAAY,CAAe,qBAAqB;IACvD,OAAO,YAAY,CAAe,mBAAmB;IACrD,KAAK,UAAU;CAClB;AAED;;GAEG;AACH,oBAAY,QAAQ;IAChB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CAEZ;AAED;;GAEG;AACH,oBAAY,UAAU;IAClB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;CAC9B;AAED;;GAEG;AACH,oBAAY,QAAQ;IAChB,SAAS,cAAc,CAAI,oCAAoC;IAC/D,SAAS,cAAc,CAAI,+BAA+B;IAC1D,IAAI,SAAS;CAChB;AAGD,oBAAY,cAAc;IACtB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,WAAW,eAAe;CAC7B"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../src/types/enums.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,oBAAY,OAAO;IACf,gBAAgB,qBAAqB,CAAG,6CAA6C;IACrF,UAAU,eAAe,CAAe,0CAA0C;IAClF,QAAQ,aAAa;CACxB;AAGD;;GAEG;AACH,oBAAY,QAAQ;IAChB,aAAa,kBAAkB,CAAG,gBAAgB;IAClD,SAAS,cAAc,CAAW,0BAA0B;IAC5D,OAAO,YAAY,CAAe,cAAc;IAChD,OAAO,YAAY,CAAe,qBAAqB;IACvD,OAAO,YAAY,CAAe,mBAAmB;IACrD,KAAK,UAAU;CAClB;AAED;;GAEG;AACH,oBAAY,QAAQ;IAChB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,EAAE,OAAO;CAEZ;AAED;;GAEG;AACH,oBAAY,UAAU;IAClB,SAAS,cAAc;IACvB,gBAAgB,qBAAqB;IACrC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,WAAW,gBAAgB;CAC9B;AAED;;GAEG;AACH,oBAAY,QAAQ;IAChB,SAAS,cAAc,CAAI,oCAAoC;IAC/D,SAAS,cAAc,CAAI,+BAA+B;IAC1D,IAAI,SAAS;CAChB;AAGD,oBAAY,cAAc;IACtB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,WAAW,eAAe;IAC1B,aAAa,kBAAkB;IAC/B,WAAW,gBAAgB;CAC9B"}
@@ -66,6 +66,8 @@ var AppSettingType;
66
66
  AppSettingType["SELECT_WITH_SEARCH"] = "select_with_search";
67
67
  AppSettingType["MULTISELECT"] = "multiselect";
68
68
  AppSettingType["TITLE_VALUE"] = "titleValue";
69
+ AppSettingType["NUMERIC_INPUT"] = "numeric_input";
70
+ AppSettingType["TIME_PICKER"] = "time_picker";
69
71
  })(AppSettingType || (exports.AppSettingType = AppSettingType = {}));
70
72
  // | { type: "toggle"; key: string; label: string; defaultValue: boolean }
71
73
  // | { type: "text"; key: string; label: string; defaultValue?: string }
@@ -5,7 +5,7 @@ export * from './messages/glasses-to-cloud';
5
5
  export * from './messages/cloud-to-glasses';
6
6
  export * from './messages/app-to-cloud';
7
7
  export { AppConnectionAck, AppConnectionError, AppStopped, SettingsUpdate as AppSettingsUpdate, // Alias to avoid conflict with cloud-to-glasses SettingsUpdate
8
- DataStream, CloudToAppMessage, TranslationData, ToolCall, StandardConnectionError, CustomMessage, MentraosSettingsUpdate, TranscriptionData, AudioChunk, PermissionError, PermissionErrorDetail, isAppConnectionAck, isAppConnectionError, isAppStopped, isSettingsUpdate, isDataStream, isAudioChunk, isDashboardModeChanged, isDashboardAlwaysOnChanged, isPhotoResponse as isPhotoResponseFromCloud, isRtmpStreamStatus as isRtmpStreamStatusFromCloud } from './messages/cloud-to-app';
8
+ DataStream, CloudToAppMessage, AudioPlayResponse, TranslationData, ToolCall, StandardConnectionError, CustomMessage, ManagedStreamStatus, MentraosSettingsUpdate, TranscriptionData, AudioChunk, PermissionError, PermissionErrorDetail, isAppConnectionAck, isAppConnectionError, isAppStopped, isSettingsUpdate, isDataStream, isAudioChunk, isAudioPlayResponse, isDashboardModeChanged, isDashboardAlwaysOnChanged, isManagedStreamStatus, isPhotoResponse as isPhotoResponseFromCloud, isRtmpStreamStatus as isRtmpStreamStatusFromCloud } from './messages/cloud-to-app';
9
9
  export * from './streams';
10
10
  export * from './layouts';
11
11
  export * from './dashboard';
@@ -17,12 +17,12 @@ export * from './webhooks';
17
17
  export * from './capabilities';
18
18
  export * from './photo-data';
19
19
  export { ButtonPress, HeadPosition, GlassesBatteryUpdate, PhoneBatteryUpdate, GlassesConnectionState, LocationUpdate, CalendarEvent, Vad, PhoneNotification, NotificationDismissed, StartApp, StopApp, ConnectionInit, DashboardState, OpenDashboard, GlassesToCloudMessage, PhotoResponse, RtmpStreamStatus, KeepAliveAck } from './messages/glasses-to-cloud';
20
- export { ConnectionAck, ConnectionError, AuthError, DisplayEvent, AppStateChange, MicrophoneStateChange, CloudToGlassesMessage, PhotoRequestToGlasses, SettingsUpdate, StartRtmpStream, StopRtmpStream, KeepRtmpStreamAlive } from './messages/cloud-to-glasses';
21
- export { AppConnectionInit, AppSubscriptionUpdate, RtmpStreamRequest, RtmpStreamStopRequest, AppToCloudMessage, PhotoRequest } from './messages/app-to-cloud';
20
+ export { ConnectionAck, ConnectionError, AuthError, DisplayEvent, AppStateChange, MicrophoneStateChange, CloudToGlassesMessage, PhotoRequestToGlasses, AudioPlayRequestToGlasses, AudioStopRequestToGlasses, SettingsUpdate, StartRtmpStream, StopRtmpStream, KeepRtmpStreamAlive } from './messages/cloud-to-glasses';
21
+ export { AppConnectionInit, AppSubscriptionUpdate, AudioPlayRequest, AudioStopRequest, RtmpStreamRequest, RtmpStreamStopRequest, AppToCloudMessage, PhotoRequest } from './messages/app-to-cloud';
22
22
  export { TextWall, DoubleTextWall, DashboardCard, ReferenceCard, Layout, DisplayRequest } from './layouts';
23
23
  export { isButtonPress, isHeadPosition, isConnectionInit, isStartApp, isStopApp, isPhotoResponse as isPhotoResponseFromGlasses, isRtmpStreamStatus as isRtmpStreamStatusFromGlasses, isKeepAliveAck } from './messages/glasses-to-cloud';
24
- export { isConnectionAck, isDisplayEvent, isAppStateChange, isPhotoRequest, isSettingsUpdate as isSettingsUpdateToGlasses, isStartRtmpStream, isStopRtmpStream, isKeepRtmpStreamAlive } from './messages/cloud-to-glasses';
25
- export { isAppConnectionInit, isAppSubscriptionUpdate, isDisplayRequest, isRtmpStreamRequest, isRtmpStreamStopRequest, isPhotoRequest as isPhotoRequestFromApp } from './messages/app-to-cloud';
24
+ export { isConnectionAck, isDisplayEvent, isAppStateChange, isPhotoRequest, isAudioPlayRequestToGlasses, isAudioStopRequestToGlasses, isSettingsUpdate as isSettingsUpdateToGlasses, isStartRtmpStream, isStopRtmpStream, isKeepRtmpStreamAlive } from './messages/cloud-to-glasses';
25
+ export { isAppConnectionInit, isAppSubscriptionUpdate, isDisplayRequest, isAudioPlayRequest, isAudioStopRequest, isRtmpStreamRequest, isRtmpStreamStopRequest, isPhotoRequest as isPhotoRequestFromApp } from './messages/app-to-cloud';
26
26
  export { BaseAppSetting, AppSetting, AppSettings, AppConfig, validateAppConfig, ToolSchema, ToolParameterSchema } from './models';
27
27
  export { VideoConfig, AudioConfig, StreamConfig, StreamStatusHandler } from './rtmp-stream';
28
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.validateAppConfig = exports.isPhotoRequestFromApp = exports.isRtmpStreamStopRequest = exports.isRtmpStreamRequest = exports.isDisplayRequest = exports.isAppSubscriptionUpdate = exports.isAppConnectionInit = exports.isKeepRtmpStreamAlive = exports.isStopRtmpStream = exports.isStartRtmpStream = exports.isSettingsUpdateToGlasses = exports.isPhotoRequest = exports.isAppStateChange = exports.isDisplayEvent = exports.isConnectionAck = exports.isKeepAliveAck = exports.isRtmpStreamStatusFromGlasses = exports.isPhotoResponseFromGlasses = exports.isStopApp = exports.isStartApp = exports.isConnectionInit = exports.isHeadPosition = exports.isButtonPress = exports.isRtmpStreamStatusFromCloud = exports.isPhotoResponseFromCloud = exports.isDashboardAlwaysOnChanged = exports.isDashboardModeChanged = exports.isAudioChunk = exports.isDataStream = exports.isSettingsUpdate = exports.isAppStopped = exports.isAppConnectionError = exports.isAppConnectionAck = void 0;
18
+ exports.validateAppConfig = exports.isPhotoRequestFromApp = exports.isRtmpStreamStopRequest = exports.isRtmpStreamRequest = exports.isAudioStopRequest = exports.isAudioPlayRequest = exports.isDisplayRequest = exports.isAppSubscriptionUpdate = exports.isAppConnectionInit = exports.isKeepRtmpStreamAlive = exports.isStopRtmpStream = exports.isStartRtmpStream = exports.isSettingsUpdateToGlasses = exports.isAudioStopRequestToGlasses = exports.isAudioPlayRequestToGlasses = exports.isPhotoRequest = exports.isAppStateChange = exports.isDisplayEvent = exports.isConnectionAck = exports.isKeepAliveAck = exports.isRtmpStreamStatusFromGlasses = exports.isPhotoResponseFromGlasses = exports.isStopApp = exports.isStartApp = exports.isConnectionInit = exports.isHeadPosition = exports.isButtonPress = exports.isRtmpStreamStatusFromCloud = exports.isPhotoResponseFromCloud = exports.isManagedStreamStatus = exports.isDashboardAlwaysOnChanged = exports.isDashboardModeChanged = exports.isAudioPlayResponse = exports.isAudioChunk = exports.isDataStream = exports.isSettingsUpdate = exports.isAppStopped = exports.isAppConnectionError = exports.isAppConnectionAck = void 0;
19
19
  __exportStar(require("./token"), exports);
20
20
  // Message type enums
21
21
  __exportStar(require("./message-types"), exports);
@@ -34,8 +34,10 @@ Object.defineProperty(exports, "isAppStopped", { enumerable: true, get: function
34
34
  Object.defineProperty(exports, "isSettingsUpdate", { enumerable: true, get: function () { return cloud_to_app_1.isSettingsUpdate; } });
35
35
  Object.defineProperty(exports, "isDataStream", { enumerable: true, get: function () { return cloud_to_app_1.isDataStream; } });
36
36
  Object.defineProperty(exports, "isAudioChunk", { enumerable: true, get: function () { return cloud_to_app_1.isAudioChunk; } });
37
+ Object.defineProperty(exports, "isAudioPlayResponse", { enumerable: true, get: function () { return cloud_to_app_1.isAudioPlayResponse; } });
37
38
  Object.defineProperty(exports, "isDashboardModeChanged", { enumerable: true, get: function () { return cloud_to_app_1.isDashboardModeChanged; } });
38
39
  Object.defineProperty(exports, "isDashboardAlwaysOnChanged", { enumerable: true, get: function () { return cloud_to_app_1.isDashboardAlwaysOnChanged; } });
40
+ Object.defineProperty(exports, "isManagedStreamStatus", { enumerable: true, get: function () { return cloud_to_app_1.isManagedStreamStatus; } });
39
41
  // Re-export the cloud-to-app versions of these type guards since they're the ones
40
42
  // that should be used when dealing with CloudToAppMessage types
41
43
  Object.defineProperty(exports, "isPhotoResponseFromCloud", { enumerable: true, get: function () { return cloud_to_app_1.isPhotoResponse; } });
@@ -75,6 +77,8 @@ Object.defineProperty(exports, "isConnectionAck", { enumerable: true, get: funct
75
77
  Object.defineProperty(exports, "isDisplayEvent", { enumerable: true, get: function () { return cloud_to_glasses_1.isDisplayEvent; } });
76
78
  Object.defineProperty(exports, "isAppStateChange", { enumerable: true, get: function () { return cloud_to_glasses_1.isAppStateChange; } });
77
79
  Object.defineProperty(exports, "isPhotoRequest", { enumerable: true, get: function () { return cloud_to_glasses_1.isPhotoRequest; } });
80
+ Object.defineProperty(exports, "isAudioPlayRequestToGlasses", { enumerable: true, get: function () { return cloud_to_glasses_1.isAudioPlayRequestToGlasses; } });
81
+ Object.defineProperty(exports, "isAudioStopRequestToGlasses", { enumerable: true, get: function () { return cloud_to_glasses_1.isAudioStopRequestToGlasses; } });
78
82
  Object.defineProperty(exports, "isSettingsUpdateToGlasses", { enumerable: true, get: function () { return cloud_to_glasses_1.isSettingsUpdate; } });
79
83
  Object.defineProperty(exports, "isStartRtmpStream", { enumerable: true, get: function () { return cloud_to_glasses_1.isStartRtmpStream; } });
80
84
  Object.defineProperty(exports, "isStopRtmpStream", { enumerable: true, get: function () { return cloud_to_glasses_1.isStopRtmpStream; } });
@@ -83,6 +87,8 @@ var app_to_cloud_1 = require("./messages/app-to-cloud");
83
87
  Object.defineProperty(exports, "isAppConnectionInit", { enumerable: true, get: function () { return app_to_cloud_1.isAppConnectionInit; } });
84
88
  Object.defineProperty(exports, "isAppSubscriptionUpdate", { enumerable: true, get: function () { return app_to_cloud_1.isAppSubscriptionUpdate; } });
85
89
  Object.defineProperty(exports, "isDisplayRequest", { enumerable: true, get: function () { return app_to_cloud_1.isDisplayRequest; } });
90
+ Object.defineProperty(exports, "isAudioPlayRequest", { enumerable: true, get: function () { return app_to_cloud_1.isAudioPlayRequest; } });
91
+ Object.defineProperty(exports, "isAudioStopRequest", { enumerable: true, get: function () { return app_to_cloud_1.isAudioStopRequest; } });
86
92
  Object.defineProperty(exports, "isRtmpStreamRequest", { enumerable: true, get: function () { return app_to_cloud_1.isRtmpStreamRequest; } });
87
93
  Object.defineProperty(exports, "isRtmpStreamStopRequest", { enumerable: true, get: function () { return app_to_cloud_1.isRtmpStreamStopRequest; } });
88
94
  Object.defineProperty(exports, "isPhotoRequestFromApp", { enumerable: true, get: function () { return app_to_cloud_1.isPhotoRequest; } });
@@ -24,7 +24,8 @@ export declare enum GlassesToCloudMessageType {
24
24
  CALENDAR_EVENT = "calendar_event",
25
25
  MENTRAOS_SETTINGS_UPDATE_REQUEST = "settings_update_request",
26
26
  CORE_STATUS_UPDATE = "core_status_update",
27
- PHOTO_TAKEN = "photo_taken"
27
+ PHOTO_TAKEN = "photo_taken",
28
+ AUDIO_PLAY_RESPONSE = "audio_play_response"
28
29
  }
29
30
  /**
30
31
  * Types of messages from cloud to glasses
@@ -37,12 +38,16 @@ export declare enum CloudToGlassesMessageType {
37
38
  APP_STATE_CHANGE = "app_state_change",
38
39
  MICROPHONE_STATE_CHANGE = "microphone_state_change",
39
40
  PHOTO_REQUEST = "photo_request",
41
+ AUDIO_PLAY_REQUEST = "audio_play_request",
42
+ AUDIO_STOP_REQUEST = "audio_stop_request",
40
43
  SETTINGS_UPDATE = "settings_update",
41
44
  START_RTMP_STREAM = "start_rtmp_stream",
42
45
  STOP_RTMP_STREAM = "stop_rtmp_stream",
43
46
  KEEP_RTMP_STREAM_ALIVE = "keep_rtmp_stream_alive",
44
47
  DASHBOARD_MODE_CHANGE = "dashboard_mode_change",
45
48
  DASHBOARD_ALWAYS_ON_CHANGE = "dashboard_always_on_change",
49
+ SET_LOCATION_TIER = "set_location_tier",
50
+ REQUEST_SINGLE_LOCATION = "request_single_location",
46
51
  WEBSOCKET_ERROR = "websocket_error"
47
52
  }
48
53
  /**
@@ -51,10 +56,15 @@ export declare enum CloudToGlassesMessageType {
51
56
  export declare enum AppToCloudMessageType {
52
57
  CONNECTION_INIT = "tpa_connection_init",
53
58
  SUBSCRIPTION_UPDATE = "subscription_update",
59
+ LOCATION_POLL_REQUEST = "location_poll_request",
54
60
  DISPLAY_REQUEST = "display_event",
55
61
  PHOTO_REQUEST = "photo_request",
62
+ AUDIO_PLAY_REQUEST = "audio_play_request",
63
+ AUDIO_STOP_REQUEST = "audio_stop_request",
56
64
  RTMP_STREAM_REQUEST = "rtmp_stream_request",
57
65
  RTMP_STREAM_STOP = "rtmp_stream_stop",
66
+ MANAGED_STREAM_REQUEST = "managed_stream_request",
67
+ MANAGED_STREAM_STOP = "managed_stream_stop",
58
68
  DASHBOARD_CONTENT_UPDATE = "dashboard_content_update",
59
69
  DASHBOARD_MODE_CHANGE = "dashboard_mode_change",
60
70
  DASHBOARD_SYSTEM_UPDATE = "dashboard_system_update",
@@ -76,7 +86,9 @@ export declare enum CloudToAppMessageType {
76
86
  DASHBOARD_ALWAYS_ON_CHANGED = "dashboard_always_on_changed",
77
87
  DATA_STREAM = "data_stream",
78
88
  PHOTO_RESPONSE = "photo_response",
89
+ AUDIO_PLAY_RESPONSE = "audio_play_response",
79
90
  RTMP_STREAM_STATUS = "rtmp_stream_status",
91
+ MANAGED_STREAM_STATUS = "managed_stream_status",
80
92
  WEBSOCKET_ERROR = "websocket_error",
81
93
  PERMISSION_ERROR = "permission_error",
82
94
  CUSTOM_MESSAGE = "custom_message",
@@ -101,7 +113,7 @@ export declare const ResponseTypes: readonly [CloudToGlassesMessageType.CONNECTI
101
113
  /**
102
114
  * Update message types (subset of CloudToGlassesMessageType)
103
115
  */
104
- export declare const UpdateTypes: readonly [CloudToGlassesMessageType.DISPLAY_EVENT, CloudToGlassesMessageType.APP_STATE_CHANGE, CloudToGlassesMessageType.MICROPHONE_STATE_CHANGE, CloudToGlassesMessageType.PHOTO_REQUEST, CloudToGlassesMessageType.SETTINGS_UPDATE, CloudToGlassesMessageType.DASHBOARD_MODE_CHANGE, CloudToGlassesMessageType.DASHBOARD_ALWAYS_ON_CHANGE, CloudToGlassesMessageType.START_RTMP_STREAM, CloudToGlassesMessageType.STOP_RTMP_STREAM, CloudToGlassesMessageType.KEEP_RTMP_STREAM_ALIVE];
116
+ export declare const UpdateTypes: readonly [CloudToGlassesMessageType.DISPLAY_EVENT, CloudToGlassesMessageType.APP_STATE_CHANGE, CloudToGlassesMessageType.MICROPHONE_STATE_CHANGE, CloudToGlassesMessageType.PHOTO_REQUEST, CloudToGlassesMessageType.AUDIO_PLAY_REQUEST, CloudToGlassesMessageType.AUDIO_STOP_REQUEST, CloudToGlassesMessageType.SETTINGS_UPDATE, CloudToGlassesMessageType.DASHBOARD_MODE_CHANGE, CloudToGlassesMessageType.DASHBOARD_ALWAYS_ON_CHANGE, CloudToGlassesMessageType.START_RTMP_STREAM, CloudToGlassesMessageType.STOP_RTMP_STREAM, CloudToGlassesMessageType.KEEP_RTMP_STREAM_ALIVE];
105
117
  /**
106
118
  * Dashboard message types
107
119
  */
@@ -1 +1 @@
1
- {"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../src/types/message-types.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,oBAAY,yBAAyB;IAEnC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IAIrC,SAAS,cAAuB;IAChC,QAAQ,aAAsB;IAE9B,eAAe,oBAAoB;IACnC,cAAc,mBAA4B;IAG1C,cAAc,mBAA4B;IAG1C,kBAAkB,uBAAgC;IAClD,cAAc,mBAAmB;IAajC,YAAY,iBAA0B;IACtC,aAAa,kBAA2B;IACxC,sBAAsB,2BAAoC;IAC1D,oBAAoB,yBAAkC;IACtD,wBAAwB,6BAAsC;IAC9D,eAAe,oBAA6B;IAC5C,eAAe,oBAA6B;IAC5C,GAAG,QAAiB;IACpB,kBAAkB,uBAAgC;IAClD,sBAAsB,2BAAoC;IAC1D,cAAc,mBAA4B;IAC1C,gCAAgC,4BAA8C;IAC9E,kBAAkB,uBAAgC;IAClD,WAAW,gBAAyB;CACrC;AAED;;GAEG;AACH,oBAAY,yBAAyB;IAEnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IAGzB,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,aAAa,kBAAkB;IAC/B,eAAe,oBAAoB;IAGnC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IAGjD,qBAAqB,0BAA0B;IAC/C,0BAA0B,+BAA+B;IAEzD,eAAe,oBAAoB;CACpC;AAED;;GAEG;AACH,oBAAY,qBAAqB;IAE/B,eAAe,wBAAwB;IACvC,mBAAmB,wBAAwB;IAG3C,eAAe,kBAAkB;IACjC,aAAa,kBAAkB;IAG/B,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IAGrC,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IAGnD,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;CAClC;AAED;;GAEG;AACH,oBAAY,qBAAqB;IAE/B,cAAc,uBAAuB;IACrC,gBAAgB,yBAAyB;IAGzC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IAGnC,sBAAsB,2BAA2B;IACjD,2BAA2B,gCAAgC;IAG3D,WAAW,gBAAgB;IAG3B,cAAc,mBAAmB;IACjC,kBAAkB,uBAAuB;IAEzC,eAAe,oBAAoB;IAGnC,gBAAgB,qBAAqB;IAGrC,cAAc,mBAAmB;IAGjC,oBAAoB,yBAAyB;IAC7C,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,2BAA2B,gCAAgC;CAC5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oNAMrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,2lBAcb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa,uIAIhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW,ydAWd,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB,wPAMxB,CAAC"}
1
+ {"version":3,"file":"message-types.d.ts","sourceRoot":"","sources":["../../src/types/message-types.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,oBAAY,yBAAyB;IAEnC,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IAIrC,SAAS,cAAuB;IAChC,QAAQ,aAAsB;IAE9B,eAAe,oBAAoB;IACnC,cAAc,mBAA4B;IAG1C,cAAc,mBAA4B;IAG1C,kBAAkB,uBAAgC;IAClD,cAAc,mBAAmB;IAajC,YAAY,iBAA0B;IACtC,aAAa,kBAA2B;IACxC,sBAAsB,2BAAoC;IAC1D,oBAAoB,yBAAkC;IACtD,wBAAwB,6BAAsC;IAC9D,eAAe,oBAA6B;IAC5C,eAAe,oBAA6B;IAC5C,GAAG,QAAiB;IACpB,kBAAkB,uBAAgC;IAClD,sBAAsB,2BAAoC;IAC1D,cAAc,mBAA4B;IAC1C,gCAAgC,4BAA8C;IAC9E,kBAAkB,uBAAgC;IAClD,WAAW,gBAAyB;IACpC,mBAAmB,wBAAwB;CAC5C;AAED;;GAEG;AACH,oBAAY,yBAAyB;IAEnC,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;IAGzB,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,uBAAuB,4BAA4B;IACnD,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IAGnC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,sBAAsB,2BAA2B;IAGjD,qBAAqB,0BAA0B;IAC/C,0BAA0B,+BAA+B;IAGzD,iBAAiB,sBAAsB;IACvC,uBAAuB,4BAA4B;IAEnD,eAAe,oBAAoB;CACpC;AAED;;GAEG;AACH,oBAAY,qBAAqB;IAE/B,eAAe,wBAAwB;IACvC,mBAAmB,wBAAwB;IAC3C,qBAAqB,0BAA0B;IAG/C,eAAe,kBAAkB;IACjC,aAAa,kBAAkB;IAC/B,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IAGzC,mBAAmB,wBAAwB;IAC3C,gBAAgB,qBAAqB;IAGrC,sBAAsB,2BAA2B;IACjD,mBAAmB,wBAAwB;IAG3C,wBAAwB,6BAA6B;IACrD,qBAAqB,0BAA0B;IAC/C,uBAAuB,4BAA4B;IAGnD,qBAAqB,0BAA0B;IAC/C,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;CAClC;AAED;;GAEG;AACH,oBAAY,qBAAqB;IAE/B,cAAc,uBAAuB;IACrC,gBAAgB,yBAAyB;IAGzC,WAAW,gBAAgB;IAC3B,eAAe,oBAAoB;IAGnC,sBAAsB,2BAA2B;IACjD,2BAA2B,gCAAgC;IAG3D,WAAW,gBAAgB;IAG3B,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;IAC3C,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAE/C,eAAe,oBAAoB;IAGnC,gBAAgB,qBAAqB;IAGrC,cAAc,mBAAmB;IAGjC,oBAAoB,yBAAyB;IAC7C,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,2BAA2B,gCAAgC;CAC5D;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,oNAMrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,2lBAcb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa,uIAIhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW,qjBAad,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB,wPAMxB,CAAC"}
@@ -45,6 +45,7 @@ var GlassesToCloudMessageType;
45
45
  GlassesToCloudMessageType["MENTRAOS_SETTINGS_UPDATE_REQUEST"] = "settings_update_request";
46
46
  GlassesToCloudMessageType["CORE_STATUS_UPDATE"] = "core_status_update";
47
47
  GlassesToCloudMessageType["PHOTO_TAKEN"] = "photo_taken";
48
+ GlassesToCloudMessageType["AUDIO_PLAY_RESPONSE"] = "audio_play_response";
48
49
  })(GlassesToCloudMessageType || (exports.GlassesToCloudMessageType = GlassesToCloudMessageType = {}));
49
50
  /**
50
51
  * Types of messages from cloud to glasses
@@ -60,6 +61,8 @@ var CloudToGlassesMessageType;
60
61
  CloudToGlassesMessageType["APP_STATE_CHANGE"] = "app_state_change";
61
62
  CloudToGlassesMessageType["MICROPHONE_STATE_CHANGE"] = "microphone_state_change";
62
63
  CloudToGlassesMessageType["PHOTO_REQUEST"] = "photo_request";
64
+ CloudToGlassesMessageType["AUDIO_PLAY_REQUEST"] = "audio_play_request";
65
+ CloudToGlassesMessageType["AUDIO_STOP_REQUEST"] = "audio_stop_request";
63
66
  CloudToGlassesMessageType["SETTINGS_UPDATE"] = "settings_update";
64
67
  // RTMP streaming
65
68
  CloudToGlassesMessageType["START_RTMP_STREAM"] = "start_rtmp_stream";
@@ -68,6 +71,9 @@ var CloudToGlassesMessageType;
68
71
  // Dashboard updates
69
72
  CloudToGlassesMessageType["DASHBOARD_MODE_CHANGE"] = "dashboard_mode_change";
70
73
  CloudToGlassesMessageType["DASHBOARD_ALWAYS_ON_CHANGE"] = "dashboard_always_on_change";
74
+ // Location Service
75
+ CloudToGlassesMessageType["SET_LOCATION_TIER"] = "set_location_tier";
76
+ CloudToGlassesMessageType["REQUEST_SINGLE_LOCATION"] = "request_single_location";
71
77
  CloudToGlassesMessageType["WEBSOCKET_ERROR"] = "websocket_error";
72
78
  })(CloudToGlassesMessageType || (exports.CloudToGlassesMessageType = CloudToGlassesMessageType = {}));
73
79
  /**
@@ -78,12 +84,18 @@ var AppToCloudMessageType;
78
84
  // Commands
79
85
  AppToCloudMessageType["CONNECTION_INIT"] = "tpa_connection_init";
80
86
  AppToCloudMessageType["SUBSCRIPTION_UPDATE"] = "subscription_update";
87
+ AppToCloudMessageType["LOCATION_POLL_REQUEST"] = "location_poll_request";
81
88
  // Requests
82
89
  AppToCloudMessageType["DISPLAY_REQUEST"] = "display_event";
83
90
  AppToCloudMessageType["PHOTO_REQUEST"] = "photo_request";
91
+ AppToCloudMessageType["AUDIO_PLAY_REQUEST"] = "audio_play_request";
92
+ AppToCloudMessageType["AUDIO_STOP_REQUEST"] = "audio_stop_request";
84
93
  // RTMP streaming
85
94
  AppToCloudMessageType["RTMP_STREAM_REQUEST"] = "rtmp_stream_request";
86
95
  AppToCloudMessageType["RTMP_STREAM_STOP"] = "rtmp_stream_stop";
96
+ // Managed RTMP streaming
97
+ AppToCloudMessageType["MANAGED_STREAM_REQUEST"] = "managed_stream_request";
98
+ AppToCloudMessageType["MANAGED_STREAM_STOP"] = "managed_stream_stop";
87
99
  // Dashboard requests
88
100
  AppToCloudMessageType["DASHBOARD_CONTENT_UPDATE"] = "dashboard_content_update";
89
101
  AppToCloudMessageType["DASHBOARD_MODE_CHANGE"] = "dashboard_mode_change";
@@ -113,7 +125,9 @@ var CloudToAppMessageType;
113
125
  CloudToAppMessageType["DATA_STREAM"] = "data_stream";
114
126
  // Media responses
115
127
  CloudToAppMessageType["PHOTO_RESPONSE"] = "photo_response";
128
+ CloudToAppMessageType["AUDIO_PLAY_RESPONSE"] = "audio_play_response";
116
129
  CloudToAppMessageType["RTMP_STREAM_STATUS"] = "rtmp_stream_status";
130
+ CloudToAppMessageType["MANAGED_STREAM_STATUS"] = "managed_stream_status";
117
131
  CloudToAppMessageType["WEBSOCKET_ERROR"] = "websocket_error";
118
132
  // Permissions
119
133
  CloudToAppMessageType["PERMISSION_ERROR"] = "permission_error";
@@ -170,6 +184,8 @@ exports.UpdateTypes = [
170
184
  CloudToGlassesMessageType.APP_STATE_CHANGE,
171
185
  CloudToGlassesMessageType.MICROPHONE_STATE_CHANGE,
172
186
  CloudToGlassesMessageType.PHOTO_REQUEST,
187
+ CloudToGlassesMessageType.AUDIO_PLAY_REQUEST,
188
+ CloudToGlassesMessageType.AUDIO_STOP_REQUEST,
173
189
  CloudToGlassesMessageType.SETTINGS_UPDATE,
174
190
  CloudToGlassesMessageType.DASHBOARD_MODE_CHANGE,
175
191
  CloudToGlassesMessageType.DASHBOARD_ALWAYS_ON_CHANGE,
@@ -1,9 +1,10 @@
1
1
  import { BaseMessage } from './base';
2
2
  import { AppToCloudMessageType } from '../message-types';
3
- import { ExtendedStreamType } from '../streams';
3
+ import { ExtendedStreamType, LocationStreamRequest } from '../streams';
4
4
  import { DisplayRequest } from '../layouts';
5
5
  import { DashboardContentUpdate, DashboardModeChange, DashboardSystemUpdate } from '../dashboard';
6
6
  import { VideoConfig, AudioConfig, StreamConfig } from '../rtmp-stream';
7
+ export type SubscriptionRequest = ExtendedStreamType | LocationStreamRequest;
7
8
  /**
8
9
  * Connection initialization from App
9
10
  */
@@ -19,7 +20,7 @@ export interface AppConnectionInit extends BaseMessage {
19
20
  export interface AppSubscriptionUpdate extends BaseMessage {
20
21
  type: AppToCloudMessageType.SUBSCRIPTION_UPDATE;
21
22
  packageName: string;
22
- subscriptions: ExtendedStreamType[];
23
+ subscriptions: SubscriptionRequest[];
23
24
  }
24
25
  /**
25
26
  * Photo request from App
@@ -49,10 +50,55 @@ export interface RtmpStreamStopRequest extends BaseMessage {
49
50
  packageName: string;
50
51
  streamId?: string;
51
52
  }
53
+ export interface AppLocationPollRequest extends BaseMessage {
54
+ type: AppToCloudMessageType.LOCATION_POLL_REQUEST;
55
+ packageName: string;
56
+ sessionId: string;
57
+ accuracy: string;
58
+ correlationId: string;
59
+ }
60
+ /**
61
+ * Managed RTMP stream request from App
62
+ * The cloud handles the RTMP endpoint and returns HLS/DASH URLs
63
+ */
64
+ export interface ManagedStreamRequest extends BaseMessage {
65
+ type: AppToCloudMessageType.MANAGED_STREAM_REQUEST;
66
+ packageName: string;
67
+ quality?: '720p' | '1080p';
68
+ enableWebRTC?: boolean;
69
+ video?: VideoConfig;
70
+ audio?: AudioConfig;
71
+ stream?: StreamConfig;
72
+ }
73
+ /**
74
+ * Managed RTMP stream stop request from App
75
+ */
76
+ export interface ManagedStreamStopRequest extends BaseMessage {
77
+ type: AppToCloudMessageType.MANAGED_STREAM_STOP;
78
+ packageName: string;
79
+ }
80
+ /**
81
+ * Audio play request from App
82
+ */
83
+ export interface AudioPlayRequest extends BaseMessage {
84
+ type: AppToCloudMessageType.AUDIO_PLAY_REQUEST;
85
+ packageName: string;
86
+ requestId: string;
87
+ audioUrl: string;
88
+ volume?: number;
89
+ stopOtherAudio?: boolean;
90
+ }
91
+ /**
92
+ * Audio stop request from App
93
+ */
94
+ export interface AudioStopRequest extends BaseMessage {
95
+ type: AppToCloudMessageType.AUDIO_STOP_REQUEST;
96
+ packageName: string;
97
+ }
52
98
  /**
53
99
  * Union type for all messages from Apps to cloud
54
100
  */
55
- export type AppToCloudMessage = AppConnectionInit | AppSubscriptionUpdate | DisplayRequest | PhotoRequest | RtmpStreamRequest | RtmpStreamStopRequest | DashboardContentUpdate | DashboardModeChange | DashboardSystemUpdate | AppBroadcastMessage | AppDirectMessage | AppUserDiscovery | AppRoomJoin | AppRoomLeave;
101
+ export type AppToCloudMessage = AppConnectionInit | AppSubscriptionUpdate | AppLocationPollRequest | DisplayRequest | PhotoRequest | AudioPlayRequest | AudioStopRequest | RtmpStreamRequest | RtmpStreamStopRequest | ManagedStreamRequest | ManagedStreamStopRequest | DashboardContentUpdate | DashboardModeChange | DashboardSystemUpdate | AppBroadcastMessage | AppDirectMessage | AppUserDiscovery | AppRoomJoin | AppRoomLeave;
56
102
  /**
57
103
  * Type guard to check if a message is a App connection init
58
104
  */
@@ -69,6 +115,14 @@ export declare function isDisplayRequest(message: AppToCloudMessage): message is
69
115
  * Type guard to check if a message is a App photo request
70
116
  */
71
117
  export declare function isPhotoRequest(message: AppToCloudMessage): message is PhotoRequest;
118
+ /**
119
+ * Type guard to check if a message is a App audio play request
120
+ */
121
+ export declare function isAudioPlayRequest(message: AppToCloudMessage): message is AudioPlayRequest;
122
+ /**
123
+ * Type guard to check if a message is a App audio stop request
124
+ */
125
+ export declare function isAudioStopRequest(message: AppToCloudMessage): message is AudioStopRequest;
72
126
  /**
73
127
  * Type guard to check if a message is a dashboard content update
74
128
  */
@@ -81,6 +135,14 @@ export declare function isDashboardModeChange(message: AppToCloudMessage): messa
81
135
  * Type guard to check if a message is a dashboard system update
82
136
  */
83
137
  export declare function isDashboardSystemUpdate(message: AppToCloudMessage): message is DashboardSystemUpdate;
138
+ /**
139
+ * Type guard to check if a message is a managed stream request
140
+ */
141
+ export declare function isManagedStreamRequest(message: AppToCloudMessage): message is ManagedStreamRequest;
142
+ /**
143
+ * Type guard to check if a message is a managed stream stop request
144
+ */
145
+ export declare function isManagedStreamStopRequest(message: AppToCloudMessage): message is ManagedStreamStopRequest;
84
146
  /**
85
147
  * Broadcast message to all users with the same App active
86
148
  */
@@ -1 +1 @@
1
- {"version":3,"file":"app-to-cloud.d.ts","sourceRoot":"","sources":["../../../src/types/messages/app-to-cloud.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-to-cloud.d.ts","sourceRoot":"","sources":["../../../src/types/messages/app-to-cloud.ts"],"names":[],"mappings":"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"}