Hi,
Am 21.02.24 um 23:17 schrieb Pavel Machek:
Hi!
so after more feedback from the OpenRGB maintainers I came up with an even
more generic proposal:
https://gitlab.com/CalcProgrammer1/OpenRGB/-/issues/3916#note_1753072869
evaluate-set-command ioctl taking:
{
enum command /* one of supported_commands */
union data
{
char raw[3072],
{
<input struct for command 0>
},
Yeah, so ... this is not a interface. This is a backdoor to pass
arbitrary data. That's not going to fly.
For keyboards, we don't need complete new interface; we reasonable
extensions over existing display APIs -- keyboards are clearly 2D.
Maybe we should look on this from a users perspective: Running custom Animation
(i.e. where treating it as a display would be helpfull) is only >one< of the
ways a user might want to use the keyboard backlight.
Equally viable are for example:
- Having it mono colored.
- Playing a hardware effect
- Playing a hardware effect on one side of the keyboard while having the other
side of the keyboard playing a custom animation (As I learned from the OpenRGB
maintainers: There are keyboards which allow this)
There is no reason to define a custom animation as the default and then just
bolt the other options on top as it might not even be possible for some devices
where the firmware is plainly to slow for custom animations.
Also I still think a 2*2, 1*3 or even 1*1 matrix is not a display, coming back
aground to the earlier point where I want to implement this for keyboard first,
but this discussion is also thought to find a way that works for all complex RGB
devices. And I don't think it is a good idea find a way that works for keyboards
and then introduce again something completely new for other device categories.
Best regards,
Pavel
Best regards,
Werner