UNPKG

camstreamerlib

Version:

Helper library for CamStreamer ACAP applications.

97 lines (96 loc) 3.39 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { CamOverlayDrawingAPI, TAlign, TCairoCreateResponse, TUploadImageResponse } from '../CamOverlayDrawingAPI'; import ResourceManager from './ResourceManager'; export type TRgb = [number, number, number]; export type TRgba = [number, number, number, number]; export type TTmf = 'TFM_OVERFLOW' | 'TFM_SCALE' | 'TFM_TRUNCATE'; export type TObjectFitType = 'fill' | 'fit' | 'none'; export type TFrameOptions = { enabled?: boolean; x: number; y: number; width: number; height: number; text?: string; fontColor?: TRgb; font?: string; bgColor?: TRgba; bgImage?: string; bgType?: TObjectFitType; borderRadius?: number; borderWidth?: number; borderColor?: TRgba; customDraw?: TDrawingCallback; layer?: number; }; export type TFrameInfo = { width: number; height: number; }; export type TDrawingCallback = (cod: CamOverlayDrawingAPI, cairo: string, info: TFrameInfo) => Promise<void>; export interface Frame { on(event: 'open', listener: () => void): this; on(event: 'close', listener: () => void): this; on(event: 'layoutChanged', listener: () => void): this; emit(event: 'open'): boolean; emit(event: 'close'): boolean; emit(event: 'layoutChanged'): boolean; } export declare class Frame extends EventEmitter { protected enabled: boolean; protected posX: number; protected posY: number; protected width: number; protected height: number; private text; private fontColor; private fontName?; private font?; private align; private textType; private bgColor?; private bgImageName?; private bgImage?; private bgType?; private borderRadius; private borderWidth; private borderColor; private customDraw?; private layer; protected children: Frame[]; constructor(opt: TFrameOptions); enable(): void; disable(): void; setFramePosition(x: number, y: number): void; setFrameSize(width: number, height: number): void; setText(text: string, align: TAlign, textType?: TTmf, fontColor?: TRgb): void; setFontColor(fontColor: TRgb): void; setFont(fontName: string): void; setFontData(fontData: TCairoCreateResponse): void; setBgColor(color: TRgba): void; setBgImage(imageName: string, type?: TObjectFitType): void; setBgImageData(imageData: TUploadImageResponse, type?: TObjectFitType): void; setBgType(type: TObjectFitType): void; setBorderRadius(radius: number): void; setBorderWidth(width: number): void; setBorderColor(color: TRgba): void; setCustomDraw(customDraw: TDrawingCallback): void; resetFont(): void; resetBgColor(): void; resetBgImage(): void; resetCustomDraw(): void; clear(): void; insert(...frames: Frame[]): void; getLayers(): Set<number>; protected layoutChanged(): void; displayImage(cod: CamOverlayDrawingAPI, resourceManager: ResourceManager, cairo: string, ppX: number, ppY: number, scale: number, layer: number): Promise<void>; private prepareResources; protected displayOwnImage(cod: CamOverlayDrawingAPI, cairo: string, ppX: number, ppY: number, scale: number): Promise<void>; private clipDrawing; private drawFrame; private drawImage; private drawText; private drawBorder; private drawRectPath; }