UNPKG

homebridge-musiccast-bnetqc

Version:

Homebridge Yamaha MusicCast Multiroom Plugin with precise volume control

74 lines 2.82 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; const Cache_1 = require("./Cache"); const YamahaAPI_1 = require("./YamahaAPI"); const YamahaDevice_1 = require("./YamahaDevice"); const crypto_1 = __importDefault(require("crypto")); const PLUGIN_NAME = "homebridge-musiccast-bnetqc"; const PLATFORM_NAME = "MusiccastMultiroom"; class MusiccastMultiroom { constructor(log, platformConfig, api) { const config = platformConfig; const cache = new Cache_1.Cache(log); var presetInfoRegex; if (config.server.presetInfoRegex !== undefined) { try { presetInfoRegex = new RegExp(config.server.presetInfoRegex, 'g'); } catch (error) { log.info('invalid regex', error); } } const devices = []; try { var serverConfig = { host: config.server.host, inputs: config.server.inputs, volumeMin: config.server.volumeMin, volumeMax: config.server.volumeMax }; // MODIFIÉ : Logique simplifiée pour gérer les clients if (config.clients) { serverConfig.clients = config.clients.map(item => item.host); } else { serverConfig.clients = []; } } catch (error) { log.error("invalid config", error); return; } const groupId = crypto_1.default.createHash('md5').update(config.server.host).digest("hex"); const yamahaApi = new YamahaAPI_1.YamahaAPI(log, groupId, presetInfoRegex); const serverDevice = new YamahaDevice_1.YamahaDevice(serverConfig, api, cache, log, yamahaApi); devices.push(serverDevice); // MODIFIÉ : Logique simplifiée pour créer les appareils clients if (config.clients) { try { for (let client of config.clients) { var clientConfig = { host: client.host, serverDevice: serverDevice, volumeMin: client.volumeMin, volumeMax: client.volumeMax, }; devices.push(new YamahaDevice_1.YamahaDevice(clientConfig, api, cache, log, yamahaApi)); } } catch (error) { log.error("invalid config", error); return; } } for (let device of devices) { device.publishAccessory(PLUGIN_NAME); } } } module.exports = (api) => { api.registerPlatform(PLATFORM_NAME, MusiccastMultiroom); }; //# sourceMappingURL=main.js.map