-
Notifications
You must be signed in to change notification settings - Fork 365
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add XPG Prime support #2353
base: dev
Are you sure you want to change the base?
Add XPG Prime support #2353
Conversation
Is there any specific reason this is implemented as a ScriptedDevice? Have you looked into the DefaultDevice class? I wrote it as an easier to implement alternative to IDevice. Does this rely on the order of the deviceKeys dictionary to send colors to the device? This will result in the wrong colors being sent if the user has the wrong layout selected (which is not necessatily going to happen but should be protected against anyway). |
Not a technical reason.
The order in the dictionary doesn't matter because each keyboard key uses the color of a single corresponding DeviceKey. |
Ah, you're right, I missed I might try and port this to Artemis as well. Was this dll written specifically for Aurora? I assume there are no docs available apart from this implementation? Doesn't look too complicated, thankfully. |
I wrote an initial version of an Artemis plugin for these devices: https://github.com/diogotr7/Artemis.Plugins.Devices.XpgPrime If there's any chance you could test this i would appreciate it. After all the more choice the user gets, the better. |
Any update on this? |
That's great!
The XPGDevice using C# is not my strong suit. The crash happens or not depending on how I call Any idea what exactly is going wrong? I have code that seems to be working but I'd like to understand to avoid any latent issue.
I did give it a brief look. I didn't want to spend time on this before I understand the issue above. I'll give feedback somewhere than this pull request. |
These access violation exceptions cannot be caught. It's not clear to me what changed exactly between the old implementation and the new one that made it break. I don't think this would be a threading issue since I'm not a fan of the use of unsafe, it shouldn't be needed. Several other |
I think I finally pinned down the issue. |
XPGDevice now inherits from DefaultDevice. The DLL has been updated to avoid the crash. |
This pull request proposes the following changes: