UNPKG

homebridge-hatch-baby-rest

Version:
28 lines (27 loc) 1.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SoundMachineAccessory = void 0; const hap_1 = require("./hap"); const operators_1 = require("rxjs/operators"); const base_accessory_1 = require("./base-accessory"); class SoundMachineAccessory extends base_accessory_1.BaseAccessory { constructor(device, accessory) { super(device, accessory); const { Service, Characteristic } = hap_1.hap, speakerService = this.getService(Service.Speaker, 'Volume'), audioService = this.getService(Service.Fan, 'onBrightness' in device ? 'Audio Track' : undefined), { audioTracks } = device; this.registerCharacteristic(speakerService.getCharacteristic(Characteristic.Volume), device.onVolume, (volume) => device.setVolume(volume)); this.registerCharacteristic(speakerService.getCharacteristic(Characteristic.Mute), device.onVolume.pipe((0, operators_1.map)((volume) => volume === 0)), (mute) => { device.setVolume(mute ? 0 : 50); }); this.registerCharacteristic(audioService.getCharacteristic(Characteristic.On), device.onAudioPlaying, (on) => device.setAudioPlaying(on)); this.registerCharacteristic(audioService.getCharacteristic(Characteristic.RotationSpeed), device.onAudioTrack.pipe((0, operators_1.filter)((audioTrack) => Boolean(audioTrack)), (0, operators_1.map)((audioTrack) => audioTracks.indexOf(audioTrack))), (level) => { const audioTrack = audioTracks[level]; if (audioTrack !== undefined) { device.setAudioTrack(audioTrack); } }); audioService .getCharacteristic(Characteristic.RotationSpeed) .setProps({ minValue: 0, maxValue: audioTracks.length - 1 }); } } exports.SoundMachineAccessory = SoundMachineAccessory;