atem-connection
Version:
Typescript Node.js library for connecting with an ATEM switcher.
38 lines • 1.76 kB
TypeScript
/// <reference types="node" />
import { IDeserializedCommand, ISerializableCommand } from '../commands/CommandBase';
import type { UploadBufferInfo } from './dataTransferUploadBuffer';
export interface UploadStillEncodingOptions {
disableRLE?: boolean;
}
export declare class DataTransferManager {
#private;
private interval?;
private exitUnsubscribe?;
constructor(rawSendCommands: (cmds: ISerializableCommand[]) => Promise<void>);
private get allLocks();
/**
* Start sending of commands
* This is called once the connection has received the initial state data
*/
startCommandSending(skipUnlockAll?: boolean): void;
/**
* Stop sending of commands
* This is called once the connection is disconnected
*/
stopCommandSending(): void;
/**
* Queue the handling of a received command
* We do it via a queue as some of the handlers need to be async, and we don't want to block state updates from happening in parallel
*/
queueHandleCommand(command: IDeserializedCommand): void;
downloadClipFrame(clipIndex: number, frameIndex: number): Promise<Buffer>;
downloadStill(index: number): Promise<Buffer>;
uploadStill(index: number, data: UploadBufferInfo, name: string, description: string): Promise<void>;
uploadClip(index: number, data: Iterable<UploadBufferInfo> | AsyncIterable<UploadBufferInfo>, name: string): Promise<void>;
uploadAudio(index: number, data: Buffer, name: string): Promise<void>;
downloadMacro(index: number): Promise<Buffer>;
uploadMacro(index: number, data: Buffer, name: string): Promise<void>;
uploadMultiViewerLabel(index: number, data: Buffer): Promise<void>;
private getClipLock;
}
//# sourceMappingURL=index.d.ts.map