camstreamerlib 4.0.0-beta.24 → 4.0.0-beta.26
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/cjs/CamOverlayPainter/Frame.d.ts +10 -35
- package/cjs/CamOverlayPainter/Frame.js +33 -0
- package/cjs/CamOverlayPainter/Painter.d.ts +2 -1
- package/cjs/CamOverlayPainter/types.d.ts +61 -0
- package/cjs/CamOverlayPainter/types.js +2 -0
- package/cjs/VapixAPI.d.ts +1 -13
- package/cjs/VapixAPI.js +5 -1
- package/cjs/types/CamScripterAPI.d.ts +10 -10
- package/cjs/types/CamScripterAPI.js +2 -2
- package/esm/CamOverlayPainter/Frame.d.ts +10 -35
- package/esm/CamOverlayPainter/Frame.js +33 -0
- package/esm/CamOverlayPainter/Painter.d.ts +2 -1
- package/esm/CamOverlayPainter/types.d.ts +61 -0
- package/esm/CamOverlayPainter/types.js +1 -0
- package/esm/VapixAPI.d.ts +1 -13
- package/esm/VapixAPI.js +5 -1
- package/esm/types/CamScripterAPI.d.ts +10 -10
- package/esm/types/CamScripterAPI.js +2 -2
- package/package.json +1 -1
|
@@ -2,41 +2,7 @@
|
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { CamOverlayDrawingAPI, TAlign, TCairoCreateResponse, TUploadImageResponse } from '../CamOverlayDrawingAPI';
|
|
4
4
|
import ResourceManager from './ResourceManager';
|
|
5
|
-
|
|
6
|
-
export type TRgba = [number, number, number, number];
|
|
7
|
-
export type TTmf = 'TFM_OVERFLOW' | 'TFM_SCALE' | 'TFM_TRUNCATE';
|
|
8
|
-
export type TObjectFitType = 'fill' | 'fit' | 'none';
|
|
9
|
-
export type TFrameOptions = {
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
x: number;
|
|
12
|
-
y: number;
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
text?: string;
|
|
16
|
-
fontColor?: TRgb;
|
|
17
|
-
font?: string;
|
|
18
|
-
bgColor?: TRgba;
|
|
19
|
-
bgImage?: string;
|
|
20
|
-
bgType?: TObjectFitType;
|
|
21
|
-
borderRadius?: number;
|
|
22
|
-
borderWidth?: number;
|
|
23
|
-
borderColor?: TRgba;
|
|
24
|
-
customDraw?: TDrawingCallback;
|
|
25
|
-
layer?: number;
|
|
26
|
-
};
|
|
27
|
-
export type TFrameInfo = {
|
|
28
|
-
width: number;
|
|
29
|
-
height: number;
|
|
30
|
-
};
|
|
31
|
-
export type TDrawingCallback = (cod: CamOverlayDrawingAPI, cairo: string, info: TFrameInfo) => Promise<void>;
|
|
32
|
-
export interface Frame {
|
|
33
|
-
on(event: 'open', listener: () => void): this;
|
|
34
|
-
on(event: 'close', listener: () => void): this;
|
|
35
|
-
on(event: 'layoutChanged', listener: () => void): this;
|
|
36
|
-
emit(event: 'open'): boolean;
|
|
37
|
-
emit(event: 'close'): boolean;
|
|
38
|
-
emit(event: 'layoutChanged'): boolean;
|
|
39
|
-
}
|
|
5
|
+
import { TBgInfo, TBorderInfo, TDrawingCallback, TFrameOptions, TObjectFitType, TRgb, TRgba, TTextInfo, TTmf } from './types';
|
|
40
6
|
export declare class Frame extends EventEmitter {
|
|
41
7
|
protected enabled: boolean;
|
|
42
8
|
protected posX: number;
|
|
@@ -64,17 +30,26 @@ export declare class Frame extends EventEmitter {
|
|
|
64
30
|
disable(): void;
|
|
65
31
|
setFramePosition(x: number, y: number): void;
|
|
66
32
|
setFrameSize(width: number, height: number): void;
|
|
33
|
+
getFrameInfo(): {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
};
|
|
67
39
|
setText(text: string, align: TAlign, textType?: TTmf, fontColor?: TRgb): void;
|
|
68
40
|
setFontColor(fontColor: TRgb): void;
|
|
69
41
|
setFont(fontName: string): void;
|
|
70
42
|
setFontData(fontData: TCairoCreateResponse): void;
|
|
43
|
+
getTextInfo(): TTextInfo;
|
|
71
44
|
setBgColor(color: TRgba): void;
|
|
72
45
|
setBgImage(imageName: string, type?: TObjectFitType): void;
|
|
73
46
|
setBgImageData(imageData: TUploadImageResponse, type?: TObjectFitType): void;
|
|
74
47
|
setBgType(type: TObjectFitType): void;
|
|
48
|
+
getBgInfo(): TBgInfo;
|
|
75
49
|
setBorderRadius(radius: number): void;
|
|
76
50
|
setBorderWidth(width: number): void;
|
|
77
51
|
setBorderColor(color: TRgba): void;
|
|
52
|
+
getBorderInfo(): TBorderInfo;
|
|
78
53
|
setCustomDraw(customDraw: TDrawingCallback): void;
|
|
79
54
|
resetFont(): void;
|
|
80
55
|
resetBgColor(): void;
|
|
@@ -57,6 +57,14 @@ class Frame extends events_1.EventEmitter {
|
|
|
57
57
|
this.width = width;
|
|
58
58
|
this.height = height;
|
|
59
59
|
}
|
|
60
|
+
getFrameInfo() {
|
|
61
|
+
return {
|
|
62
|
+
x: this.posX,
|
|
63
|
+
y: this.posY,
|
|
64
|
+
width: this.width,
|
|
65
|
+
height: this.height,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
60
68
|
setText(text, align, textType = 'TFM_OVERFLOW', fontColor) {
|
|
61
69
|
this.text = text;
|
|
62
70
|
this.align = align;
|
|
@@ -76,6 +84,16 @@ class Frame extends events_1.EventEmitter {
|
|
|
76
84
|
this.fontName = undefined;
|
|
77
85
|
this.font = fontData;
|
|
78
86
|
}
|
|
87
|
+
getTextInfo() {
|
|
88
|
+
return {
|
|
89
|
+
text: this.text,
|
|
90
|
+
textType: this.textType,
|
|
91
|
+
font: this.font,
|
|
92
|
+
fontName: this.fontName,
|
|
93
|
+
fontColor: this.fontColor,
|
|
94
|
+
align: this.align,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
79
97
|
setBgColor(color) {
|
|
80
98
|
this.bgColor = color;
|
|
81
99
|
}
|
|
@@ -92,6 +110,14 @@ class Frame extends events_1.EventEmitter {
|
|
|
92
110
|
setBgType(type) {
|
|
93
111
|
this.bgType = type;
|
|
94
112
|
}
|
|
113
|
+
getBgInfo() {
|
|
114
|
+
return {
|
|
115
|
+
color: this.bgColor,
|
|
116
|
+
imageName: this.bgImageName,
|
|
117
|
+
image: this.bgImage,
|
|
118
|
+
type: this.bgType,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
95
121
|
setBorderRadius(radius) {
|
|
96
122
|
this.borderRadius = radius;
|
|
97
123
|
}
|
|
@@ -101,6 +127,13 @@ class Frame extends events_1.EventEmitter {
|
|
|
101
127
|
setBorderColor(color) {
|
|
102
128
|
this.borderColor = color;
|
|
103
129
|
}
|
|
130
|
+
getBorderInfo() {
|
|
131
|
+
return {
|
|
132
|
+
color: this.borderColor,
|
|
133
|
+
width: this.borderWidth,
|
|
134
|
+
radius: this.borderRadius,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
104
137
|
setCustomDraw(customDraw) {
|
|
105
138
|
this.customDraw = customDraw;
|
|
106
139
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CamOverlayDrawingAPI, CamOverlayDrawingOptions } from '../CamOverlayDrawingAPI';
|
|
2
2
|
import ResourceManager from './ResourceManager';
|
|
3
|
-
import { Frame
|
|
3
|
+
import { Frame } from './Frame';
|
|
4
|
+
import { TFrameOptions } from './types';
|
|
4
5
|
export declare const COORD: {
|
|
5
6
|
readonly top_left: readonly [-1, -1];
|
|
6
7
|
readonly center_left: readonly [-1, 0];
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CamOverlayDrawingAPI, TAlign, TCairoCreateResponse, TUploadImageResponse } from '../CamOverlayDrawingAPI';
|
|
2
|
+
export type TRgb = [number, number, number];
|
|
3
|
+
export type TRgba = [number, number, number, number];
|
|
4
|
+
export type TTmf = 'TFM_OVERFLOW' | 'TFM_SCALE' | 'TFM_TRUNCATE';
|
|
5
|
+
export type TObjectFitType = 'fill' | 'fit' | 'none';
|
|
6
|
+
export type TFrameOptions = {
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
text?: string;
|
|
13
|
+
fontColor?: TRgb;
|
|
14
|
+
font?: string;
|
|
15
|
+
bgColor?: TRgba;
|
|
16
|
+
bgImage?: string;
|
|
17
|
+
bgType?: TObjectFitType;
|
|
18
|
+
borderRadius?: number;
|
|
19
|
+
borderWidth?: number;
|
|
20
|
+
borderColor?: TRgba;
|
|
21
|
+
customDraw?: TDrawingCallback;
|
|
22
|
+
layer?: number;
|
|
23
|
+
};
|
|
24
|
+
export type TFrameInfo = {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
export type TDrawingCallback = (cod: CamOverlayDrawingAPI, cairo: string, info: TFrameInfo) => Promise<void>;
|
|
29
|
+
export interface Frame {
|
|
30
|
+
on(event: 'open', listener: () => void): this;
|
|
31
|
+
on(event: 'close', listener: () => void): this;
|
|
32
|
+
on(event: 'layoutChanged', listener: () => void): this;
|
|
33
|
+
emit(event: 'open'): boolean;
|
|
34
|
+
emit(event: 'close'): boolean;
|
|
35
|
+
emit(event: 'layoutChanged'): boolean;
|
|
36
|
+
}
|
|
37
|
+
export type TBorderInfo = {
|
|
38
|
+
color: TRgba;
|
|
39
|
+
width: number;
|
|
40
|
+
radius: number;
|
|
41
|
+
};
|
|
42
|
+
export type TBgInfo = {
|
|
43
|
+
color: TRgba | undefined;
|
|
44
|
+
imageName: string | undefined;
|
|
45
|
+
image: TUploadImageResponse | undefined;
|
|
46
|
+
type: TObjectFitType | undefined;
|
|
47
|
+
};
|
|
48
|
+
export type TTextInfo = {
|
|
49
|
+
text: string;
|
|
50
|
+
align: TAlign;
|
|
51
|
+
textType: TTmf;
|
|
52
|
+
fontColor: TRgb;
|
|
53
|
+
font: TCairoCreateResponse | undefined;
|
|
54
|
+
fontName: string | undefined;
|
|
55
|
+
};
|
|
56
|
+
export type TFrameInfo2 = {
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
};
|
package/cjs/VapixAPI.d.ts
CHANGED
|
@@ -58,19 +58,7 @@ export declare class VapixAPI<Client extends IClient<TResponse> = IClient<TRespo
|
|
|
58
58
|
getPtzPosition(camera: number, proxy?: TProxyParam): Promise<TCameraPTZItemData>;
|
|
59
59
|
getInputState(port: number, proxy?: TProxyParam): Promise<boolean>;
|
|
60
60
|
setOutputState(port: number, active: boolean, proxy?: TProxyParam): Promise<TResponse>;
|
|
61
|
-
getApplicationList(proxy?: TProxyParam): Promise<
|
|
62
|
-
appId: "CamStreamer" | "CamSwitcher" | "CamOverlay" | "CamScripter" | "PlaneTracker" | "Ndihxplugin" | "SportTracker" | null;
|
|
63
|
-
Name: string;
|
|
64
|
-
NiceName: string;
|
|
65
|
-
Vendor: string;
|
|
66
|
-
Version: string;
|
|
67
|
-
License: string;
|
|
68
|
-
Status: string;
|
|
69
|
-
ApplicationID?: string | undefined;
|
|
70
|
-
ConfigurationPage?: string | undefined;
|
|
71
|
-
VendorHomePage?: string | undefined;
|
|
72
|
-
LicenseName?: string | undefined;
|
|
73
|
-
}[]>;
|
|
61
|
+
getApplicationList(proxy?: TProxyParam): Promise<any>;
|
|
74
62
|
startApplication(applicationID: string, proxy?: TProxyParam): Promise<void>;
|
|
75
63
|
restartApplication(applicationID: string, proxy?: TProxyParam): Promise<void>;
|
|
76
64
|
stopApplication(applicationID: string, proxy?: TProxyParam): Promise<void>;
|
package/cjs/VapixAPI.js
CHANGED
|
@@ -370,7 +370,11 @@ class VapixAPI {
|
|
|
370
370
|
allowBooleanAttributes: true,
|
|
371
371
|
});
|
|
372
372
|
const result = parser.parse(xml);
|
|
373
|
-
|
|
373
|
+
let apps = result.reply.application ?? [];
|
|
374
|
+
if (!Array.isArray(apps)) {
|
|
375
|
+
apps = [apps];
|
|
376
|
+
}
|
|
377
|
+
return apps.map((app) => {
|
|
374
378
|
return {
|
|
375
379
|
...app,
|
|
376
380
|
appId: VapixAPI_1.APP_IDS.find((id) => id.toLowerCase() === app.Name.toLowerCase()) ?? null,
|
|
@@ -17,25 +17,25 @@ export declare const packageInfoListSchema: z.ZodArray<z.ZodObject<{
|
|
|
17
17
|
package_menu_name: z.ZodString;
|
|
18
18
|
package_version: z.ZodString;
|
|
19
19
|
vendor: z.ZodString;
|
|
20
|
-
required_camscripter_version: z.ZodString
|
|
21
|
-
required_camscripter_rbi_version: z.ZodString
|
|
20
|
+
required_camscripter_version: z.ZodOptional<z.ZodString>;
|
|
21
|
+
required_camscripter_rbi_version: z.ZodOptional<z.ZodString>;
|
|
22
22
|
ui_link: z.ZodString;
|
|
23
23
|
}, "strip", z.ZodTypeAny, {
|
|
24
24
|
package_name: string;
|
|
25
25
|
package_menu_name: string;
|
|
26
26
|
package_version: string;
|
|
27
27
|
vendor: string;
|
|
28
|
-
required_camscripter_version: string;
|
|
29
|
-
required_camscripter_rbi_version: string;
|
|
30
28
|
ui_link: string;
|
|
29
|
+
required_camscripter_version?: string | undefined;
|
|
30
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
31
31
|
}, {
|
|
32
32
|
package_name: string;
|
|
33
33
|
package_menu_name: string;
|
|
34
34
|
package_version: string;
|
|
35
35
|
vendor: string;
|
|
36
|
-
required_camscripter_version: string;
|
|
37
|
-
required_camscripter_rbi_version: string;
|
|
38
36
|
ui_link: string;
|
|
37
|
+
required_camscripter_version?: string | undefined;
|
|
38
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
39
39
|
}>;
|
|
40
40
|
}, "strip", z.ZodTypeAny, {
|
|
41
41
|
storage: "INTERNAL" | "SD_CARD";
|
|
@@ -44,9 +44,9 @@ export declare const packageInfoListSchema: z.ZodArray<z.ZodObject<{
|
|
|
44
44
|
package_menu_name: string;
|
|
45
45
|
package_version: string;
|
|
46
46
|
vendor: string;
|
|
47
|
-
required_camscripter_version: string;
|
|
48
|
-
required_camscripter_rbi_version: string;
|
|
49
47
|
ui_link: string;
|
|
48
|
+
required_camscripter_version?: string | undefined;
|
|
49
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
50
50
|
};
|
|
51
51
|
}, {
|
|
52
52
|
storage: "INTERNAL" | "SD_CARD";
|
|
@@ -55,9 +55,9 @@ export declare const packageInfoListSchema: z.ZodArray<z.ZodObject<{
|
|
|
55
55
|
package_menu_name: string;
|
|
56
56
|
package_version: string;
|
|
57
57
|
vendor: string;
|
|
58
|
-
required_camscripter_version: string;
|
|
59
|
-
required_camscripter_rbi_version: string;
|
|
60
58
|
ui_link: string;
|
|
59
|
+
required_camscripter_version?: string | undefined;
|
|
60
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
61
61
|
};
|
|
62
62
|
}>, "many">;
|
|
63
63
|
export type TPackageInfoList = z.infer<typeof packageInfoListSchema>;
|
|
@@ -12,8 +12,8 @@ exports.packageInfoListSchema = zod_1.z.array(zod_1.z.object({
|
|
|
12
12
|
package_menu_name: zod_1.z.string(),
|
|
13
13
|
package_version: zod_1.z.string(),
|
|
14
14
|
vendor: zod_1.z.string(),
|
|
15
|
-
required_camscripter_version: zod_1.z.string(),
|
|
16
|
-
required_camscripter_rbi_version: zod_1.z.string(),
|
|
15
|
+
required_camscripter_version: zod_1.z.string().optional(),
|
|
16
|
+
required_camscripter_rbi_version: zod_1.z.string().optional(),
|
|
17
17
|
ui_link: zod_1.z.string(),
|
|
18
18
|
}),
|
|
19
19
|
}));
|
|
@@ -2,41 +2,7 @@
|
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { CamOverlayDrawingAPI, TAlign, TCairoCreateResponse, TUploadImageResponse } from '../CamOverlayDrawingAPI';
|
|
4
4
|
import ResourceManager from './ResourceManager';
|
|
5
|
-
|
|
6
|
-
export type TRgba = [number, number, number, number];
|
|
7
|
-
export type TTmf = 'TFM_OVERFLOW' | 'TFM_SCALE' | 'TFM_TRUNCATE';
|
|
8
|
-
export type TObjectFitType = 'fill' | 'fit' | 'none';
|
|
9
|
-
export type TFrameOptions = {
|
|
10
|
-
enabled?: boolean;
|
|
11
|
-
x: number;
|
|
12
|
-
y: number;
|
|
13
|
-
width: number;
|
|
14
|
-
height: number;
|
|
15
|
-
text?: string;
|
|
16
|
-
fontColor?: TRgb;
|
|
17
|
-
font?: string;
|
|
18
|
-
bgColor?: TRgba;
|
|
19
|
-
bgImage?: string;
|
|
20
|
-
bgType?: TObjectFitType;
|
|
21
|
-
borderRadius?: number;
|
|
22
|
-
borderWidth?: number;
|
|
23
|
-
borderColor?: TRgba;
|
|
24
|
-
customDraw?: TDrawingCallback;
|
|
25
|
-
layer?: number;
|
|
26
|
-
};
|
|
27
|
-
export type TFrameInfo = {
|
|
28
|
-
width: number;
|
|
29
|
-
height: number;
|
|
30
|
-
};
|
|
31
|
-
export type TDrawingCallback = (cod: CamOverlayDrawingAPI, cairo: string, info: TFrameInfo) => Promise<void>;
|
|
32
|
-
export interface Frame {
|
|
33
|
-
on(event: 'open', listener: () => void): this;
|
|
34
|
-
on(event: 'close', listener: () => void): this;
|
|
35
|
-
on(event: 'layoutChanged', listener: () => void): this;
|
|
36
|
-
emit(event: 'open'): boolean;
|
|
37
|
-
emit(event: 'close'): boolean;
|
|
38
|
-
emit(event: 'layoutChanged'): boolean;
|
|
39
|
-
}
|
|
5
|
+
import { TBgInfo, TBorderInfo, TDrawingCallback, TFrameOptions, TObjectFitType, TRgb, TRgba, TTextInfo, TTmf } from './types';
|
|
40
6
|
export declare class Frame extends EventEmitter {
|
|
41
7
|
protected enabled: boolean;
|
|
42
8
|
protected posX: number;
|
|
@@ -64,17 +30,26 @@ export declare class Frame extends EventEmitter {
|
|
|
64
30
|
disable(): void;
|
|
65
31
|
setFramePosition(x: number, y: number): void;
|
|
66
32
|
setFrameSize(width: number, height: number): void;
|
|
33
|
+
getFrameInfo(): {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
width: number;
|
|
37
|
+
height: number;
|
|
38
|
+
};
|
|
67
39
|
setText(text: string, align: TAlign, textType?: TTmf, fontColor?: TRgb): void;
|
|
68
40
|
setFontColor(fontColor: TRgb): void;
|
|
69
41
|
setFont(fontName: string): void;
|
|
70
42
|
setFontData(fontData: TCairoCreateResponse): void;
|
|
43
|
+
getTextInfo(): TTextInfo;
|
|
71
44
|
setBgColor(color: TRgba): void;
|
|
72
45
|
setBgImage(imageName: string, type?: TObjectFitType): void;
|
|
73
46
|
setBgImageData(imageData: TUploadImageResponse, type?: TObjectFitType): void;
|
|
74
47
|
setBgType(type: TObjectFitType): void;
|
|
48
|
+
getBgInfo(): TBgInfo;
|
|
75
49
|
setBorderRadius(radius: number): void;
|
|
76
50
|
setBorderWidth(width: number): void;
|
|
77
51
|
setBorderColor(color: TRgba): void;
|
|
52
|
+
getBorderInfo(): TBorderInfo;
|
|
78
53
|
setCustomDraw(customDraw: TDrawingCallback): void;
|
|
79
54
|
resetFont(): void;
|
|
80
55
|
resetBgColor(): void;
|
|
@@ -54,6 +54,14 @@ export class Frame extends EventEmitter {
|
|
|
54
54
|
this.width = width;
|
|
55
55
|
this.height = height;
|
|
56
56
|
}
|
|
57
|
+
getFrameInfo() {
|
|
58
|
+
return {
|
|
59
|
+
x: this.posX,
|
|
60
|
+
y: this.posY,
|
|
61
|
+
width: this.width,
|
|
62
|
+
height: this.height,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
57
65
|
setText(text, align, textType = 'TFM_OVERFLOW', fontColor) {
|
|
58
66
|
this.text = text;
|
|
59
67
|
this.align = align;
|
|
@@ -73,6 +81,16 @@ export class Frame extends EventEmitter {
|
|
|
73
81
|
this.fontName = undefined;
|
|
74
82
|
this.font = fontData;
|
|
75
83
|
}
|
|
84
|
+
getTextInfo() {
|
|
85
|
+
return {
|
|
86
|
+
text: this.text,
|
|
87
|
+
textType: this.textType,
|
|
88
|
+
font: this.font,
|
|
89
|
+
fontName: this.fontName,
|
|
90
|
+
fontColor: this.fontColor,
|
|
91
|
+
align: this.align,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
76
94
|
setBgColor(color) {
|
|
77
95
|
this.bgColor = color;
|
|
78
96
|
}
|
|
@@ -89,6 +107,14 @@ export class Frame extends EventEmitter {
|
|
|
89
107
|
setBgType(type) {
|
|
90
108
|
this.bgType = type;
|
|
91
109
|
}
|
|
110
|
+
getBgInfo() {
|
|
111
|
+
return {
|
|
112
|
+
color: this.bgColor,
|
|
113
|
+
imageName: this.bgImageName,
|
|
114
|
+
image: this.bgImage,
|
|
115
|
+
type: this.bgType,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
92
118
|
setBorderRadius(radius) {
|
|
93
119
|
this.borderRadius = radius;
|
|
94
120
|
}
|
|
@@ -98,6 +124,13 @@ export class Frame extends EventEmitter {
|
|
|
98
124
|
setBorderColor(color) {
|
|
99
125
|
this.borderColor = color;
|
|
100
126
|
}
|
|
127
|
+
getBorderInfo() {
|
|
128
|
+
return {
|
|
129
|
+
color: this.borderColor,
|
|
130
|
+
width: this.borderWidth,
|
|
131
|
+
radius: this.borderRadius,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
101
134
|
setCustomDraw(customDraw) {
|
|
102
135
|
this.customDraw = customDraw;
|
|
103
136
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CamOverlayDrawingAPI, CamOverlayDrawingOptions } from '../CamOverlayDrawingAPI';
|
|
2
2
|
import ResourceManager from './ResourceManager';
|
|
3
|
-
import { Frame
|
|
3
|
+
import { Frame } from './Frame';
|
|
4
|
+
import { TFrameOptions } from './types';
|
|
4
5
|
export declare const COORD: {
|
|
5
6
|
readonly top_left: readonly [-1, -1];
|
|
6
7
|
readonly center_left: readonly [-1, 0];
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { CamOverlayDrawingAPI, TAlign, TCairoCreateResponse, TUploadImageResponse } from '../CamOverlayDrawingAPI';
|
|
2
|
+
export type TRgb = [number, number, number];
|
|
3
|
+
export type TRgba = [number, number, number, number];
|
|
4
|
+
export type TTmf = 'TFM_OVERFLOW' | 'TFM_SCALE' | 'TFM_TRUNCATE';
|
|
5
|
+
export type TObjectFitType = 'fill' | 'fit' | 'none';
|
|
6
|
+
export type TFrameOptions = {
|
|
7
|
+
enabled?: boolean;
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
text?: string;
|
|
13
|
+
fontColor?: TRgb;
|
|
14
|
+
font?: string;
|
|
15
|
+
bgColor?: TRgba;
|
|
16
|
+
bgImage?: string;
|
|
17
|
+
bgType?: TObjectFitType;
|
|
18
|
+
borderRadius?: number;
|
|
19
|
+
borderWidth?: number;
|
|
20
|
+
borderColor?: TRgba;
|
|
21
|
+
customDraw?: TDrawingCallback;
|
|
22
|
+
layer?: number;
|
|
23
|
+
};
|
|
24
|
+
export type TFrameInfo = {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
export type TDrawingCallback = (cod: CamOverlayDrawingAPI, cairo: string, info: TFrameInfo) => Promise<void>;
|
|
29
|
+
export interface Frame {
|
|
30
|
+
on(event: 'open', listener: () => void): this;
|
|
31
|
+
on(event: 'close', listener: () => void): this;
|
|
32
|
+
on(event: 'layoutChanged', listener: () => void): this;
|
|
33
|
+
emit(event: 'open'): boolean;
|
|
34
|
+
emit(event: 'close'): boolean;
|
|
35
|
+
emit(event: 'layoutChanged'): boolean;
|
|
36
|
+
}
|
|
37
|
+
export type TBorderInfo = {
|
|
38
|
+
color: TRgba;
|
|
39
|
+
width: number;
|
|
40
|
+
radius: number;
|
|
41
|
+
};
|
|
42
|
+
export type TBgInfo = {
|
|
43
|
+
color: TRgba | undefined;
|
|
44
|
+
imageName: string | undefined;
|
|
45
|
+
image: TUploadImageResponse | undefined;
|
|
46
|
+
type: TObjectFitType | undefined;
|
|
47
|
+
};
|
|
48
|
+
export type TTextInfo = {
|
|
49
|
+
text: string;
|
|
50
|
+
align: TAlign;
|
|
51
|
+
textType: TTmf;
|
|
52
|
+
fontColor: TRgb;
|
|
53
|
+
font: TCairoCreateResponse | undefined;
|
|
54
|
+
fontName: string | undefined;
|
|
55
|
+
};
|
|
56
|
+
export type TFrameInfo2 = {
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
width: number;
|
|
60
|
+
height: number;
|
|
61
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/esm/VapixAPI.d.ts
CHANGED
|
@@ -58,19 +58,7 @@ export declare class VapixAPI<Client extends IClient<TResponse> = IClient<TRespo
|
|
|
58
58
|
getPtzPosition(camera: number, proxy?: TProxyParam): Promise<TCameraPTZItemData>;
|
|
59
59
|
getInputState(port: number, proxy?: TProxyParam): Promise<boolean>;
|
|
60
60
|
setOutputState(port: number, active: boolean, proxy?: TProxyParam): Promise<TResponse>;
|
|
61
|
-
getApplicationList(proxy?: TProxyParam): Promise<
|
|
62
|
-
appId: "CamStreamer" | "CamSwitcher" | "CamOverlay" | "CamScripter" | "PlaneTracker" | "Ndihxplugin" | "SportTracker" | null;
|
|
63
|
-
Name: string;
|
|
64
|
-
NiceName: string;
|
|
65
|
-
Vendor: string;
|
|
66
|
-
Version: string;
|
|
67
|
-
License: string;
|
|
68
|
-
Status: string;
|
|
69
|
-
ApplicationID?: string | undefined;
|
|
70
|
-
ConfigurationPage?: string | undefined;
|
|
71
|
-
VendorHomePage?: string | undefined;
|
|
72
|
-
LicenseName?: string | undefined;
|
|
73
|
-
}[]>;
|
|
61
|
+
getApplicationList(proxy?: TProxyParam): Promise<any>;
|
|
74
62
|
startApplication(applicationID: string, proxy?: TProxyParam): Promise<void>;
|
|
75
63
|
restartApplication(applicationID: string, proxy?: TProxyParam): Promise<void>;
|
|
76
64
|
stopApplication(applicationID: string, proxy?: TProxyParam): Promise<void>;
|
package/esm/VapixAPI.js
CHANGED
|
@@ -367,7 +367,11 @@ export class VapixAPI {
|
|
|
367
367
|
allowBooleanAttributes: true,
|
|
368
368
|
});
|
|
369
369
|
const result = parser.parse(xml);
|
|
370
|
-
|
|
370
|
+
let apps = result.reply.application ?? [];
|
|
371
|
+
if (!Array.isArray(apps)) {
|
|
372
|
+
apps = [apps];
|
|
373
|
+
}
|
|
374
|
+
return apps.map((app) => {
|
|
371
375
|
return {
|
|
372
376
|
...app,
|
|
373
377
|
appId: APP_IDS.find((id) => id.toLowerCase() === app.Name.toLowerCase()) ?? null,
|
|
@@ -17,25 +17,25 @@ export declare const packageInfoListSchema: z.ZodArray<z.ZodObject<{
|
|
|
17
17
|
package_menu_name: z.ZodString;
|
|
18
18
|
package_version: z.ZodString;
|
|
19
19
|
vendor: z.ZodString;
|
|
20
|
-
required_camscripter_version: z.ZodString
|
|
21
|
-
required_camscripter_rbi_version: z.ZodString
|
|
20
|
+
required_camscripter_version: z.ZodOptional<z.ZodString>;
|
|
21
|
+
required_camscripter_rbi_version: z.ZodOptional<z.ZodString>;
|
|
22
22
|
ui_link: z.ZodString;
|
|
23
23
|
}, "strip", z.ZodTypeAny, {
|
|
24
24
|
package_name: string;
|
|
25
25
|
package_menu_name: string;
|
|
26
26
|
package_version: string;
|
|
27
27
|
vendor: string;
|
|
28
|
-
required_camscripter_version: string;
|
|
29
|
-
required_camscripter_rbi_version: string;
|
|
30
28
|
ui_link: string;
|
|
29
|
+
required_camscripter_version?: string | undefined;
|
|
30
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
31
31
|
}, {
|
|
32
32
|
package_name: string;
|
|
33
33
|
package_menu_name: string;
|
|
34
34
|
package_version: string;
|
|
35
35
|
vendor: string;
|
|
36
|
-
required_camscripter_version: string;
|
|
37
|
-
required_camscripter_rbi_version: string;
|
|
38
36
|
ui_link: string;
|
|
37
|
+
required_camscripter_version?: string | undefined;
|
|
38
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
39
39
|
}>;
|
|
40
40
|
}, "strip", z.ZodTypeAny, {
|
|
41
41
|
storage: "INTERNAL" | "SD_CARD";
|
|
@@ -44,9 +44,9 @@ export declare const packageInfoListSchema: z.ZodArray<z.ZodObject<{
|
|
|
44
44
|
package_menu_name: string;
|
|
45
45
|
package_version: string;
|
|
46
46
|
vendor: string;
|
|
47
|
-
required_camscripter_version: string;
|
|
48
|
-
required_camscripter_rbi_version: string;
|
|
49
47
|
ui_link: string;
|
|
48
|
+
required_camscripter_version?: string | undefined;
|
|
49
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
50
50
|
};
|
|
51
51
|
}, {
|
|
52
52
|
storage: "INTERNAL" | "SD_CARD";
|
|
@@ -55,9 +55,9 @@ export declare const packageInfoListSchema: z.ZodArray<z.ZodObject<{
|
|
|
55
55
|
package_menu_name: string;
|
|
56
56
|
package_version: string;
|
|
57
57
|
vendor: string;
|
|
58
|
-
required_camscripter_version: string;
|
|
59
|
-
required_camscripter_rbi_version: string;
|
|
60
58
|
ui_link: string;
|
|
59
|
+
required_camscripter_version?: string | undefined;
|
|
60
|
+
required_camscripter_rbi_version?: string | undefined;
|
|
61
61
|
};
|
|
62
62
|
}>, "many">;
|
|
63
63
|
export type TPackageInfoList = z.infer<typeof packageInfoListSchema>;
|
|
@@ -9,8 +9,8 @@ export const packageInfoListSchema = z.array(z.object({
|
|
|
9
9
|
package_menu_name: z.string(),
|
|
10
10
|
package_version: z.string(),
|
|
11
11
|
vendor: z.string(),
|
|
12
|
-
required_camscripter_version: z.string(),
|
|
13
|
-
required_camscripter_rbi_version: z.string(),
|
|
12
|
+
required_camscripter_version: z.string().optional(),
|
|
13
|
+
required_camscripter_rbi_version: z.string().optional(),
|
|
14
14
|
ui_link: z.string(),
|
|
15
15
|
}),
|
|
16
16
|
}));
|