UNPKG

homebridge-philips-hue-sync-box

Version:
59 lines 2.19 kB
import { BaseTvDevice } from './baseTv.js'; export class TvDevice extends BaseTvDevice { platform; accessory; state; mainAccessory; constructor(platform, accessory, state, mainAccessory) { super(platform, accessory, state, mainAccessory); this.platform = platform; this.accessory = accessory; this.state = state; this.mainAccessory = mainAccessory; this.service .getCharacteristic(this.platform.api.hap.Characteristic.ActiveIdentifier) .onSet(value => { return this.updateExecution({ hdmiSource: 'input' + value, }); }); } updateTv() { this.platform.log.debug('Updated HDMI input to ' + this.state.execution.hdmiSource); this.service.updateCharacteristic(this.platform.api.hap.Characteristic.ActiveIdentifier, parseInt(this.state.execution.hdmiSource.replace('input', ''))); } getSuffix() { return '-T'; } getServiceSubType() { return 'TV'; } getServiceName() { return 'TV'; } getConfiguredNamePropertyName() { return 'tvAccessoryConfiguredName'; } isLightbulbEnabled() { return this.platform.config.tvAccessoryLightbulb; } createInputServices() { const services = []; for (let i = 1; i <= 4; i++) { // Sets the TV name const hdmiState = this.state.hdmi[`input${i}`]; const hdmiPosition = 'HDMI ' + i; const hdmiName = hdmiState.name ?? hdmiPosition; const hdmiInputService = this.getInputService(hdmiName, hdmiPosition); hdmiInputService .getCharacteristic(this.platform.api.hap.Characteristic.TargetVisibilityState) .onSet(this.setVisibility(hdmiInputService)); // Adds the input as a linked service, which is important so that the input is properly displayed in the Home app this.service.addLinkedService(hdmiInputService); services.push(hdmiInputService); } this.inputServices = services; this.updateSources(services); } } //# sourceMappingURL=tv.js.map