@logitech-mx-creative-console/core
Version:
An npm module for interfacing with the Logitech MX Creative Console
28 lines • 1.06 kB
JavaScript
export function generateButtonsGrid(width, height, pixelSize, pixelOffset, pixelPadding, columnOffset = 0) {
const controls = [];
for (let row = 0; row < height; row++) {
for (let column = 0; column < width; column++) {
const index = row * width + column;
const hidIndex = index + 1;
controls.push({
type: 'button',
row,
column: column + columnOffset,
index,
hidId: hidIndex,
feedbackType: 'lcd',
pixelSize,
pixelPosition: {
// TODO - refine these?
x: pixelOffset.x + column * (pixelSize.width + pixelPadding.x),
y: pixelOffset.y + row * (pixelSize.height + pixelPadding.y),
},
});
}
}
return controls;
}
export function freezeDefinitions(controls) {
return Object.freeze(controls.map((control) => Object.freeze(control)));
}
//# sourceMappingURL=controlsGenerator.js.map