Indigo.prototype.setOption = function()

in indigo.js [2764:2803]


Indigo.prototype.setOption = function(option, value1, value2, value3) {
    this._setSessionId();
    let ret = -1;
    value2 = value2 || 0;
    value3 = value3 || 0;
    if (!value2) {
        switch (typeof value1) {
        case 'string':
            ret = this._checkResult(this._lib.indigoSetOption(option, value1));
            break;
        case 'number': {
            if (/^[0-9]+$/.test(String(value1)))
                ret = this._checkResult(this._lib.indigoSetOptionInt(option, value1));
            else
                ret = this._checkResult(this._lib.indigoSetOptionFloat(option, value1));
        }
            break;
        case 'boolean':
            const value1_b = (value1) ? 1 : 0;
            ret = this._checkResult(this._lib.indigoSetOptionBool(option, value1_b));
            break;
        default:
            throw IndigoException("bad option");
        }
    } else {
        if (typeof value1 === 'number' && typeof value2 === 'number') {
            if ((/^[0-9]+$/.test(String(value1))) && (/^[0-9]+$/.test(String(value2))))
                ret = this._checkResult(this._lib.indigoSetOptionXY(option, value1, value2));
            else
                throw IndigoException("bad option");
        }
        if (typeof value1 === 'number' && typeof value2 === 'number' && typeof value3 === 'number') {
            if (!(/^[0-9]+$/.test(String(value1))) && !(/^[0-9]+$/.test(String(value2))) && !(/^[0-9]+$/.test(String(value3))))
                ret = this._checkResult(this._lib.indigoSetOptionColor(option, value1, value2, value3));
            else
                throw IndigoException("bad option");
        }
    }
    return (ret === 1);
};