camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
87 lines (86 loc) • 2.82 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import * as EventEmitter from 'events';
import { WsOptions } from './internal/types';
export type CamOverlayDrawingOptions = WsOptions & {
camera?: number | number[];
zIndex?: number;
};
export type TCairoResponse = {
message: string;
call_id: number;
};
export type TCairoCreateResponse = {
var: string;
call_id: number;
};
export type TUploadImageResponse = {
var: string;
width: number;
height: number;
call_id: number;
};
export type TErrorResponse = {
error: string;
call_id?: number;
};
export type TService = {
id: number;
enabled: number;
schedule: string;
name: string;
identifier: string;
cameraList: number[];
};
export type TServiceList = {
services: TService[];
};
export type TAlign = 'A_RIGHT' | 'A_LEFT' | 'A_CENTER';
export type TextFit = 'TFM_SCALE' | 'TFM_TRUNCATE' | 'TFM_OVERFLOW';
export type TWriteTextParams = [string, string, number, number, number, number, TAlign, TextFit?];
export interface CamOverlayDrawingAPI {
on(event: 'open', listener: () => void): this;
on(event: 'close', listener: () => void): this;
on(event: 'error', listener: (err: Error) => void): this;
on(event: 'message', listener: (msg: string) => void): this;
emit(event: 'open'): boolean;
emit(event: 'close'): boolean;
emit(event: 'error', err: Error): boolean;
emit(event: 'message', msg: string): boolean;
}
export declare class CamOverlayDrawingAPI extends EventEmitter {
private tls;
private tlsInsecure;
private ip;
private port;
private user;
private pass;
private cameraList;
private zIndex;
private callId;
private sendMessages;
private timeoutCheckTimer;
private wsConnected;
private ws;
constructor(options?: CamOverlayDrawingOptions);
connect(): void;
disconnect(): void;
isConnected(): boolean;
cairo(command: string, ...params: unknown[]): Promise<TCairoResponse | TCairoCreateResponse>;
writeText(...params: TWriteTextParams): Promise<TCairoResponse>;
uploadImageData(imgBuffer: Buffer): Promise<TUploadImageResponse>;
uploadFontData(fontBuffer: Buffer): Promise<TCairoCreateResponse>;
showCairoImage(cairoImage: string, posX: number, posY: number): Promise<TCairoResponse>;
showCairoImageAbsolute(cairoImage: string, posX: number, posY: number, width: number, height: number): Promise<TCairoResponse>;
removeImage(): Promise<TCairoResponse>;
private createWsClient;
private incomingWsMessageHandler;
private sendMessage;
private sendBinaryMessage;
private startMsgsTimeoutCheck;
private stopMsgsTimeoutCheck;
private reconnectWithError;
private reportMessage;
private reportError;
private reportClose;
}