@norskvideo/norsk-studio-built-ins 1.14.0 → 1.15.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/client/info.js +224 -224
- package/lib/info.js +2 -2
- package/lib/info.js.map +1 -1
- package/lib/processor.onscreenGraphic/image-selection.d.ts +9 -0
- package/lib/{processor.dynamicBug/bug-selection.js → processor.onscreenGraphic/image-selection.js} +10 -10
- package/lib/processor.onscreenGraphic/image-selection.js.map +1 -0
- package/lib/processor.onscreenGraphic/info.d.ts +3 -0
- package/lib/{processor.dynamicBug → processor.onscreenGraphic}/info.js +10 -10
- package/lib/processor.onscreenGraphic/info.js.map +1 -0
- package/lib/processor.onscreenGraphic/runtime.d.ts +67 -0
- package/lib/{processor.dynamicBug → processor.onscreenGraphic}/runtime.js +75 -75
- package/lib/processor.onscreenGraphic/runtime.js.map +1 -0
- package/lib/processor.onscreenGraphic/summary-view.d.ts +4 -0
- package/lib/processor.onscreenGraphic/summary-view.js +128 -0
- package/lib/processor.onscreenGraphic/summary-view.js.map +1 -0
- package/lib/{processor.dynamicBug → processor.onscreenGraphic}/types.d.ts +2 -2
- package/lib/processor.onscreenGraphic/types.js.map +1 -0
- package/lib/{processor.dynamicBug → processor.onscreenGraphic}/types.yaml +7 -7
- package/lib/test/{dynamic-bug.js → onscreen-graphic.js} +79 -79
- package/lib/test/onscreen-graphic.js.map +1 -0
- package/package.json +3 -3
- package/lib/processor.dynamicBug/bug-selection.d.ts +0 -9
- package/lib/processor.dynamicBug/bug-selection.js.map +0 -1
- package/lib/processor.dynamicBug/info.d.ts +0 -3
- package/lib/processor.dynamicBug/info.js.map +0 -1
- package/lib/processor.dynamicBug/runtime.d.ts +0 -67
- package/lib/processor.dynamicBug/runtime.js.map +0 -1
- package/lib/processor.dynamicBug/summary-view.d.ts +0 -4
- package/lib/processor.dynamicBug/summary-view.js +0 -128
- package/lib/processor.dynamicBug/summary-view.js.map +0 -1
- package/lib/processor.dynamicBug/types.js.map +0 -1
- package/lib/test/dynamic-bug.js.map +0 -1
- /package/lib/{processor.dynamicBug → processor.onscreenGraphic}/types.js +0 -0
- /package/lib/test/{dynamic-bug.d.ts → onscreen-graphic.d.ts} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/processor.onscreenGraphic/runtime.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import type { OnscreenGraphicState, OnscreenGraphicConfig, OnscreenGraphicCommand } from "./runtime";
|
2
|
+
import { ViewProps } from "@norskvideo/norsk-studio/lib/extension/client-types";
|
3
|
+
declare function SummaryView({ state, sendCommand, urls }: ViewProps<OnscreenGraphicConfig, OnscreenGraphicState, OnscreenGraphicCommand>): import("react/jsx-runtime").JSX.Element;
|
4
|
+
export default SummaryView;
|
@@ -0,0 +1,128 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
4
|
+
const react_1 = require("react");
|
5
|
+
function SummaryView({ state, sendCommand, urls }) {
|
6
|
+
const [graphic, setGraphic] = (0, react_1.useState)(state.activeGraphic?.file);
|
7
|
+
const [position, setPosition] = (0, react_1.useState)(state.activeGraphic?.position);
|
8
|
+
const [graphics, setGraphics] = (0, react_1.useState)([]);
|
9
|
+
const [fileToUpload, setFileToUpload] = (0, react_1.useState)(undefined);
|
10
|
+
const [showFileInput, setShowFileInput] = (0, react_1.useState)(false);
|
11
|
+
const [showUploadButton, setShowUploadButton] = (0, react_1.useState)(false);
|
12
|
+
const [uploadStatus, setUploadStatus] = (0, react_1.useState)({ success: false, message: null });
|
13
|
+
const [showDeleteDropdown, setShowDeleteDropdown] = (0, react_1.useState)(false);
|
14
|
+
const [graphicToDelete, setGraphicToDelete] = (0, react_1.useState)("");
|
15
|
+
const updateGraphics = (0, react_1.useCallback)(async () => {
|
16
|
+
try {
|
17
|
+
const result = await fetch(`${urls.componentUrl}/graphics`);
|
18
|
+
if (result.ok) {
|
19
|
+
const newGraphics = (await result.json());
|
20
|
+
setGraphics(newGraphics);
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
throw new Error(await result.text());
|
24
|
+
}
|
25
|
+
}
|
26
|
+
catch (error) {
|
27
|
+
console.error("Failed to update graphics:", error);
|
28
|
+
setUploadStatus({
|
29
|
+
success: false,
|
30
|
+
message: "Failed to update graphic list.",
|
31
|
+
});
|
32
|
+
}
|
33
|
+
}, [urls.componentUrl]);
|
34
|
+
(0, react_1.useEffect)(() => {
|
35
|
+
updateGraphics().catch(console.error);
|
36
|
+
}, [updateGraphics]);
|
37
|
+
const onFileChange = (e) => {
|
38
|
+
const file = e.target.files?.[0];
|
39
|
+
setFileToUpload(file);
|
40
|
+
setShowUploadButton(!!file);
|
41
|
+
setUploadStatus({ success: false, message: null });
|
42
|
+
};
|
43
|
+
const uploadFile = async () => {
|
44
|
+
if (!fileToUpload)
|
45
|
+
return;
|
46
|
+
try {
|
47
|
+
const form = new FormData();
|
48
|
+
form.append("file", fileToUpload);
|
49
|
+
const response = await fetch(`${urls.componentUrl}/graphics`, {
|
50
|
+
method: "POST",
|
51
|
+
body: form,
|
52
|
+
});
|
53
|
+
if (response.status === 409) {
|
54
|
+
const errorData = await response.json();
|
55
|
+
setUploadStatus({
|
56
|
+
success: false,
|
57
|
+
message: `${errorData.error}. Delete the existing graphic first if you want to replace it.`,
|
58
|
+
});
|
59
|
+
}
|
60
|
+
else if (!response.ok) {
|
61
|
+
throw new Error("Upload failed");
|
62
|
+
}
|
63
|
+
else {
|
64
|
+
setFileToUpload(undefined);
|
65
|
+
setShowFileInput(false);
|
66
|
+
setUploadStatus({
|
67
|
+
success: true,
|
68
|
+
message: "Graphic uploaded successfully!",
|
69
|
+
});
|
70
|
+
await updateGraphics();
|
71
|
+
}
|
72
|
+
}
|
73
|
+
catch (error) {
|
74
|
+
console.error("Failed to upload file:", error);
|
75
|
+
setUploadStatus({ success: false, message: "Failed to upload graphic." });
|
76
|
+
}
|
77
|
+
setTimeout(() => setUploadStatus({ success: false, message: null }), 5000);
|
78
|
+
};
|
79
|
+
const deleteBug = async () => {
|
80
|
+
if (!graphicToDelete)
|
81
|
+
return;
|
82
|
+
try {
|
83
|
+
const response = await fetch(`${urls.componentUrl}/graphic`, {
|
84
|
+
method: "DELETE",
|
85
|
+
headers: {
|
86
|
+
'Content-Type': 'application/json',
|
87
|
+
},
|
88
|
+
body: JSON.stringify({ filename: graphicToDelete }),
|
89
|
+
});
|
90
|
+
if (response.ok) {
|
91
|
+
setUploadStatus({
|
92
|
+
success: true,
|
93
|
+
message: "Graphic deleted successfully!",
|
94
|
+
});
|
95
|
+
await updateGraphics();
|
96
|
+
if (graphic === graphicToDelete) {
|
97
|
+
setGraphic(undefined);
|
98
|
+
sendCommand({
|
99
|
+
type: "change-graphic",
|
100
|
+
file: undefined,
|
101
|
+
position: undefined,
|
102
|
+
});
|
103
|
+
}
|
104
|
+
setGraphicToDelete("");
|
105
|
+
setShowDeleteDropdown(false);
|
106
|
+
}
|
107
|
+
else {
|
108
|
+
const errorData = await response.json();
|
109
|
+
setUploadStatus({
|
110
|
+
success: false,
|
111
|
+
message: errorData.error || "Failed to delete graphic",
|
112
|
+
});
|
113
|
+
}
|
114
|
+
}
|
115
|
+
catch (error) {
|
116
|
+
console.error("Failed to delete graphic:", error);
|
117
|
+
setUploadStatus({ success: false, message: "Failed to delete graphic" });
|
118
|
+
}
|
119
|
+
setTimeout(() => setUploadStatus({ success: false, message: null }), 3000);
|
120
|
+
};
|
121
|
+
const buttonClass = "mt-2 mb-5 text-white w-full justify-center bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800";
|
122
|
+
const deleteButtonClass = "mt-2 text-white w-full justify-center bg-red-600 hover:bg-red-700 focus:ring-4 focus:outline-none focus:ring-red-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-red-700 dark:hover:bg-red-800 dark:focus:ring-red-900";
|
123
|
+
const fileInputClass = "block w-full text-gray-900 border border-gray-300 rounded-lg cursor-pointer bg-gray-50 dark:text-gray-400 focus:outline-none dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400";
|
124
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "space-y-3", children: [(0, jsx_runtime_1.jsx)("h2", { className: "text-xl font-bold text-gray-900 dark:text-white", children: "Controls" }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "select-graphic", className: "block text-gray-900 dark:text-white mb-1", children: "Source" }), (0, jsx_runtime_1.jsxs)("select", { id: "select-graphic", className: "w-full node-editor-select-input", value: graphic || "", onChange: (e) => setGraphic(e.target.value || undefined), children: [(0, jsx_runtime_1.jsx)("option", { value: "", children: "---" }), graphics.map((s) => ((0, jsx_runtime_1.jsx)("option", { value: s, children: s }, s)))] })] }), graphic && ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("label", { htmlFor: "select-position", className: "block text-gray-900 dark:text-white mb-1", children: "Position" }), (0, jsx_runtime_1.jsxs)("select", { id: "select-position", className: "w-full node-editor-select-input", value: position, onChange: (e) => setPosition(e.target.value), children: [(0, jsx_runtime_1.jsx)("option", { value: "topleft", children: "Top Left" }), (0, jsx_runtime_1.jsx)("option", { value: "topright", children: "Top Right" }), (0, jsx_runtime_1.jsx)("option", { value: "bottomleft", children: "Bottom Left" }), (0, jsx_runtime_1.jsx)("option", { value: "bottomright", children: "Bottom Right" })] })] })), (graphic !== state.activeGraphic?.file ||
|
125
|
+
position !== state.activeGraphic?.position) && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: () => sendCommand({ type: "change-graphic", file: graphic, position }), children: "Commit" })), !showFileInput && !uploadStatus.success && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: () => setShowFileInput(true), style: { marginBottom: "1rem" }, children: "Upload Graphic" })), showFileInput && ((0, jsx_runtime_1.jsxs)("form", { style: { display: "block", marginBottom: "1rem" }, children: [(0, jsx_runtime_1.jsx)("input", { type: "file", id: "file", name: "filename", onChange: onFileChange, className: fileInputClass }), showUploadButton && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: buttonClass, onClick: uploadFile, children: "Upload" }))] })), (0, jsx_runtime_1.jsx)("button", { type: "button", className: deleteButtonClass, onClick: () => setShowDeleteDropdown(!showDeleteDropdown), style: { marginBottom: "1rem" }, children: showDeleteDropdown ? "Hide Delete Options" : "Delete Graphics" }), showDeleteDropdown && ((0, jsx_runtime_1.jsxs)("div", { className: "mt-2 p-2 bg-gray-100 dark:bg-gray-800 rounded-lg", children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-lg font-semibold mb-2 text-gray-900 dark:text-white", children: "Select Graphic to Delete" }), (0, jsx_runtime_1.jsxs)("select", { className: "w-full mb-2 node-editor-select-input", value: graphicToDelete, onChange: (e) => setGraphicToDelete(e.target.value), children: [(0, jsx_runtime_1.jsx)("option", { value: "", children: " Select a graphic" }), graphics.map((graphicName) => ((0, jsx_runtime_1.jsx)("option", { value: graphicName, children: graphicName }, graphicName)))] }), (0, jsx_runtime_1.jsx)("button", { onClick: deleteBug, disabled: !graphicToDelete, className: `${deleteButtonClass} ${!graphicToDelete ? 'opacity-50 cursor-not-allowed' : ''}`, children: "Delete Selected Graphic" })] })), uploadStatus.message && ((0, jsx_runtime_1.jsx)("div", { className: `mt-2 text-center ${uploadStatus.success ? "text-green-600" : "text-red-600"}`, children: uploadStatus.message }))] }));
|
126
|
+
}
|
127
|
+
exports.default = SummaryView;
|
128
|
+
//# sourceMappingURL=summary-view.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"summary-view.js","sourceRoot":"","sources":["../../src/processor.onscreenGraphic/summary-view.tsx"],"names":[],"mappings":"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"}
|
@@ -3,9 +3,9 @@ export type webhooks = Record<string, never>;
|
|
3
3
|
export interface components {
|
4
4
|
schemas: {
|
5
5
|
position: "topleft" | "topright" | "bottomleft" | "bottomright";
|
6
|
-
|
6
|
+
graphic: string;
|
7
7
|
config: {
|
8
|
-
|
8
|
+
graphic?: components["schemas"]["graphic"];
|
9
9
|
position?: components["schemas"]["position"];
|
10
10
|
};
|
11
11
|
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/processor.onscreenGraphic/types.ts"],"names":[],"mappings":""}
|
@@ -3,23 +3,23 @@ components:
|
|
3
3
|
schemas:
|
4
4
|
position:
|
5
5
|
type: string
|
6
|
-
description: "Where the
|
6
|
+
description: "Where the graphic is to be displayed"
|
7
7
|
example: 'topright'
|
8
|
-
enum:
|
8
|
+
enum:
|
9
9
|
- topleft
|
10
10
|
- topright
|
11
11
|
- bottomleft
|
12
12
|
- bottomright
|
13
|
-
|
13
|
+
graphic:
|
14
14
|
type: string
|
15
15
|
description: "The name of the image file"
|
16
16
|
example: 'Norsk.png'
|
17
17
|
config:
|
18
18
|
type: object
|
19
|
-
description: "The configuration for the
|
19
|
+
description: "The configuration for the onscreen graphic"
|
20
20
|
properties:
|
21
|
-
|
22
|
-
$ref: "#/components/schemas/
|
23
|
-
position:
|
21
|
+
graphic:
|
22
|
+
$ref: "#/components/schemas/graphic"
|
23
|
+
position:
|
24
24
|
$ref: "#/components/schemas/position"
|
25
25
|
|
@@ -27,14 +27,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
27
|
};
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
29
29
|
const norsk_sdk_1 = require("@norskvideo/norsk-sdk");
|
30
|
-
const __1 = require("
|
30
|
+
const __1 = require("..");
|
31
31
|
const builder_1 = require("@norskvideo/norsk-studio/lib/test/_util/builder");
|
32
32
|
const document = __importStar(require("@norskvideo/norsk-studio/lib/runtime/document"));
|
33
33
|
const yaml_1 = __importDefault(require("yaml"));
|
34
34
|
const execution_1 = __importDefault(require("@norskvideo/norsk-studio/lib/runtime/execution"));
|
35
35
|
const sources_1 = require("@norskvideo/norsk-studio/lib/test/_util/sources");
|
36
36
|
const sinks_1 = require("@norskvideo/norsk-studio/lib/test/_util/sinks");
|
37
|
-
const info_1 = __importDefault(require("../processor.
|
37
|
+
const info_1 = __importDefault(require("../processor.onscreenGraphic/info"));
|
38
38
|
const client_types_1 = require("@norskvideo/norsk-studio/lib/extension/client-types");
|
39
39
|
const runtime_types_1 = require("@norskvideo/norsk-studio/lib/extension/runtime-types");
|
40
40
|
const util_1 = require("@norskvideo/norsk-studio/lib/shared/util");
|
@@ -59,13 +59,13 @@ const videoOptsTwo = {
|
|
59
59
|
frameRate: { frames: 25, seconds: 1 }
|
60
60
|
};
|
61
61
|
function apiUrl(id, port) {
|
62
|
-
return `http://127.0.0.1:${port}/${id}/active-
|
62
|
+
return `http://127.0.0.1:${port}/${id}/active-graphic`;
|
63
63
|
}
|
64
|
-
describe("
|
64
|
+
describe("Onscreen Graphic", () => {
|
65
65
|
async function testDocument(cfg) {
|
66
66
|
const runtime = await defaultRuntime();
|
67
67
|
const yaml = new builder_1.YamlBuilder()
|
68
|
-
.addNode(new builder_1.YamlNodeBuilder('
|
68
|
+
.addNode(new builder_1.YamlNodeBuilder('graphic', (0, info_1.default)(client_types_1.RegistrationConsts), cfg ?? {}).reify())
|
69
69
|
.reify();
|
70
70
|
const compiled = document.load(__filename, runtime, yaml_1.default.stringify(yaml), { resolveConfig: true });
|
71
71
|
return compiled;
|
@@ -74,165 +74,165 @@ describe("Dynamic Bug", () => {
|
|
74
74
|
afterEach(async () => {
|
75
75
|
await norsk?.close();
|
76
76
|
});
|
77
|
-
it("
|
77
|
+
it("Onscreen graphic with no configuration, passthrough", async () => {
|
78
78
|
const compiled = await testDocument();
|
79
79
|
norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
|
80
80
|
const result = await (0, execution_1.default)(norsk, compiled);
|
81
|
-
const
|
81
|
+
const graphic = result.components["graphic"];
|
82
82
|
const sink = new sinks_1.TraceSink(norsk, "sink");
|
83
83
|
await sink.initialised;
|
84
84
|
const source = await (0, sources_1.videoAndAudio)(norsk, 'source', videoOpts);
|
85
|
-
|
85
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), {
|
86
86
|
type: 'take-all-streams', select: ['video']
|
87
87
|
})
|
88
88
|
]);
|
89
89
|
await Promise.all([
|
90
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
90
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOpts),
|
91
91
|
]);
|
92
92
|
});
|
93
|
-
it("
|
93
|
+
it("Onscreen graphic with no configuration, source change", async () => {
|
94
94
|
const compiled = await testDocument();
|
95
95
|
norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
|
96
96
|
const result = await (0, execution_1.default)(norsk, compiled);
|
97
|
-
const
|
97
|
+
const graphic = result.components["graphic"];
|
98
98
|
const sink = new sinks_1.TraceSink(norsk, "sink");
|
99
99
|
await sink.initialised;
|
100
100
|
sink.subscribe([
|
101
|
-
new runtime_types_1.StudioNodeSubscriptionSource(
|
101
|
+
new runtime_types_1.StudioNodeSubscriptionSource(graphic, compiled.components['graphic'].yaml, { type: 'take-all-streams', select: ["audio", "video"] }, (0, info_1.default)(client_types_1.RegistrationConsts))
|
102
102
|
]);
|
103
103
|
const sourceOne = await (0, sources_1.videoAndAudio)(norsk, 'sourceOne', videoOptsOne);
|
104
|
-
|
104
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(sourceOne, (0, sources_1.testSourceDescription)(), {
|
105
105
|
type: 'take-all-streams', select: ['video']
|
106
106
|
})
|
107
107
|
]);
|
108
108
|
await (0, util_1.waitForCondition)(() => sink.streamCount() == 1, 10000.0);
|
109
109
|
await sourceOne.close();
|
110
|
-
|
110
|
+
graphic.subscribe([]);
|
111
111
|
await (0, util_1.waitForCondition)(() => sink.streamCount() == 0, 60000.0);
|
112
112
|
const sourceTwo = await (0, sources_1.videoAndAudio)(norsk, 'sourceTwo', videoOptsTwo);
|
113
|
-
|
113
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(sourceTwo, (0, sources_1.testSourceDescription)(), {
|
114
114
|
type: 'take-all-streams', select: ['video']
|
115
115
|
})
|
116
116
|
]);
|
117
117
|
await Promise.all([
|
118
118
|
await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 1, () => sink.streamCount() == 1, 10000, 500),
|
119
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
119
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOptsTwo),
|
120
120
|
]);
|
121
121
|
});
|
122
|
-
it("
|
122
|
+
it("Onscreen graphic with initial configured image", async () => {
|
123
123
|
const compiled = await testDocument({
|
124
|
-
|
124
|
+
initialGraphic: "test.png",
|
125
125
|
initialPosition: "bottomleft"
|
126
126
|
});
|
127
127
|
norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
|
128
128
|
const result = await (0, execution_1.default)(norsk, compiled);
|
129
|
-
const
|
129
|
+
const graphic = result.components["graphic"];
|
130
130
|
const sink = new sinks_1.TraceSink(norsk, "sink");
|
131
131
|
await sink.initialised;
|
132
132
|
const source = await (0, sources_1.videoAndAudio)(norsk, 'source', videoOpts);
|
133
|
-
|
133
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), {
|
134
134
|
type: 'take-all-streams', select: ['video']
|
135
135
|
})
|
136
136
|
]);
|
137
137
|
function latestState() {
|
138
|
-
return result.runtimeState.latest["
|
138
|
+
return result.runtimeState.latest["graphic"];
|
139
139
|
}
|
140
140
|
await Promise.all([
|
141
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
142
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
143
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
141
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOpts),
|
142
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test.png", () => latestState().activeGraphic?.file == "test.png"),
|
143
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test.png", () => latestState().activeGraphic?.position == "bottomleft")
|
144
144
|
]);
|
145
145
|
});
|
146
|
-
it("
|
146
|
+
it("Onscreen graphic with no configured image, configured during run", async () => {
|
147
147
|
const compiled = await testDocument({});
|
148
148
|
norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
|
149
149
|
const result = await (0, execution_1.default)(norsk, compiled);
|
150
|
-
const
|
150
|
+
const graphic = result.components["graphic"];
|
151
151
|
const sink = new sinks_1.TraceSink(norsk, "sink");
|
152
152
|
await sink.initialised;
|
153
153
|
const source = await (0, sources_1.videoAndAudio)(norsk, 'source', videoOpts);
|
154
|
-
|
154
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), {
|
155
155
|
type: 'take-all-streams', select: ['video']
|
156
156
|
})
|
157
157
|
]);
|
158
|
-
await
|
158
|
+
await graphic.setupGraphic("test.png", "bottomleft");
|
159
159
|
function latestState() {
|
160
|
-
return result.runtimeState.latest["
|
160
|
+
return result.runtimeState.latest["graphic"];
|
161
161
|
}
|
162
162
|
await Promise.all([
|
163
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
164
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
165
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
163
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOpts),
|
164
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test.png", () => latestState().activeGraphic?.file == "test.png"),
|
165
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test.png", () => latestState().activeGraphic?.position == "bottomleft")
|
166
166
|
]);
|
167
167
|
});
|
168
|
-
it("
|
168
|
+
it("Onscreen graphic with configured image, re-configured during run", async () => {
|
169
169
|
const compiled = await testDocument({
|
170
|
-
|
170
|
+
initialGraphic: "test.png",
|
171
171
|
initialPosition: "bottomleft"
|
172
172
|
});
|
173
173
|
norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
|
174
174
|
const result = await (0, execution_1.default)(norsk, compiled);
|
175
|
-
const
|
175
|
+
const graphic = result.components["graphic"];
|
176
176
|
const sink = new sinks_1.TraceSink(norsk, "sink");
|
177
177
|
await sink.initialised;
|
178
178
|
const source = await (0, sources_1.videoAndAudio)(norsk, 'source', videoOpts);
|
179
|
-
|
179
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), {
|
180
180
|
type: 'take-all-streams', select: ['video']
|
181
181
|
})
|
182
182
|
]);
|
183
|
-
await
|
183
|
+
await graphic.setupGraphic("test2.png", "bottomleft");
|
184
184
|
function latestState() {
|
185
|
-
return result.runtimeState.latest["
|
185
|
+
return result.runtimeState.latest["graphic"];
|
186
186
|
}
|
187
187
|
await Promise.all([
|
188
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
189
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
190
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
188
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOpts),
|
189
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test2.png", () => latestState().activeGraphic?.file == "test2.png"),
|
190
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test2.png", () => latestState().activeGraphic?.position == "bottomleft")
|
191
191
|
]);
|
192
192
|
});
|
193
|
-
it("
|
193
|
+
it("Onscreen graphic with configured image, re-configured during run, source reset", async () => {
|
194
194
|
const compiled = await testDocument({
|
195
|
-
|
195
|
+
initialGraphic: "test.png",
|
196
196
|
initialPosition: "bottomleft"
|
197
197
|
});
|
198
198
|
norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
|
199
199
|
const result = await (0, execution_1.default)(norsk, compiled);
|
200
|
-
const
|
200
|
+
const graphic = result.components["graphic"];
|
201
201
|
const sink = new sinks_1.TraceSink(norsk, "sink");
|
202
202
|
await sink.initialised;
|
203
203
|
sink.subscribe([
|
204
|
-
new runtime_types_1.StudioNodeSubscriptionSource(
|
204
|
+
new runtime_types_1.StudioNodeSubscriptionSource(graphic, compiled.components['graphic'].yaml, { type: 'take-all-streams', select: ["audio", "video"] }, (0, info_1.default)(client_types_1.RegistrationConsts))
|
205
205
|
]);
|
206
206
|
const sourceOne = await (0, sources_1.videoAndAudio)(norsk, 'sourceOne', videoOptsOne);
|
207
|
-
|
207
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(sourceOne, (0, sources_1.testSourceDescription)(), {
|
208
208
|
type: 'take-all-streams', select: ['video']
|
209
209
|
})
|
210
210
|
]);
|
211
211
|
function latestState() {
|
212
|
-
return result.runtimeState.latest["
|
212
|
+
return result.runtimeState.latest["graphic"];
|
213
213
|
}
|
214
|
-
await
|
215
|
-
await (0, util_1.waitForCondition)(() => latestState().
|
214
|
+
await graphic.setupGraphic("test2.png", "bottomleft");
|
215
|
+
await (0, util_1.waitForCondition)(() => latestState().activeGraphic?.file == "test2.png");
|
216
216
|
await (0, util_1.waitForCondition)(() => sink.streamCount() == 1, 10000.0);
|
217
217
|
await sourceOne.close();
|
218
218
|
await (0, util_1.waitForCondition)(() => sink.streamCount() == 0, 10000.0);
|
219
219
|
const sourceTwo = await (0, sources_1.videoAndAudio)(norsk, 'sourceTwo', videoOptsTwo);
|
220
|
-
|
220
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(sourceTwo, (0, sources_1.testSourceDescription)(), {
|
221
221
|
type: 'take-all-streams', select: ['video']
|
222
222
|
})
|
223
223
|
]);
|
224
224
|
await Promise.all([
|
225
225
|
await (0, sinks_1.waitForAssert)(() => sink.streamCount() == 1, () => sink.streamCount() == 1, 10000, 500),
|
226
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
227
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
228
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
226
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOptsTwo),
|
227
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test2.png", () => latestState().activeGraphic?.file == "test2.png"),
|
228
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test2.png", () => latestState().activeGraphic?.position == "bottomleft")
|
229
229
|
]);
|
230
230
|
});
|
231
231
|
describe("http api", () => {
|
232
232
|
let port = 0;
|
233
233
|
let result = undefined;
|
234
234
|
let listener = undefined;
|
235
|
-
let
|
235
|
+
let graphic = undefined;
|
236
236
|
beforeEach(async () => {
|
237
237
|
const compiled = await testDocument();
|
238
238
|
norsk = await norsk_sdk_1.Norsk.connect({ onShutdown: () => { } });
|
@@ -246,71 +246,71 @@ describe("Dynamic Bug", () => {
|
|
246
246
|
r();
|
247
247
|
});
|
248
248
|
});
|
249
|
-
|
249
|
+
graphic = result.components["graphic"];
|
250
250
|
const sink = new sinks_1.TraceSink(norsk, "sink");
|
251
251
|
await sink.initialised;
|
252
252
|
const source = await (0, sources_1.videoAndAudio)(norsk, 'source', videoOpts);
|
253
|
-
|
253
|
+
graphic.subscribe([new runtime_types_1.StudioNodeSubscriptionSource(source, (0, sources_1.testSourceDescription)(), {
|
254
254
|
type: 'take-all-streams', select: ['video']
|
255
255
|
})
|
256
256
|
]);
|
257
257
|
sink.subscribe([
|
258
|
-
new runtime_types_1.StudioNodeSubscriptionSource(
|
258
|
+
new runtime_types_1.StudioNodeSubscriptionSource(graphic, compiled.components['graphic'].yaml, { type: 'take-all-streams', select: ["audio", "video"] }, (0, info_1.default)(client_types_1.RegistrationConsts))
|
259
259
|
]);
|
260
260
|
await (0, util_1.waitForCondition)(() => sink.streamCount() == 1, 10000.0);
|
261
261
|
});
|
262
262
|
afterEach(async () => {
|
263
263
|
listener.close();
|
264
264
|
});
|
265
|
-
it("Setting active
|
266
|
-
const httpResult = await (0, node_fetch_1.default)(apiUrl(
|
265
|
+
it("Setting active graphic via the http api", async () => {
|
266
|
+
const httpResult = await (0, node_fetch_1.default)(apiUrl(graphic.id, port), {
|
267
267
|
method: 'POST',
|
268
268
|
body: JSON.stringify({
|
269
|
-
|
269
|
+
graphic: 'test.png',
|
270
270
|
position: 'bottomleft'
|
271
271
|
})
|
272
272
|
});
|
273
273
|
function latestState() {
|
274
|
-
return result.runtimeState.latest["
|
274
|
+
return result.runtimeState.latest["graphic"];
|
275
275
|
}
|
276
276
|
(0, chai_1.expect)(httpResult.status).equal(204);
|
277
277
|
await Promise.all([
|
278
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
279
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
280
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
278
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOpts),
|
279
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test.png", () => latestState().activeGraphic?.file == "test.png"),
|
280
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == "test.png", () => latestState().activeGraphic?.position == "bottomleft")
|
281
281
|
]);
|
282
282
|
});
|
283
|
-
it("Clearing active
|
284
|
-
await
|
283
|
+
it("Clearing active graphic via empty post to the http api", async () => {
|
284
|
+
await graphic.setupGraphic("test.png", "bottomleft");
|
285
285
|
function latestState() {
|
286
|
-
return result.runtimeState.latest["
|
286
|
+
return result.runtimeState.latest["graphic"];
|
287
287
|
}
|
288
|
-
const httpResult = await (0, node_fetch_1.default)(apiUrl(
|
288
|
+
const httpResult = await (0, node_fetch_1.default)(apiUrl(graphic.id, port), {
|
289
289
|
method: 'POST',
|
290
290
|
body: JSON.stringify({})
|
291
291
|
});
|
292
292
|
(0, chai_1.expect)(httpResult.status).equal(204);
|
293
293
|
await Promise.all([
|
294
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
295
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
296
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
294
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOpts),
|
295
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == undefined, () => latestState().activeGraphic?.file == undefined),
|
296
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == undefined, () => latestState().activeGraphic?.position == undefined),
|
297
297
|
]);
|
298
298
|
});
|
299
|
-
it("Clearing active
|
300
|
-
await
|
299
|
+
it("Clearing active graphic via delete to the http api", async () => {
|
300
|
+
await graphic.setupGraphic("test.png", "bottomleft");
|
301
301
|
function latestState() {
|
302
|
-
return result.runtimeState.latest["
|
302
|
+
return result.runtimeState.latest["graphic"];
|
303
303
|
}
|
304
|
-
const httpResult = await (0, node_fetch_1.default)(apiUrl(
|
304
|
+
const httpResult = await (0, node_fetch_1.default)(apiUrl(graphic.id, port), {
|
305
305
|
method: 'delete'
|
306
306
|
});
|
307
307
|
(0, chai_1.expect)(httpResult.status).equal(204);
|
308
308
|
await Promise.all([
|
309
|
-
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "
|
310
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
311
|
-
(0, sinks_1.waitForAssert)(() => latestState().
|
309
|
+
(0, sinks_1.assertNodeOutputsVideoFrames)(norsk, result, "graphic", videoOpts),
|
310
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == undefined, () => latestState().activeGraphic?.file == undefined),
|
311
|
+
(0, sinks_1.waitForAssert)(() => latestState().activeGraphic?.file == undefined, () => latestState().activeGraphic?.position == undefined),
|
312
312
|
]);
|
313
313
|
});
|
314
314
|
});
|
315
315
|
});
|
316
|
-
//# sourceMappingURL=
|
316
|
+
//# sourceMappingURL=onscreen-graphic.js.map
|