homebridge-virtual-accessories
Version:
Virtual HomeKit accessories for Homebridge.
46 lines • 1.57 kB
JavaScript
/* eslint-disable curly */
import { InputSourceConfiguration } from './configurationInputSource.js';
import { Utils } from '../../utils/utils.js';
/**
*
*/
export class TelevisionConfiguration {
inputs;
errorFields = [];
fieldNames = Utils.proxiedPropertiesOf(this);
isValid(prefix) {
const isValidInputsArray = (Utils.required(this.inputs) &&
(this.inputs.length > 0));
let isValidInputNames = true;
const namesSet = new Set();
this.inputs.forEach(input => {
isValidInputNames &&=
input.length > 0 &&
!namesSet.has(input);
namesSet.add(input);
});
// Store fields failing validation
if (!isValidInputsArray)
this.errorFields.push(prefix + '.' + this.fieldNames.inputs);
if (!isValidInputNames)
this.errorFields.push(prefix + '.' + this.fieldNames.inputs);
return [
(isValidInputsArray &&
isValidInputNames),
this.errorFields,
];
}
getInputSources() {
const HDMI = 3; // Characteristic.InputSourceType.HDMI
const inputSources = [];
this.inputs.forEach((name, index) => {
const inputSource = new InputSourceConfiguration();
inputSource.name = name;
inputSource.inputSourceType = HDMI;
inputSource.identifier = index;
inputSources.push(inputSource);
});
return inputSources;
}
}
//# sourceMappingURL=configurationTelevision.js.map