UNPKG

homebridge-pioneer-avr-2025

Version:

A Pioneer AVR plugin for homebridge. This plugin is designed for Pioneer models that use Telnet Commands (e.g., VSX-922). It may not be compatible with newer models (e.g., VSX-LX304).

86 lines 3.46 kB
"use strict"; // src/telnet-avr/telnetAvr.ts var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TelnetAvr = void 0; const connection_1 = require("./connection"); class TelnetAvr { constructor(pioneerAvr) { this.onData = () => { }; this.onDisconnectCallbacks = []; // List for onDisconnect callbacks this.onConnectCallbacks = []; // Callbacks for onConnect this.connectionReady = false; this.connectionStateForRunningCallbacks = 'disconnected'; // Use the properties from the passed-in PioneerAvr instance this.host = pioneerAvr.host; this.port = pioneerAvr.port; this.log = pioneerAvr.log; this.avr = pioneerAvr; this.device = pioneerAvr.device; this.platform = pioneerAvr.platform; this.connection = new connection_1.Connection(this); this.connection.onDisconnect = () => { if (this.connectionStateForRunningCallbacks === 'disconnected') { // this.log.debug('onDisconnect called while already disconnected. Skipping.'); return; } this.connectionStateForRunningCallbacks = 'disconnected'; this.connectionReady = false; this.log.debug('Running onDisconnect callbacks...'); for (const callback of this.onDisconnectCallbacks) { callback(); } }; this.connection.onConnect = () => { if (this.connectionStateForRunningCallbacks === 'connected') { return; } this.connectionStateForRunningCallbacks = 'connected'; this.connectionReady = true; for (const callback of this.onConnectCallbacks) { callback(); } }; } connect(callback) { this.connection.connect(() => { this.connectionReady = true; if (callback) { callback(); } }); } addOnConnectCallback(callback) { this.onConnectCallbacks.push(callback); } addOnDisconnectCallback(callback) { this.onDisconnectCallbacks.push(callback); } sendMessage(message, callbackChars, callback) { return __awaiter(this, void 0, void 0, function* () { return this.connection.sendMessage(message, callbackChars, callback); }); } displayChanged(message) { this.log.debug('[DISPLAY] ' + message); } fallbackOnData(error, message, callback) { this.onData(error, message, callback); } onDisconnect() { this.connection.onDisconnect(); } onConnect() { this.connection.onConnect(); } } exports.TelnetAvr = TelnetAvr; //# sourceMappingURL=telnetAvr.js.map