@lappis/cg-manager 0.0.26 → 0.0.28

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/layers.d.ts CHANGED
@@ -1,66 +1,66 @@
1
- import { Effect } from './effect';
2
- import { BasicChannel, BasicLayer } from './basic';
3
- import { CommandExecutor } from './executor';
4
- export interface AllocateOptions {
5
- count?: number;
6
- index?: number;
7
- }
8
- export declare class EffectGroup {
9
- effects: Effect[];
10
- readonly name: string;
11
- readonly channel: Channel;
12
- constructor(channel: Channel, name: string);
13
- addEffect(effect: Effect): void;
14
- removeEffect(effect: Effect): void;
15
- dispose(): void;
16
- /** Gets the first index that is after all previous effects, and after all the effects layer. AKA the index for a new layer */
17
- getEffectIndex(effect: Effect): number;
18
- /** Gets the first index that is after all other effect groups */
19
- protected getStartingIndex(): number;
20
- toJSON(): {
21
- name: string;
22
- effects: string[];
23
- };
24
- }
25
- export declare class Channel extends BasicChannel {
26
- layers: Map<string, Layer>;
27
- groups: EffectGroup[];
28
- createGroup(name: string, index?: number): EffectGroup;
29
- getGroup(name?: string, index?: number): EffectGroup;
30
- private lastOrder;
31
- private currentOrder;
32
- executor: CommandExecutor;
33
- constructor(casparChannel: number, executor?: CommandExecutor);
34
- setExecutor(executor: CommandExecutor): void;
35
- getLayer(id: string): Layer;
36
- getLayers(): Layer[];
37
- getLayerIndex(layer: Layer): number;
38
- allocateLayers(options?: AllocateOptions): Layer[];
39
- private needExecute;
40
- allocateLayer(index?: number): Layer;
41
- deallocateLayers(layers: Layer[]): void;
42
- executeAllocation(): void;
43
- toJSON(): {
44
- channel: number;
45
- layers: {
46
- id: string;
47
- effect: string;
48
- }[];
49
- groups: {
50
- name: string;
51
- effects: string[];
52
- }[];
53
- };
54
- }
55
- export declare class Layer extends BasicLayer {
56
- readonly id: string;
57
- constructor(channel: Channel);
58
- private effect;
59
- setEffect(effect: Effect): void;
60
- getEffect(): Effect;
61
- dispose(): void;
62
- toJSON(): {
63
- id: string;
64
- effect: string;
65
- };
66
- }
1
+ import { Effect } from './effect';
2
+ import { BasicChannel, BasicLayer } from './basic';
3
+ import { CommandExecutor } from './executor';
4
+ export interface AllocateOptions {
5
+ count?: number;
6
+ index?: number;
7
+ }
8
+ export declare class EffectGroup {
9
+ effects: Effect[];
10
+ readonly name: string;
11
+ readonly channel: Channel;
12
+ constructor(channel: Channel, name: string);
13
+ addEffect(effect: Effect): void;
14
+ removeEffect(effect: Effect): void;
15
+ dispose(): void;
16
+ /** Gets the first index that is after all previous effects, and after all the effects layer. AKA the index for a new layer */
17
+ getEffectIndex(effect: Effect): number;
18
+ /** Gets the first index that is after all other effect groups */
19
+ protected getStartingIndex(): number;
20
+ toJSON(): {
21
+ name: string;
22
+ effects: string[];
23
+ };
24
+ }
25
+ export declare class Channel extends BasicChannel {
26
+ layers: Map<string, Layer>;
27
+ groups: EffectGroup[];
28
+ createGroup(name: string, index?: number): EffectGroup;
29
+ getGroup(name?: string, index?: number): EffectGroup;
30
+ private lastOrder;
31
+ private currentOrder;
32
+ executor: CommandExecutor;
33
+ constructor(casparChannel: number, executor?: CommandExecutor);
34
+ setExecutor(executor: CommandExecutor): void;
35
+ getLayer(id: string): Layer;
36
+ getLayers(): Layer[];
37
+ getLayerIndex(layer: Layer): number;
38
+ allocateLayers(options?: AllocateOptions): Layer[];
39
+ private needExecute;
40
+ allocateLayer(index?: number): Layer;
41
+ deallocateLayers(layers: Layer[]): void;
42
+ executeAllocation(): void;
43
+ toJSON(): {
44
+ channel: number;
45
+ layers: {
46
+ id: string;
47
+ effect: string;
48
+ }[];
49
+ groups: {
50
+ name: string;
51
+ effects: string[];
52
+ }[];
53
+ };
54
+ }
55
+ export declare class Layer extends BasicLayer {
56
+ readonly id: string;
57
+ constructor(channel: Channel);
58
+ private effect;
59
+ setEffect(effect: Effect): void;
60
+ getEffect(): Effect;
61
+ dispose(): void;
62
+ toJSON(): {
63
+ id: string;
64
+ effect: string;
65
+ };
66
+ }
package/dist/plugin.d.ts CHANGED
@@ -1,55 +1,54 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { Effect, EffectConstructor } from './effect';
4
- import { Logger, CasparManager } from './types';
5
- import { Method, WebsocketOutboundMethod } from 'rest-exchange-protocol';
6
- import { Route } from 'rest-exchange-protocol/dist/route';
7
- import { UI_INJECTION_ZONE } from './types/ui';
8
- import { RundownItem } from './types/rundown';
9
- export declare class CasparPlugin {
10
- private _api;
11
- private _enabled;
12
- protected logger: Logger;
13
- static get pluginName(): string;
14
- get pluginName(): any;
15
- private enable;
16
- private disable;
17
- protected onEnable(): void;
18
- protected onDisable(): void;
19
- protected get api(): PluginAPI;
20
- }
21
- export declare class PluginAPI extends EventEmitter {
22
- private files;
23
- private uiInjections;
24
- private readonly _manager;
25
- private readonly _plugin;
26
- constructor(_manager: CasparManager, _plugin: CasparPlugin);
27
- private _effects;
28
- private routes;
29
- registerEffect(name: string, effect: EffectConstructor): void;
30
- private unregisterEffects;
31
- private unregisterRoutes;
32
- private unregisterFiles;
33
- private unregisterUIInjections;
34
- private unregister;
35
- registerRoute(path: string, handler: Route['handler'], method: Method): Route;
36
- unregisterRoute(route: Route): void;
37
- broadcast(target: string, method: WebsocketOutboundMethod, data: any, exclude?: any): void;
38
- registerFile(type: 'media' | 'template', path: string): Promise<import("./types/scanner/dir").InternalMediaData>;
39
- getEffectGroup(name: string, index?: number): import("./layers").EffectGroup;
40
- unregisterFile(id: string): Promise<void>;
41
- getDirectory(id: string): Promise<import("./types/scanner/dir").InternalMediaData>;
42
- getDirectories(): Promise<import("./types/scanner/dir").InternalMediaData>[];
43
- getFileDatabase(): import("./types/scanner/db").FileDatabase;
44
- /**
45
- * @param injectionZone The zone to inject the file into, e.g. UI_INJECTION_ZONE.EFFECT_CREATOR for the effect creator
46
- * @param file The file to inject, it holds the component as default export
47
- */
48
- registerUI(injectionZone: UI_INJECTION_ZONE, file: string): void;
49
- unregisterUI(id: string): void;
50
- createEffect<T = Effect>(name: string, group: string, options: any): T;
51
- getEffect(id: string): Effect;
52
- registerRundownAction(name: string, handler: (item: RundownItem) => Promise<void> | void): void;
53
- enableVideoRoute(id: string): void;
54
- disableVideoRoute(id: string): void;
55
- }
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { Effect, EffectConstructor } from './effect';
4
+ import { Logger, CasparManager } from './types';
5
+ import { Method, WebsocketOutboundMethod } from 'rest-exchange-protocol';
6
+ import { Route } from 'rest-exchange-protocol/dist/route';
7
+ import { UI_INJECTION_ZONE } from './types/ui';
8
+ import { RundownItem } from './types/rundown';
9
+ export declare class CasparPlugin {
10
+ private _api;
11
+ private _enabled;
12
+ protected logger: Logger;
13
+ static get pluginName(): string;
14
+ get pluginName(): any;
15
+ private enable;
16
+ private disable;
17
+ protected onEnable(): void;
18
+ protected onDisable(): void;
19
+ protected get api(): PluginAPI;
20
+ }
21
+ export declare class PluginAPI extends EventEmitter {
22
+ private files;
23
+ private uiInjections;
24
+ private readonly _manager;
25
+ private readonly _plugin;
26
+ constructor(_manager: CasparManager, _plugin: CasparPlugin);
27
+ private _effects;
28
+ private routes;
29
+ registerEffect(name: string, effect: EffectConstructor): void;
30
+ private unregisterEffects;
31
+ private unregisterRoutes;
32
+ private unregisterFiles;
33
+ private unregisterUIInjections;
34
+ private unregister;
35
+ registerRoute(path: string, handler: Route['handler'], method: Method): Route;
36
+ unregisterRoute(route: Route): void;
37
+ broadcast(target: string, method: WebsocketOutboundMethod, data: any, exclude?: any): void;
38
+ registerFile(type: 'media' | 'template', path: string): Promise<import("./types/scanner/dir").InternalMediaData>;
39
+ getEffectGroup(name: string, index?: number): import("./layers").EffectGroup;
40
+ unregisterFile(id: string): Promise<void>;
41
+ getDirectory(id: string): Promise<import("./types/scanner/dir").InternalMediaData>;
42
+ getDirectories(): Promise<import("./types/scanner/dir").InternalMediaData>[];
43
+ getFileDatabase(): import("./types/scanner/db").FileDatabase;
44
+ /**
45
+ * @param injectionZone The zone to inject the file into, e.g. UI_INJECTION_ZONE.EFFECT_CREATOR for the effect creator
46
+ * @param file The file to inject, it holds the component as default export
47
+ */
48
+ registerUI(injectionZone: UI_INJECTION_ZONE, file: string): void;
49
+ unregisterUI(id: string): void;
50
+ createEffect<T = Effect>(name: string, group: string, options: any): T;
51
+ getEffect(id: string): Effect;
52
+ registerRundownAction(name: string, handler: (item: RundownItem) => Promise<void> | void): void;
53
+ setVideoRouteEnabled(id: string, enabled?: boolean): void;
54
+ }
@@ -1,46 +1,46 @@
1
- import { MixerCommand, Tween } from './commands/mixer';
2
- export interface Point {
3
- x: number;
4
- y: number;
5
- }
6
- export interface Rect {
7
- start: Point;
8
- end: Point;
9
- }
10
- type Tuple<T, N extends number> = N extends N ? number extends N ? T[] : _TupleOf<T, N, []> : never;
11
- type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;
12
- export declare class Transform {
13
- source: Rect;
14
- destination: Rect;
15
- fillTransition: Tween;
16
- cropTransition: Tween;
17
- constructor(source: Rect, destination: Rect);
18
- static getRect(sx: number, sy: number, ex: number, ey: number): {
19
- start: {
20
- x: number;
21
- y: number;
22
- };
23
- end: {
24
- x: number;
25
- y: number;
26
- };
27
- };
28
- static normalRect(): {
29
- start: {
30
- x: number;
31
- y: number;
32
- };
33
- end: {
34
- x: number;
35
- y: number;
36
- };
37
- };
38
- static fromArray(arr: Tuple<number, 8>): Transform;
39
- setTween(): any;
40
- setTween(tween: Tween): any;
41
- setTween(fillTween: Tween, cropTween: Tween): any;
42
- private getFill;
43
- private getClip;
44
- getCommand(): MixerCommand;
45
- }
46
- export {};
1
+ import { MixerCommand, Tween } from './commands/mixer';
2
+ export interface Point {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ export interface Rect {
7
+ start: Point;
8
+ end: Point;
9
+ }
10
+ type Tuple<T, N extends number> = N extends N ? number extends N ? T[] : _TupleOf<T, N, []> : never;
11
+ type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;
12
+ export declare class Transform {
13
+ source: Rect;
14
+ destination: Rect;
15
+ fillTransition: Tween;
16
+ cropTransition: Tween;
17
+ constructor(source: Rect, destination: Rect);
18
+ static getRect(sx: number, sy: number, ex: number, ey: number): {
19
+ start: {
20
+ x: number;
21
+ y: number;
22
+ };
23
+ end: {
24
+ x: number;
25
+ y: number;
26
+ };
27
+ };
28
+ static normalRect(): {
29
+ start: {
30
+ x: number;
31
+ y: number;
32
+ };
33
+ end: {
34
+ x: number;
35
+ y: number;
36
+ };
37
+ };
38
+ static fromArray(arr: Tuple<number, 8>): Transform;
39
+ setTween(): any;
40
+ setTween(tween: Tween): any;
41
+ setTween(fillTween: Tween, cropTween: Tween): any;
42
+ private getFill;
43
+ private getClip;
44
+ getCommand(): MixerCommand;
45
+ }
46
+ export {};
@@ -1,11 +1,11 @@
1
- import { CommandExecutor } from '../../executor';
2
- import { EffectGroup } from '../../layers';
3
- export declare class CasparExecutor extends CommandExecutor {
4
- readonly ip: string;
5
- readonly port: number;
6
- private constructor();
7
- connect(): void;
8
- disconnect(): void;
9
- get connected(): boolean;
10
- getEffectGroup(identifier: string, index?: number): EffectGroup;
11
- }
1
+ import { CommandExecutor } from '../../executor';
2
+ import { EffectGroup } from '../../layers';
3
+ export declare class CasparExecutor extends CommandExecutor {
4
+ readonly ip: string;
5
+ readonly port: number;
6
+ private constructor();
7
+ connect(): void;
8
+ disconnect(): void;
9
+ get connected(): boolean;
10
+ getEffectGroup(identifier: string, index?: number): EffectGroup;
11
+ }
@@ -1,14 +1,14 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- export declare class CasparProcess extends EventEmitter {
4
- start(): Promise<void>;
5
- stop(): Promise<void>;
6
- restart(): Promise<void>;
7
- get running(): boolean;
8
- getStatus(): {
9
- running: boolean;
10
- };
11
- appendLog(data: string): void;
12
- getLogs(): string;
13
- get log(): string;
14
- }
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ export declare class CasparProcess extends EventEmitter {
4
+ start(): Promise<void>;
5
+ stop(): Promise<void>;
6
+ restart(): Promise<void>;
7
+ get running(): boolean;
8
+ getStatus(): {
9
+ running: boolean;
10
+ };
11
+ appendLog(data: string): void;
12
+ getLogs(): string;
13
+ get log(): string;
14
+ }
@@ -1,4 +1,4 @@
1
- export * from './manager';
2
- export * from './log';
3
- export * from './ui';
4
- export { MediaDoc } from './scanner/db';
1
+ export * from './manager';
2
+ export * from './log';
3
+ export * from './ui';
4
+ export { MediaDoc } from './scanner/db';
@@ -1,19 +1,19 @@
1
- export declare enum LogLevel {
2
- INFO = "INFO",
3
- WARN = "WARN",
4
- DEBUG = "DEBUG",
5
- ERROR = "ERROR",
6
- FATAL = "FATAL",
7
- NONE = "NONE"
8
- }
9
- export declare class Logger {
10
- private constructor();
11
- log(level: LogLevel, message: string): void;
12
- scope(scope: string): Logger;
13
- info(message: string): void;
14
- warn(message: string): void;
15
- error(message: string | Error): void;
16
- debug(message: string): void;
17
- fatal(message: string | Error): void;
18
- print(message: string): void;
19
- }
1
+ export declare enum LogLevel {
2
+ INFO = "INFO",
3
+ WARN = "WARN",
4
+ DEBUG = "DEBUG",
5
+ ERROR = "ERROR",
6
+ FATAL = "FATAL",
7
+ NONE = "NONE"
8
+ }
9
+ export declare class Logger {
10
+ private constructor();
11
+ log(level: LogLevel, message: string): void;
12
+ scope(scope: string): Logger;
13
+ info(message: string): void;
14
+ warn(message: string): void;
15
+ error(message: string | Error): void;
16
+ debug(message: string): void;
17
+ fatal(message: string | Error): void;
18
+ print(message: string): void;
19
+ }
@@ -1,37 +1,37 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import { Injection, UIInjector } from './ui';
4
- import { EffectRegistry } from '../effect';
5
- import { Logger } from './log';
6
- import { MediaScanner } from './scanner/scanner';
7
- import { DirectoryManager } from './scanner/dir';
8
- import { CGServer } from './server';
9
- import { PluginManager } from './plugin';
10
- import { CasparProcess } from './caspar/process';
11
- import { CasparExecutor } from './caspar/executor';
12
- import { FileDatabase } from './scanner/db';
13
- import { RundownManager } from './rundown';
14
- import { VideoRoutesManager } from './routes';
15
- export declare class CasparManager extends EventEmitter {
16
- effects: EffectRegistry;
17
- ui: UIInjector;
18
- scanner: MediaScanner;
19
- server: CGServer;
20
- plugins: PluginManager;
21
- caspar: CasparProcess;
22
- executor: CasparExecutor;
23
- db: FileDatabase;
24
- rundowns: RundownManager;
25
- routes: VideoRoutesManager;
26
- start(): Promise<void>;
27
- stop(): Promise<void>;
28
- getMediaScanner(): MediaScanner;
29
- get directory(): DirectoryManager;
30
- getPlugins(): PluginManager;
31
- getCasparProcess(): CasparProcess;
32
- getExecutor(): CasparExecutor;
33
- getFiles(): FileDatabase;
34
- getPluginInjections(): Injection[];
35
- getPluginInjectionCode(id: string): Promise<string>;
36
- getLogger(scope: string): Logger;
37
- }
1
+ /// <reference types="node" />
2
+ import { EventEmitter } from 'events';
3
+ import { Injection, UIInjector } from './ui';
4
+ import { EffectRegistry } from '../effect';
5
+ import { Logger } from './log';
6
+ import { MediaScanner } from './scanner/scanner';
7
+ import { DirectoryManager } from './scanner/dir';
8
+ import { CGServer } from './server';
9
+ import { PluginManager } from './plugin';
10
+ import { CasparProcess } from './caspar/process';
11
+ import { CasparExecutor } from './caspar/executor';
12
+ import { FileDatabase } from './scanner/db';
13
+ import { RundownManager } from './rundown';
14
+ import { VideoRoutesManager } from './routes';
15
+ export declare class CasparManager extends EventEmitter {
16
+ effects: EffectRegistry;
17
+ ui: UIInjector;
18
+ scanner: MediaScanner;
19
+ server: CGServer;
20
+ plugins: PluginManager;
21
+ caspar: CasparProcess;
22
+ executor: CasparExecutor;
23
+ db: FileDatabase;
24
+ rundowns: RundownManager;
25
+ routes: VideoRoutesManager;
26
+ start(): Promise<void>;
27
+ stop(): Promise<void>;
28
+ getMediaScanner(): MediaScanner;
29
+ get directory(): DirectoryManager;
30
+ getPlugins(): PluginManager;
31
+ getCasparProcess(): CasparProcess;
32
+ getExecutor(): CasparExecutor;
33
+ getFiles(): FileDatabase;
34
+ getPluginInjections(): Injection[];
35
+ getPluginInjectionCode(id: string): Promise<string>;
36
+ getLogger(scope: string): Logger;
37
+ }
@@ -1,10 +1,10 @@
1
- import { CasparPlugin } from '../plugin';
2
- export declare class PluginManager {
3
- register(plugin: typeof CasparPlugin): void;
4
- unregister(plugin: CasparPlugin): void;
5
- enableAll(): void;
6
- disableAll(): void;
7
- get plugins(): CasparPlugin[];
8
- get enabled(): boolean;
9
- broadcast(event: string, ...args: any[]): void;
10
- }
1
+ import { CasparPlugin } from '../plugin';
2
+ export declare class PluginManager {
3
+ register(plugin: typeof CasparPlugin): void;
4
+ unregister(plugin: CasparPlugin): void;
5
+ enableAll(): void;
6
+ disableAll(): void;
7
+ get plugins(): CasparPlugin[];
8
+ get enabled(): boolean;
9
+ broadcast(event: string, ...args: any[]): void;
10
+ }
@@ -1,47 +1,46 @@
1
- import { CasparManager } from '../index';
2
- interface DecklinkSource {
3
- device: number;
4
- format: string;
5
- type: 'decklink';
6
- }
7
- interface VideoSource {
8
- video: string;
9
- type: 'video';
10
- }
11
- interface ChannelSource {
12
- channel: number;
13
- type: 'channel';
14
- }
15
- interface ColorSource {
16
- color: string;
17
- type: 'color';
18
- }
19
- interface EffectGroupDestination {
20
- effectLayer: string;
21
- index?: number;
22
- type: 'effect-group';
23
- }
24
- type Source = DecklinkSource | VideoSource | ChannelSource | ColorSource;
25
- type Destination = EffectGroupDestination;
26
- export interface VideoRoute {
27
- id: string;
28
- name: string;
29
- transform?: number[];
30
- source: Source;
31
- destination: Destination;
32
- enabled: boolean;
33
- metadata?: Record<string, any>;
34
- }
35
- export declare class VideoRoutesManager {
36
- constructor(manager: CasparManager);
37
- createVideoRoute(data: Omit<VideoRoute, 'id'>): VideoRoute;
38
- getVideoRoute(id: string): VideoRoute | null;
39
- getVideoRoutes(): VideoRoute[];
40
- updateVideoRoute(data: VideoRoute): Promise<void>;
41
- loadVideoRoutes(): Promise<void>;
42
- saveVideoRoute(route: VideoRoute): Promise<void>;
43
- deleteVideoRoute(id: string): Promise<void>;
44
- enableVideoRoute(id: string): any;
45
- disableVideoRoute(id: string): any;
46
- }
47
- export {};
1
+ import { CasparManager } from '../index';
2
+ interface DecklinkSource {
3
+ device: number;
4
+ format: string;
5
+ type: 'decklink';
6
+ }
7
+ interface VideoSource {
8
+ video: string;
9
+ type: 'video';
10
+ }
11
+ interface ChannelSource {
12
+ channel: number;
13
+ type: 'channel';
14
+ }
15
+ interface ColorSource {
16
+ color: string;
17
+ type: 'color';
18
+ }
19
+ interface EffectGroupDestination {
20
+ effectLayer: string;
21
+ index?: number;
22
+ type: 'effect-group';
23
+ }
24
+ type Source = DecklinkSource | VideoSource | ChannelSource | ColorSource;
25
+ type Destination = EffectGroupDestination;
26
+ export interface VideoRoute {
27
+ id: string;
28
+ name: string;
29
+ transform?: number[];
30
+ source: Source;
31
+ destination: Destination;
32
+ enabled: boolean;
33
+ metadata?: Record<string, any>;
34
+ }
35
+ export declare class VideoRoutesManager {
36
+ constructor(manager: CasparManager);
37
+ createVideoRoute(data: Omit<VideoRoute, 'id'>): VideoRoute;
38
+ getVideoRoute(id: string): VideoRoute | null;
39
+ getVideoRoutes(): VideoRoute[];
40
+ updateVideoRoute(data: VideoRoute): Promise<void>;
41
+ loadVideoRoutes(): Promise<void>;
42
+ saveVideoRoute(route: VideoRoute): Promise<void>;
43
+ deleteVideoRoute(id: string): Promise<void>;
44
+ setVideoRouteEnabled(id: string, enabled: boolean): any;
45
+ }
46
+ export {};