senza-sdk 4.3.2-2e967be.0 → 4.3.2-3c99350.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +1 -1
- package/package.json +4 -4
- package/src/implementation/alarmManager.js +2 -0
- package/src/implementation/api.js +1 -0
- package/src/implementation/deviceManager.js +2 -0
- package/src/implementation/lifecycle.js +2 -0
- package/src/implementation/messageManager.js +2 -0
- package/src/implementation/remotePlayer.js +87 -3
- package/src/interface/remotePlayer.js +21 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "senza-sdk",
|
|
3
|
-
"version": "4.3.2-
|
|
3
|
+
"version": "4.3.2-3c99350.0",
|
|
4
4
|
"main": "./src/api.js",
|
|
5
5
|
"description": "API for Senza application",
|
|
6
6
|
"license": "MIT",
|
|
@@ -51,9 +51,9 @@
|
|
|
51
51
|
},
|
|
52
52
|
"src/interface": {
|
|
53
53
|
"branches": 68.42,
|
|
54
|
-
"functions": 40
|
|
55
|
-
"lines": 65.
|
|
56
|
-
"statements":
|
|
54
|
+
"functions": 40,
|
|
55
|
+
"lines": 65.28,
|
|
56
|
+
"statements": 65.65
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
},
|
|
@@ -27,6 +27,7 @@ class AlarmManager extends AlarmManagerInterface {
|
|
|
27
27
|
* @private
|
|
28
28
|
*/
|
|
29
29
|
_init() {
|
|
30
|
+
sdkLogger.log("Initializing AlarmManager");
|
|
30
31
|
if (!this._isInitialized) {
|
|
31
32
|
this._isInitialized = true;
|
|
32
33
|
this._addSenzaEventListeners();
|
|
@@ -94,6 +95,7 @@ class AlarmManager extends AlarmManagerInterface {
|
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
);
|
|
98
|
+
sdkLogger.log("[AlarmManager] Added event listeners for system events");
|
|
97
99
|
}
|
|
98
100
|
|
|
99
101
|
/**
|
|
@@ -134,6 +134,7 @@ export async function init(interfaceApiVersion, showSequenceFunc, initSequenceFu
|
|
|
134
134
|
alarmManager._init();
|
|
135
135
|
deviceManager._init();
|
|
136
136
|
messageManager._init();
|
|
137
|
+
sdkLogger.log("All submodules initialized");
|
|
137
138
|
|
|
138
139
|
|
|
139
140
|
const devSequence = sessionInfoObj?.settings?.["ui-streamer"]?.devSequence;
|
|
@@ -54,6 +54,7 @@ class DeviceManager extends DeviceManagerInterface {
|
|
|
54
54
|
* @private
|
|
55
55
|
*/
|
|
56
56
|
_init() {
|
|
57
|
+
sdkLogger.log("Initializing DeviceManager");
|
|
57
58
|
if (!this._isInitialized) {
|
|
58
59
|
this._isInitialized = true;
|
|
59
60
|
this._addSenzaEventListeners();
|
|
@@ -71,6 +72,7 @@ class DeviceManager extends DeviceManagerInterface {
|
|
|
71
72
|
wifiInfo.bssid = e.detail.bssid;
|
|
72
73
|
this.dispatchEvent(new Event("wifiInfoUpdated"));
|
|
73
74
|
});
|
|
75
|
+
sdkLogger.log("[DeviceManager] Added event listeners for system events");
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
get deviceInfo() {
|
|
@@ -71,6 +71,7 @@ class Lifecycle extends LifecycleInterface {
|
|
|
71
71
|
* @param {number} [uiStreamerSettings.remotePlayerApiVersion=1] - Remote player API version
|
|
72
72
|
*/
|
|
73
73
|
async _init(uiStreamerSettings, triggerEvent) {
|
|
74
|
+
sdkLogger.log("Initializing Lifecycle");
|
|
74
75
|
if (window.cefQuery) {
|
|
75
76
|
|
|
76
77
|
// Get UI state
|
|
@@ -212,6 +213,7 @@ class Lifecycle extends LifecycleInterface {
|
|
|
212
213
|
this._startCountdown(event.detail.isPlaying);
|
|
213
214
|
}
|
|
214
215
|
});
|
|
216
|
+
sdkLogger.log("[Lifecycle] Added event listeners for system events");
|
|
215
217
|
}
|
|
216
218
|
|
|
217
219
|
/**
|
|
@@ -15,6 +15,7 @@ class MessageManager extends MessageManagerInterface {
|
|
|
15
15
|
* @private
|
|
16
16
|
*/
|
|
17
17
|
_init() {
|
|
18
|
+
sdkLogger.log("Initializing MessageManager");
|
|
18
19
|
if (!this._isInitialized) {
|
|
19
20
|
this._isInitialized = true;
|
|
20
21
|
this._addSenzaEventListeners();
|
|
@@ -29,6 +30,7 @@ class MessageManager extends MessageManagerInterface {
|
|
|
29
30
|
sdkLogger.log("Got hs/externalEvent", JSON.stringify(e.detail));
|
|
30
31
|
this.dispatchEvent(new CustomEvent("message", { detail: { eventName: e.detail.eventName, payload: e.detail.payload, fcid: e.detail.fcid } }));
|
|
31
32
|
});
|
|
33
|
+
sdkLogger.log("[MessageManager] Added event listeners for system events");
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
async registerGroups(groups) {
|
|
@@ -146,9 +146,7 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
146
146
|
* @param {Object} uiStreamerSettings ui-streamer portion of the settings taken from session info
|
|
147
147
|
* */
|
|
148
148
|
async _init(uiStreamerSettings, triggerEvent) {
|
|
149
|
-
|
|
150
|
-
this._systemEventListenersAdded = true;
|
|
151
|
-
}
|
|
149
|
+
sdkLogger.info("Initializing RemotePlayer");
|
|
152
150
|
let playerState = {
|
|
153
151
|
isLoaded: false,
|
|
154
152
|
playbackUrl: ""
|
|
@@ -212,6 +210,7 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
212
210
|
* @private Add event listeners for system events
|
|
213
211
|
*/
|
|
214
212
|
_addSenzaEventListeners() {
|
|
213
|
+
|
|
215
214
|
typeof document !== "undefined" && document.addEventListener("hs/remotePlayerEvent", (e) => {
|
|
216
215
|
sdkLogger.info("Got hs/remotePlayerEvent event with detail", JSON.stringify(e?.detail));
|
|
217
216
|
this.dispatchEvent(new Event(e?.detail?.eventName));
|
|
@@ -294,6 +293,7 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
294
293
|
};
|
|
295
294
|
this.dispatchEvent(licenseRequestEvent);
|
|
296
295
|
});
|
|
296
|
+
sdkLogger.log("[RemotePlayer] Added event listeners for system events");
|
|
297
297
|
}
|
|
298
298
|
|
|
299
299
|
/** @private update audio and text tracks
|
|
@@ -1367,6 +1367,43 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
1367
1367
|
}
|
|
1368
1368
|
}
|
|
1369
1369
|
|
|
1370
|
+
setScreenBlackout(date) {
|
|
1371
|
+
|
|
1372
|
+
if (!this._isInitialized) {
|
|
1373
|
+
throw new RemotePlayerError(6500, "Cannot call setScreenBlackout() if remote player is not initialized");
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
if (this._loadMode !== this.LoadMode.LOADED) {
|
|
1377
|
+
throw new RemotePlayerError(6001, "Cannot call setScreenBlackout() if player is not loaded");
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
if (!(date instanceof Date)) {
|
|
1381
|
+
throw new RemotePlayerError(6503, `date param must be a ${typeof new Date()} object but got ${typeof date}`);
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
if (this._remotePlayerApiVersion < 2) {
|
|
1385
|
+
throw new RemotePlayerError(6504, `setScreenBlackout is not supported in remotePlayerApiVersion=${this._remotePlayerApiVersion}. remotePlayerApiVersion >= 2 required`);
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
const blackoutTime = (date.getTime()/1000).toFixed(2);
|
|
1389
|
+
return this._setScreenBlackout(blackoutTime);
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1392
|
+
resetScreenBlackout() {
|
|
1393
|
+
if (!this._isInitialized) {
|
|
1394
|
+
throw new RemotePlayerError(6500, "Cannot call resetScreenBlackout() if remote player is not initialized");
|
|
1395
|
+
}
|
|
1396
|
+
|
|
1397
|
+
if (this._loadMode !== this.LoadMode.LOADED) {
|
|
1398
|
+
throw new RemotePlayerError(6001, "Cannot call resetScreenBlackout() if player is not loaded");
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
if (this._remotePlayerApiVersion < 2) {
|
|
1402
|
+
throw new RemotePlayerError(6504, `resetScreenBlackout is not supported in remotePlayerApiVersion=${this._remotePlayerApiVersion}. remotePlayerApiVersion >= 2 required`);
|
|
1403
|
+
}
|
|
1404
|
+
return this._setScreenBlackout(0);
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1370
1407
|
/**
|
|
1371
1408
|
* Getter/Setter for currentTime
|
|
1372
1409
|
*/
|
|
@@ -1718,6 +1755,53 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
1718
1755
|
sdkLogger.log(`remotePlayer _atomicSetSubtitleLanguage: textTrackId=${textTrackId} ended.`);
|
|
1719
1756
|
return setLanguageError ? Promise.reject(setLanguageError) : Promise.resolve();
|
|
1720
1757
|
}
|
|
1758
|
+
|
|
1759
|
+
_setScreenBlackout(blackoutTime) {
|
|
1760
|
+
const functionName = blackoutTime === 0 ? "resetScreenBlackout" : "setScreenBlackout";
|
|
1761
|
+
if (window.cefQuery) {
|
|
1762
|
+
const FCID = getFCID();
|
|
1763
|
+
const logger = sdkLogger.withFields({ FCID });
|
|
1764
|
+
logger.log(`remotePlayer ${functionName}: sending screenBlackout action at ${blackoutTime}`);
|
|
1765
|
+
const message = {
|
|
1766
|
+
type: "remotePlayer.screenBlackout",
|
|
1767
|
+
class: "remotePlayer",
|
|
1768
|
+
action: "screenBlackout",
|
|
1769
|
+
fcid: FCID,
|
|
1770
|
+
blackoutTime
|
|
1771
|
+
};
|
|
1772
|
+
const request = { target: "TC", waitForResponse: true, message: JSON.stringify(message) };
|
|
1773
|
+
return new Promise((resolve, reject) => {
|
|
1774
|
+
let timerId = 0;
|
|
1775
|
+
const timeBeforeSendingRequest = Date.now();
|
|
1776
|
+
const queryId = window.cefQuery({
|
|
1777
|
+
request: JSON.stringify(request),
|
|
1778
|
+
persistent: false,
|
|
1779
|
+
onSuccess: () => {
|
|
1780
|
+
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1781
|
+
logger.withFields({ duration }).log(`setBlackoutTime completed successfully after ${duration} ms`);
|
|
1782
|
+
timerId = clearTimer(timerId);
|
|
1783
|
+
resolve();
|
|
1784
|
+
},
|
|
1785
|
+
onFailure: (code, msg) => {
|
|
1786
|
+
const duration = Date.now() - timeBeforeSendingRequest;
|
|
1787
|
+
logger.withFields({ duration }).log(`setBlackoutTime failed after ${duration} ms. Error code: ${code}, error message: ${msg}`);
|
|
1788
|
+
timerId = clearTimer(timerId);
|
|
1789
|
+
reject(new RemotePlayerError(code, msg));
|
|
1790
|
+
}
|
|
1791
|
+
});
|
|
1792
|
+
|
|
1793
|
+
logger.log(`window.cefQuery for ${functionName} returned query id ${queryId}`);
|
|
1794
|
+
const timeout = this._remotePlayerConfirmationTimeout + 1000;
|
|
1795
|
+
timerId = setTimeout(() => {
|
|
1796
|
+
logger.log(`${functionName} reached timeout of ${timeout} ms, canceling query id ${queryId}`);
|
|
1797
|
+
window.cefQueryCancel(queryId);
|
|
1798
|
+
reject(new RemotePlayerError(6000, `${functionName} reached timeout of ${timeout} ms`));
|
|
1799
|
+
}, timeout, queryId);
|
|
1800
|
+
});
|
|
1801
|
+
}
|
|
1802
|
+
sdkLogger.error(`remotePlayer ${functionName}: window.cefQuery is undefined`);
|
|
1803
|
+
return Promise.resolve(undefined);
|
|
1804
|
+
}
|
|
1721
1805
|
}
|
|
1722
1806
|
/**
|
|
1723
1807
|
*
|
|
@@ -116,6 +116,8 @@ export class RemotePlayerError extends Error {
|
|
|
116
116
|
* | 6500 | Player | remotePlayer api was called before initializing remotePlayer |
|
|
117
117
|
* | 6501 | Player | load() was called while previous load/unload was still in progress |
|
|
118
118
|
* | 6502 | Player | unload() was called while previous unload/load was still in progress |
|
|
119
|
+
* | 6503 | Player | The remote player api call has invalid parameters |
|
|
120
|
+
* | 6504 | Player | The remote player api call has invalid api version |
|
|
119
121
|
* | 8001 | Player | Error pulling manifest. bad parameters |
|
|
120
122
|
* | 8002 | Player | Error pulling manifest. filters returned no data |
|
|
121
123
|
* | 8003 | Player | Error pulling manifest. fetch error |
|
|
@@ -397,6 +399,25 @@ class RemotePlayer extends EventTarget {
|
|
|
397
399
|
return noop("RemotePlayer.setTextTrackVisibility", visible);
|
|
398
400
|
}
|
|
399
401
|
|
|
402
|
+
/**
|
|
403
|
+
*
|
|
404
|
+
* @param {Date} date
|
|
405
|
+
* @returns {Promise<void>} A Promise that resolves once the blackout time is set.
|
|
406
|
+
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if date is not a Date object or if the remote player api version is less than 2
|
|
407
|
+
*/
|
|
408
|
+
setScreenBlackout(date) {
|
|
409
|
+
return noop("RemotePlayer.setScreenBlackout", date);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
/**
|
|
413
|
+
*
|
|
414
|
+
* @returns {Promise<void>} A Promise that resolves once the blackout time is reset.
|
|
415
|
+
* @throws {RemotePlayerError} If the player is not initialized or not loaded. if the remote player api version is less than 2
|
|
416
|
+
*/
|
|
417
|
+
resetScreenBlackout() {
|
|
418
|
+
return noop("RemotePlayer.resetScreenBlackout");
|
|
419
|
+
}
|
|
420
|
+
|
|
400
421
|
/**
|
|
401
422
|
* Getter/Setter for currentTime
|
|
402
423
|
*/
|