#The future of the SDKs

1 messages · Page 1 of 1 (latest)

sour kettle
#

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

mortal mist
#

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

unique tiger
#

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.

mortal mist
#

But the advantage is, you don't need to program RGB "for the Wooting keyboard"

unique tiger
#

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."

mortal mist
#

But if you want to get this in mainstream using an actual standard is the way to go

unique tiger
#

Well, my concern would be that the RGB SDK would suffer for it

mortal mist
#

How?

#

Can you do something in the RGB SDK what you can't do with LampArray?

unique tiger
#

Yes, I can do things simply. 😄

mortal mist
#

Not really

#

With LampArray you can just slap a wrapper on top of it and it is simple again

unique tiger
#

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.

mortal mist
#

And in 10 years you can drop compatibility 😄

unique tiger
#

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.

mortal mist
#

Nah, didn't the issues start with RUST?

#

Look, they are capable of putting a serial number into the firmware

unique tiger
#

which they do by simply plugging the keyboard in and issuing a command that tells it its firmware

mortal mist
#

Yeah, thats USB spec, but Roccat can't even do that. Their devices report an empty string as serial number

unique tiger
#

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 😄

mortal mist
#

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

unique tiger
#

Yeah, but I've already done mapping of key<->position, which is not that different between OEMs

mortal mist
#

In a grid or with actual coordinates?

unique tiger
#

Which is based on the areas as seen here:

mortal mist
#

Ah, YOU did

unique tiger
#

I doubt I'm the only one lol

#

I guess I'd need to update it for ANSI, since I switched cat_weary

mortal mist
unique tiger
#

Have you seen the spec? xD

#

I mean, as I said, I do like it, but it's a lot

mortal mist
#

The "user" does not need to know all of that

unique tiger
#

You are having very high hopes in devs who work 9-5 on Mon-Fri 😄

mortal mist
unique tiger
#

Yeah that looks nice, but Windows only

#

and idek how I'd address it via C++

mortal mist
#

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

unique tiger
#

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

mortal mist
#

Is there really no library out there?

unique tiger
#

There is, but where's the fun in that

mortal mist
#

Actually you can bypass that

unique tiger
#

No, there's no way to get the report descriptor on Windows

mortal mist
#

That stuff does only work if the user space part can see the device

unique tiger
mortal mist
#

What exactly is it that is missing?

#

Is that an implementation issue of hidapi on Windows?

unique tiger
#

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

mortal mist
#

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