#The future of the SDKs
1 messages · Page 1 of 1 (latest)
That ended up being a bit more of a rant than I planned, but would be nice to hear some perspectives so we have them to refer to when we are getting properly stuck into solving these things
@mortal mist @unique tiger
One additional note with the HID LampArray, is that I'm hoping that we can have it on a dedicated USB interface, or at least combined onto one that won't get blocked with direct HID access (like the keyboard interface).
So that it is easily accessible without reliance on OS APIs
HID LampArray has keycodes and indices, sounds good to me for the RGB part
It's far less convenient then a simple table (if that's even what you are looking for). But it's standard and it has (in theory) accurate key positioning
What an ominous title.
The analogue interface already works absolutely fine with non-exclusive access since different threads/programs can read the same input reports.
As for the "management interface", as I said, I do believe the only reason the Wootility and RGB SDK have issues is because the Wootility doesn't handle getting an input report/response to something it didn't issue. This may be fixed if you switched to feature reports, or simply ignored responses to commands you didn't issue on the Wootility/background service.
And I'm personally not a huge fan of LampArray — have y'all seen that spec? I mean, it's very exhaustive, which I suppose is good, but I'd wager the added complexity + relative "novelty" of it would needlessly increase the complexity of trying to program RGB on a Wooting keyboard.
But the advantage is, you don't need to program RGB "for the Wooting keyboard"
Certainly it would be good to support it, but for the reason of supporting "the standard." That doesn't mean the average enthusiastic person with a Wooting keyboard will want to deal with "the standard."
You can still wrap the RGB SDK around it
But if you want to get this in mainstream using an actual standard is the way to go
Well, my concern would be that the RGB SDK would suffer for it
Yes, I can do things simply. 😄
Not really
With LampArray you can just slap a wrapper on top of it and it is simple again
Sure, if they do simply update the RGB SDK to still be compatible with old keyboards/firmware and old apps while using the new interface under the hood, then it'd be fine.
And in 10 years you can drop compatibility 😄
I'm just saying that from experience with this company, they're not gonna do that, and they're gonna do it in the stupidest way possible.
Nah, didn't the issues start with RUST?
Look, they are capable of putting a serial number into the firmware
which they do by simply plugging the keyboard in and issuing a command that tells it its firmware
Yeah, thats USB spec, but Roccat can't even do that. Their devices report an empty string as serial number
at least that's my guess for how that works. there is related code in the wootility, too. it can give your keyboard a new S/N. 😛
and yeah, that's just because they actually take some time with each keyboard in the factory to make sure it's up to par
if they didn't I'd probably not be here in agony about how they get everything wrong... the hardware is just that good
well, and they do actually have an analogue SDK, so...
this broken clock is right more than 2 times in a day 😄
Another question would be... does Aurora support LampArray?
Also a point for LampArray, there were some people displaying an image on the keyboard. With LampArray this would be more precise
Yeah, but I've already done mapping of key<->position, which is not that different between OEMs
In a grid or with actual coordinates?
Ah, YOU did
I doubt I'm the only one lol
I guess I'd need to update it for ANSI, since I switched 
You somehow loose the point of simplicity if you first have to figure out the actual coordinates to a grid position
The "user" does not need to know all of that
You are having very high hopes in devs who work 9-5 on Mon-Fri 😄
https://learn.microsoft.com/en-us/uwp/api/windows.devices.lights.lamparray?view=winrt-26100 <<--- on the first glance this doesn't look too complicated
The WinRT stuff should be available to C++
As far as I remember you need somehow to set up WinRT then you can include the header and use it
The last time I tried WinUI 2 and WinUI 3 and trashed it ^^
But the important part here an library exists and it is managed by the OS. Which is better then direct communication with a HID device
Yes, except I'll have to do parse the report descriptor anyway if I want to port it to Linux 😄
so the fact that the OS gives the "convenient abstractions" means nothing to me and it's just annoying that they don't provide a way to bypass them either
Is there really no library out there?
There is, but where's the fun in that
Actually you can bypass that
No, there's no way to get the report descriptor on Windows
That stuff does only work if the user space part can see the device
At least in usermode. You can sorta reconstruct it from the data structs, but that's undocumented, too. 😄
What exactly is it that is missing?
Is that an implementation issue of hidapi on Windows?
Windows, the OS, does not have a way to get the report descriptor
I don't care about hidapi because it's third-party and I don't like third-party
Maybe I should explain, why I'm against binding the extra keys to F-Keys
It's a hack solution
It works for Wooting keyboards because there are not many of those
But if the same approach would be used for example for the macro keys of some older Logitech keyboards (18 G keys, 3 M keys, 1 MR key, ...) this would not work
Also it has the side effect of those keys being visible to applications