homebridge-denon-heos-audio
Version:
Control your Denon speakers via AVR Control and/or HeosCLI
201 lines (200 loc) • 6.26 kB
TypeScript
import { CommandMode, DefaultInput, DenonClient, Playing, RaceStatus } from "./denonClient.js";
import * as DenonProtocol from "./denonProtocol.js";
export declare class DenonClientHeosCli extends DenonClient {
readonly controlMode = DenonProtocol.ControlMode.HEOSCLI;
protected static readonly PROTOCOL: {
GLOBAL_CHANGE_EVENT_REGEX: RegExp;
PID_REGEX: RegExp;
EVENT_SUB: {
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
VALUES: {
ON: {
VALUE: string;
MAP: boolean;
};
OFF: {
VALUE: string;
MAP: boolean;
};
};
};
PLAYERS: {
GET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
};
PLAY_STATE: {
GET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
EVENT: {
COMMAND: string;
EXP_RES: RegExp;
};
VALUES: {
PLAY: {
VALUE: string;
MAP: Playing;
};
PAUSE: {
VALUE: string;
MAP: Playing;
};
STOP: {
VALUE: string;
MAP: Playing;
};
};
};
PLAY_NEXT: {
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
};
PLAY_PREVIOUS: {
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
};
MUTE: {
GET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
EVENT: {
COMMAND: string;
EXP_RES: RegExp;
};
VALUES: {
ON: {
VALUE: string;
MAP: boolean;
};
OFF: {
VALUE: string;
MAP: boolean;
};
};
};
VOLUME: {
GET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
EVENT: {
COMMAND: string;
EXP_RES: RegExp;
};
};
VOLUME_UP: {
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
};
VOLUME_DOWN: {
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
};
INPUT: {
GET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
SET: {
COMMAND: string;
PARAMS: string;
EXP_RES: RegExp;
};
EVENT: {
COMMAND: string;
EXP_RES: RegExp;
};
};
};
static readonly HEOS_SOURCES: {
readonly 1: DefaultInput;
readonly 2: DefaultInput;
readonly 3: DefaultInput;
readonly 4: DefaultInput;
readonly 5: DefaultInput;
readonly 6: DefaultInput;
readonly 7: DefaultInput;
readonly 8: DefaultInput;
readonly 9: DefaultInput;
readonly 10: DefaultInput;
readonly 12: DefaultInput;
readonly 13: DefaultInput;
readonly 15: DefaultInput;
readonly 16: DefaultInput;
readonly 18: DefaultInput;
readonly 30: DefaultInput;
readonly 1024: DefaultInput;
readonly 1025: DefaultInput;
readonly 1026: DefaultInput;
readonly 1027: DefaultInput;
readonly 1028: DefaultInput;
};
static readonly INPUT_SOURCES: DefaultInput[];
static readonly DEFAULT_INPUT_SOURCES: DefaultInput[];
private player_id;
constructor(serialNumber: string, host: string, connect_timeout: number, response_timeout: number, debugLogCallback?: (message: string, ...parameters: any[]) => void, powerUpdateCallback?: (power: boolean) => void, muteUpdateCallback?: (mute: boolean) => void, volumeUpdateCallback?: (volume: number) => void, inputUpdateCallback?: (input: string) => void);
private findPlayerId;
protected subscribeToChangeEvents(): Promise<void>;
protected sendCommand(command: any, commandMode: CommandMode, { value, passPayload }: {
value?: string;
passPayload?: boolean;
}): Promise<string>;
protected responseRouter(response: string): void;
private genericResponseHandler;
private getPlayingInternal;
getPlaying(raceStatus?: RaceStatus): Promise<Playing>;
setPlaying(playing: Playing): Promise<Playing>;
setPlayNext(): Promise<void>;
setPlayPrevious(): Promise<void>;
getPower(raceStatus?: RaceStatus): Promise<boolean>;
setPower(power: boolean): Promise<boolean>;
getMute(raceStatus?: RaceStatus): Promise<boolean>;
setMute(mute: boolean): Promise<boolean>;
getVolume(raceStatus?: RaceStatus): Promise<number>;
setVolume(volume: number): Promise<number>;
setVolumeUp(volumeIncrement: number): Promise<void>;
setVolumeDown(volumeDecrement: number): Promise<void>;
getInput(raceStatus?: RaceStatus): Promise<string>;
private static inputPayloadToInputID;
setInput(inputID: string): Promise<string>;
}