homebridge-loxone-proxy
Version:
Homebridge Dynamic Platform Plugin which exposes a Loxone System to Homekit.
55 lines • 2.65 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { LoxonePlatform } from '../../LoxonePlatform';
import { CameraController, CameraStreamingDelegate, PrepareStreamCallback, PrepareStreamRequest, SnapshotRequest, SnapshotRequestCallback, StreamingRequest, StreamRequestCallback, CameraRecordingDelegate } from 'homebridge';
import type { TwoWayAudioContext } from '../services/Camera';
import { StreamingDelegate as FfmpegStreamingDelegate } from './FfmpegStreamingProcess';
export declare class streamingDelegate implements CameraStreamingDelegate, FfmpegStreamingDelegate {
private readonly platform;
readonly controller: CameraController;
readonly recordingDelegate: CameraRecordingDelegate | undefined;
private readonly streamUrl;
private readonly base64auth;
private readonly cameraName;
private readonly twoWayAudioEnabled;
private readonly twoWayAudioMode;
private readonly twoWayAudioOutputArgs?;
private readonly twoWayAudioTemplateVars?;
private readonly twoWayAudioContext?;
private pendingSessions;
private ongoingSessions;
private cachedSnapshot;
private cachedAt;
private readonly cacheTtlMs;
private isShuttingDown;
private readonly hap;
private snapshotUrl?;
constructor(platform: LoxonePlatform, streamUrl: string, base64auth: string, cameraName: string, snapshotUrl?: string, twoWayAudioTemplateVars?: Record<string, string>, twoWayAudioContext?: TwoWayAudioContext);
stopStream(sessionId: string): void;
forceStopStream(sessionId: string): void;
getSnapshot(useCache?: boolean): Promise<Buffer | null>;
private getSnapshotViaHTTP;
handleSnapshotRequest(request: SnapshotRequest, callback: SnapshotRequestCallback): Promise<void>;
private fetchSnapshot;
prepareStream(request: PrepareStreamRequest, callback: PrepareStreamCallback): Promise<void>;
handleStreamRequest(request: StreamingRequest, callback: StreamRequestCallback): Promise<void>;
private startStream;
private startTwoWayAudio;
private startCustomTwoWayAudio;
private startLoxoneTwoWayAudio;
private createLoxoneIncomingAudioBridge;
private getAudioCodecArgs;
private resolveAudioSampleRateKhz;
private feedHomeKitIncomingAudio;
private createReturnAudioTranscoder;
private getReturnAudioStdout;
private detachReturnAudioStdout;
private resolveLoxoneSignalingBaseUrl;
private buildAuthArgs;
private buildSnapshotFilter;
private clamp;
private buildTwoWayAudioOutputArgs;
private extractHost;
private tokenizeFfmpegArgs;
}
//# sourceMappingURL=StreamingDelegate.d.ts.map