/** * Sets keys from object * @param {Object} matrixState { esc: [rgb], 4: [rgb], f: [rgb] ... } * @returns {number} number of bytes actually written */ setIndividualKeys(matrixState) { const arrayOfRgbValues = LEDController.AnnePro2_layout.map((key) => { let rgb = [0, 0, 0]; if (matrixState[key.key] != undefined) { rgb = matrixState[key.key] } return rgb; }); const messages = this.generateMultiColor(arrayOfRgbValues.flat()); let sentBytes = 0; for (let i = 0; i < messages.length; i++) { sentBytes += this.write(messages[i]); } return sentBytes; }
/** * Sets different colors for each key * @param {Array<Array<int>>} ledMatrix Two-dimensional array in format [ [[esc_rgb], [1_rgb], ..., [=_rgb], [backspace_rgb]], * [[tab_rgb], [q_rgb], ..., [backslash_rgb]], * ... * [[leftctrl_rgb], ..., [rightctrl_rgb]] * ] * @returns {number} number of bytes actually written */ setMultiColorLed(ledMatrix) { const ledMatrixFlattened = ledMatrix.flat(); const arrayOfRgbValues = LEDController.AnnePro2_layout.map((key) => { let rgb = [0, 0, 0]; if (ledMatrixFlattened[key.matrix_id]) { rgb = ledMatrixFlattened[key.matrix_id]; } return rgb; }); const messages = this.generateMultiColor(arrayOfRgbValues.flat()); let sentBytes = 0; for (let i = 0; i < messages.length; i++) { sentBytes += this.write(messages[i]); } return sentBytes; }