Commit Graph

28 Commits

Author SHA1 Message Date
Adam Honse
3a74c85be8 Move RGBController base destructor functionality into RGBController::Shutdown() so that update thread can be stopped before deleting the controller. Shutdown() must be called in every RGBController implementation before deleting the controller. Also some fixes to the NetworkServer to avoid deadlocking and disconnect issues 2026-07-07 01:35:34 -05:00
Adam Honse
fe4ca34528 Move HID detector calls to RunHIDDetector/RunHIDWrappedDetector functions and return controller list from detector functions 2026-07-07 01:35:34 -05:00
Adam Honse
30e35eb44c Split out detection system from ResourceManager into DetectionManager
* Split detection system out into its own class, DetectionManager
    * Clean up ResourceManger's many callbacks into just two, one for detection and one general purpose
2026-07-07 01:35:34 -05:00
Adam Honse
25a753b97a RGBController API Overhaul
* Reorganize and clean up RGBController API functions
    * Add functions to get protected RGBController member values
    * Make NetworkClient, ProfileManager, and ResourceManager friend classes so they can access protected members
    * Protected previously-public RGBController members
        * Information strings (name, vendor, description, version, serial location)
        * Device type
        * Active mode
        * Flags
        * LEDs vector
        * LED alternate names vector
        * Modes vector
        * Colors vector
        * Zones vector
    * Add CONTROLLER_FLAG_HIDDEN to allow plugins to hide controllers from control GUI
    * Add update reason codes to RGBController update callback and signal updates on more RGBController events
    * Add loop zone types and segmented zone type
    * Add matrix map field to segments
    * Rework matrix_map_type from using pointers to vector to prevent memory leaks
    * Rework KeyboardLayoutManager to return new matrix_map_type
    * Add access mutex to RGBController API
    * Add per-zone modes ot RGBController API
    * Add JSON description functions to RGBController API
2026-07-07 01:35:34 -05:00
Adam Honse
3818398d86 Handle differences in supported features protocol packet between Keychron QMK and ZMK 2026-07-07 01:34:16 -05:00
Adam Honse
0973f6149b Add Keychron Ultra 8K (ZMK) keyboards to Keychron QMK controller as they implement the same protocol 2026-07-07 01:22:02 -05:00
Adam Honse
1e1fb09821 Fix up mode setup in QMK Keychron controller 2026-07-05 17:20:39 -05:00
Adam Honse
971a2cc300 Fix warnings in QMKKeychronController 2026-07-04 13:41:57 -05:00
Adam Honse
3932a9614c Minor cleanups and warning fixes 2026-06-29 18:08:48 -05:00
Adam Honse
c746b30287 Add Keychron K-series V2 keyboards from wls_2025q1 branch 2026-06-28 15:45:48 -05:00
Adam Honse
7627466891 Get Keychron firmware version 2026-06-28 01:30:32 -05:00
Adam Honse
6fc68f4e62 Add the rest of the Keychron keyboards in the 2025q3 branch 2026-06-27 20:03:50 -05:00
Adam Honse
75bac1fd4e Add all the Keychron K series keyboards from the 2025q3 firmware branch 2026-06-26 10:17:06 -05:00
Adam Honse
103306c6c8 Add all the Keychron C series keyboards from the 2025q3 firmware branch 2026-06-25 16:04:22 -05:00
Adam Honse
6d37d262ea Add all the Keychron Q series keyboards from the 2025q3 firmware branch 2026-06-25 12:55:39 -05:00
Adam Honse
5c931a61b4 Add support for Keychron K10 V2 in QMKKeychronController 2026-06-24 23:33:23 -05:00
Adam Honse
c5abe47859 Create a common type for storing QMK LED info and use it in both VialRGB and Keychron controllers 2026-06-24 11:55:26 -05:00
Adam Honse
d3e7dba2b7 Add supported feature check in QMKKeychronController 2026-06-23 19:22:50 -05:00
Adam Honse
73865fec59 Improve matrix generation for QMK Keychron controller, clean up modes, implement manual save 2026-06-22 18:42:03 -05:00
Adam Honse
cce2d41500 Cleanups to QMKKeychronController and create common QMK VIA protocol header 2026-06-21 21:14:46 -05:00
Amadej Kastelic
175f3ed338 feat: add Keychron Q1 HE keyboard support and restructure Keychron controllers 2026-06-21 21:14:46 -05:00
Adam Honse
f872f1c591 Ignore modes out of range in VialRGB controller 2026-04-08 18:50:47 -05:00
Adam Honse
b4940e3a75 Fix warning in QMKVialRGBController 2026-03-02 23:04:40 -06:00
Daniel Lamphere
9fd352efc4 Prevent division by zero crash in QMK OpenRGB controllers 2026-01-04 12:51:34 -06:00
Adam Honse
c509698b54 Fix a bunch of warnings 2025-12-15 19:21:15 -06:00
Egor Vorontsov
7886dc4c14 Added VialRGB dynamic detector. 2025-11-24 20:37:08 -06:00
Adam Honse
63936126f3 Perform VialRGB version and flag checks before registering QMK VialRGB controllers 2025-10-09 11:28:10 -05:00
Adam Honse
6aa8eb6101 Clean up OpenRGB and VialRGB QMK controllers into a common folder and move keymap definitions to QMK common files 2025-10-07 17:07:28 -05:00