senza-sdk 4.5.4 → 4.5.5
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/dist/implementation.bundle.js +1 -1
- package/package.json +6 -6
- package/src/implementation/alarmManager.js +8 -3
- package/src/implementation/remotePlayer.js +24 -0
- package/src/implementation/utils.js +5 -0
- package/src/interface/remotePlayer.js +9 -1
- package/src/interface/version.js +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "senza-sdk",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.5",
|
|
4
4
|
"main": "./src/api.js",
|
|
5
5
|
"description": "API for Senza application",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
"@babel/preset-env": "^7.22.0",
|
|
30
30
|
"@eslint/eslintrc": "^3.3.0",
|
|
31
31
|
"@eslint/js": "^9.22.0",
|
|
32
|
-
"babel-jest": "^30.
|
|
32
|
+
"babel-jest": "^30.4.1",
|
|
33
33
|
"eslint": "^9.22.0",
|
|
34
34
|
"eslint-plugin-jest": "^28.11.0",
|
|
35
35
|
"globals": "^16.0.0",
|
|
36
|
-
"jest": "^30.2
|
|
37
|
-
"jest-environment-jsdom": "^30.
|
|
36
|
+
"jest": "^30.4.2",
|
|
37
|
+
"jest-environment-jsdom": "^30.4.1",
|
|
38
38
|
"jsdoc-to-markdown": "^7.1.1",
|
|
39
39
|
"webpack": "^5.72.1",
|
|
40
40
|
"webpack-cli": "^5.1.4"
|
|
@@ -55,9 +55,9 @@
|
|
|
55
55
|
},
|
|
56
56
|
"src/interface": {
|
|
57
57
|
"branches": 64,
|
|
58
|
-
"functions":
|
|
58
|
+
"functions": 38,
|
|
59
59
|
"lines": 63,
|
|
60
|
-
"statements":
|
|
60
|
+
"statements": 63
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AlarmManager as AlarmManagerInterface } from "../interface/alarmManager.js";
|
|
2
|
-
import { getFCID, sdkLogger } from "./utils.js";
|
|
2
|
+
import { areAlarmsEnabled, getFCID, sdkLogger } from "./utils.js";
|
|
3
3
|
import { EventListenersManager } from "./eventListenersManager.js";
|
|
4
4
|
import { lifecycle } from "./lifecycle.js";
|
|
5
5
|
import { bus, Events } from "./eventBus";
|
|
@@ -137,8 +137,13 @@ class AlarmManager extends AlarmManagerInterface {
|
|
|
137
137
|
throw Error("data must be a string");
|
|
138
138
|
}
|
|
139
139
|
const FCID = getFCID();
|
|
140
|
-
const
|
|
141
|
-
logger.
|
|
140
|
+
const alarmsEnabled = areAlarmsEnabled();
|
|
141
|
+
const logger = sdkLogger.withFields({ alarmName, FCID, alarmsEnabled });
|
|
142
|
+
logger.log(`addAlarm called for ${alarmName} to be fired at ${alarmTime} with tolerance of ${toleranceBefore} minutes before and ${toleranceAfter} minutes after. alarmsEnabled=${alarmsEnabled}`);
|
|
143
|
+
if (!alarmsEnabled) {
|
|
144
|
+
logger.log("addAlarm is disabled by ui-streamer disableAlarms setting; alarm request will not be sent");
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
142
147
|
if (window.cefQuery) {
|
|
143
148
|
const message = {
|
|
144
149
|
type: "addAlarm",
|
|
@@ -3,6 +3,7 @@ import { RemotePlayer as RemotePlayerInterface, RemotePlayerError as RemotePlaye
|
|
|
3
3
|
import {
|
|
4
4
|
getFCID,
|
|
5
5
|
generatePlaybackId,
|
|
6
|
+
getRestResponse,
|
|
6
7
|
isAudioSyncConfigured,
|
|
7
8
|
clearTimer,
|
|
8
9
|
sdkLogger,
|
|
@@ -1133,6 +1134,29 @@ class RemotePlayer extends RemotePlayerInterface {
|
|
|
1133
1134
|
return this._loadMode;
|
|
1134
1135
|
}
|
|
1135
1136
|
|
|
1137
|
+
/** Get the playback position directly from the connector.
|
|
1138
|
+
* @returns {Promise<number|undefined>} current playback position
|
|
1139
|
+
* @throws {RemotePlayerError} error object contains code & msg
|
|
1140
|
+
*/
|
|
1141
|
+
async getPlaybackPosition() {
|
|
1142
|
+
if (!this._isInitialized) {
|
|
1143
|
+
throw new RemotePlayerError(6500, "Cannot call getPlaybackPosition() if remote player is not initialized");
|
|
1144
|
+
}
|
|
1145
|
+
if (this._loadMode !== this.LoadMode.LOADED) {
|
|
1146
|
+
throw new RemotePlayerError(6001, "Cannot call getPlaybackPosition() if player is not loaded");
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
try {
|
|
1150
|
+
const response = await getRestResponse("playback-position");
|
|
1151
|
+
const { currentVideoPosition } = JSON.parse(response || "{}");
|
|
1152
|
+
return currentVideoPosition;
|
|
1153
|
+
} catch (error) {
|
|
1154
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1155
|
+
sdkLogger.error(`remotePlayer getPlaybackPosition failed: ${message}`);
|
|
1156
|
+
throw new RemotePlayerError(6504, `getPlaybackPosition() failed: ${message}`);
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1136
1160
|
/**
|
|
1137
1161
|
* @typedef {Object} TextTrack
|
|
1138
1162
|
* @property {string} id - A unique ID for the track.
|
|
@@ -143,6 +143,11 @@ export function isAudioSyncConfigured() {
|
|
|
143
143
|
export function isSubtitlesTranslationAllowed() {
|
|
144
144
|
return sessionInfo.sessionInfoObj?.settings?.["ui-streamer"]?.allowSubtitlesTranslation === true;
|
|
145
145
|
}
|
|
146
|
+
|
|
147
|
+
export function areAlarmsEnabled() {
|
|
148
|
+
return sessionInfo.sessionInfoObj?.settings?.["ui-streamer"]?.disableAlarms !== true;
|
|
149
|
+
}
|
|
150
|
+
|
|
146
151
|
export function isSubtitlesTranslationPattern(lang) {
|
|
147
152
|
// This language pattern such as "*:eng" indicates to cloud components to translate subtitles to eng
|
|
148
153
|
return (lang?.toString() || "").startsWith("*:");
|
|
@@ -357,6 +357,14 @@ class RemotePlayer extends EventTarget {
|
|
|
357
357
|
return this.LoadMode.NOT_LOADED;
|
|
358
358
|
}
|
|
359
359
|
|
|
360
|
+
/** Get the playback position directly from the connector. Note that this function can load the system. It is recommended to use it when accurate time is needed and currentTime can not be used.
|
|
361
|
+
* @returns {Promise<number|undefined>} current playback position
|
|
362
|
+
* @throws {RemotePlayerError} error object contains code & msg
|
|
363
|
+
*/
|
|
364
|
+
async getPlaybackPosition() {
|
|
365
|
+
return 0;
|
|
366
|
+
}
|
|
367
|
+
|
|
360
368
|
|
|
361
369
|
/**
|
|
362
370
|
* @typedef {Object} TextTrack
|
|
@@ -481,7 +489,7 @@ class RemotePlayer extends EventTarget {
|
|
|
481
489
|
}
|
|
482
490
|
|
|
483
491
|
/**
|
|
484
|
-
* Getter/Setter for currentTime
|
|
492
|
+
* Getter/Setter for currentTime. Current time can be used to get the current playback position in specific use cases like loading from suspend mode or after a key press.
|
|
485
493
|
*/
|
|
486
494
|
get currentTime() {
|
|
487
495
|
return 0;
|
package/src/interface/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "4.5.
|
|
1
|
+
export const version = "4.5.5";
|