camstreamerlib
Version:
Helper library for CamStreamer ACAP applications.
77 lines (76 loc) • 2.21 kB
TypeScript
import { CamOverlayDrawingAPI } from '../node/CamOverlayDrawingAPI';
import { TAlign, TCairoCreateResponse, TUploadImageResponse } from './CamOverlayDrawingAPI';
export declare const COORD: {
readonly top_left: readonly [-1, -1];
readonly center_left: readonly [-1, 0];
readonly bottom_left: readonly [-1, 1];
readonly top_center: readonly [0, -1];
readonly center: readonly [0, 0];
readonly bottom_center: readonly [0, 1];
readonly top_right: readonly [1, -1];
readonly center_right: readonly [1, 0];
readonly bottom_right: readonly [1, 1];
};
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 type TFrame = {
x: number;
y: number;
width: number;
height: number;
};
export type TText = {
text: string;
textAlign: TAlign;
textType: TTmf;
fontColor: TRgb;
font: TCairoCreateResponse | undefined;
fontName: string | undefined;
};
export type TBg = {
bgColor: TRgba | undefined;
bgImage: TUploadImageResponse | undefined;
bgImageName: string | undefined;
bgType: TObjectFitType | undefined;
};
export type TBorder = {
borderRadius: number;
borderWidth: number;
borderColor: TRgba;
};
export type TCoAlignment = keyof typeof COORD;
export type TPainterOptions = TFrameOptions & {
screenWidth: number;
screenHeight: number;
coAlignment: TCoAlignment;
};
export type TLayer = {
layer: number;
surfaceCache?: string;
cairoCache?: string;
};