Commit Graph

42 Commits (2aa3a8e0598336b035ce4a16e41b03c6a79888e5)

Author SHA1 Message Date
Jeff Epler 9632360caa
Use a macro to compute the size of arrays at compile time (#18044)
* Add ARRAY_SIZE and CEILING utility macros

* Apply a coccinelle patch to use ARRAY_SIZE

* fix up some straggling items

* Fix 'make test:secure'

* Enhance ARRAY_SIZE macro to reject acting on pointers

The previous definition would not produce a diagnostic for
```
int *p;
size_t num_elem = ARRAY_SIZE(p)
```
but the new one will.

* explicitly get definition of ARRAY_SIZE

* Convert to ARRAY_SIZE when const is involved

The following spatch finds additional instances where the array is
const and the division is by the size of the type, not the size of
the first element:
```
@ rule5a using "empty.iso" @
type T;
const T[] E;
@@

- (sizeof(E)/sizeof(T))
+ ARRAY_SIZE(E)

@ rule6a using "empty.iso" @
type T;
const T[] E;
@@

- sizeof(E)/sizeof(T)
+ ARRAY_SIZE(E)
```

* New instances of ARRAY_SIZE added since initial spatch run

* Use `ARRAY_SIZE` in docs (found by grep)

* Manually use ARRAY_SIZE

hs_set is expected to be the same size as uint16_t, though it's made
of two 8-bit integers

* Just like char, sizeof(uint8_t) is guaranteed to be 1

This is at least true on any plausible system where qmk is actually used.

Per my understanding it's universally true, assuming that uint8_t exists:
https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1

* Run qmk-format on core C files touched in this branch

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-08-30 10:20:04 +02:00
Albert Y cde9dd8b90
Refactor Pixel Fractal effect (#17602)
* Refactor effect with smaller array

* Add RGB_MATRIX_USE_LIMITS call

* Remove spaces

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-11 22:41:42 +01:00
Albert Y 2f73e65837
Add LED limit call (#17679) 2022-07-14 12:37:47 +01:00
Albert Y 1862ac5454
Fix the use of LED limits (#17678) 2022-07-14 12:36:51 +01:00
Albert Y 300dab7962
[Code] Add solid reactive gradient mode (#17228) 2022-07-14 12:22:53 +01:00
Drashna Jaelre 1dfe2bb49a
Update LED/RGB Matrix flag function behavior (#17651) 2022-07-12 22:18:02 -07:00
Dasky dcdc7290e5
RGB Matrix Heatmap - Skip positions with NO_LED (#17488) 2022-06-29 01:25:03 -07:00
Dasky be42c5fb98
Fix RGB heatmap to use XY positions and use correct led limits (#17184)
* Fix RGB heatmap to use XY positions

* lower effect area limit and make configurable

* tidy up macro

* Fix triggering in both directions.

* add docs

* fix bug when decreasing value

* performance tweak
2022-06-21 10:53:34 -07:00
KoenGoe 671b62efab
Fixes #16705 : digital rain follows val (#16716)
Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-04-19 21:02:21 +10:00
Albert Y e5918cf968
Heatmap incorrect matrix effect workaround (#16315) 2022-04-16 11:34:07 -07:00
QMK Bot 63646e8906
Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
Dasky 00cc64638c
Fix right side ws2812 leds having two indices (#15985)
* Fix right side leds having two indices

* remove redundant left check
2022-02-11 20:13:22 +00:00
MasterSpoon 0452ad9479
Add RGB matrix & LED Matrix support for IS31FL3742A, IS31FL3743A, IS31FL3745, IS31FL3746A (#14989)
Co-authored-by: Xelus22 <17491233+Xelus22@users.noreply.github.com>
2022-02-06 09:04:43 -08:00
Adam Lickel eb8ace0855
RGB Matrix: Reload from EEPROM (#15923)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-04 19:08:48 -08:00
QMK Bot b4ceefde37
Format code according to conventions (#16211) 2022-02-04 19:23:30 +00:00
Albert Y 6a35788b63 [Core] Add Pixel Flow RGB matrix effect (#15829)
* Initial PIXEL FLOW matrix effect commit

* Commit suggested use of rgb_matrix_check_finished_leds

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Code change support for split RGB

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-05 05:58:16 +11:00
QMK Bot 578d3f6951 Merge remote-tracking branch 'origin/master' into develop 2022-02-04 18:57:58 +00:00
Nick Brassel 1fffcbc298
Revert "[Core] Add Pixel Flow RGB matrix effect (#15829)" (#16209)
This reverts commit e8fa329073.
2022-02-05 05:57:21 +11:00
QMK Bot f2384d062b Merge remote-tracking branch 'origin/master' into develop 2022-02-04 18:56:47 +00:00
Albert Y e8fa329073
[Core] Add Pixel Flow RGB matrix effect (#15829)
* Initial PIXEL FLOW matrix effect commit

* Commit suggested use of rgb_matrix_check_finished_leds

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>

* Code change support for split RGB

Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-02-05 05:55:51 +11:00
Albert Y 1d3c2ceded
Add init function to clear previous effect (#15815) 2022-01-17 06:48:09 +11:00
Erik Berthold 2c8d46f408
fix RGB_DISABLE_TIMEOUT flicker on split keyboards (#14954) 2021-12-27 13:50:44 +11:00
QMK Bot 25b087925c
Format code according to conventions (#15195) 2021-11-17 20:42:00 +00:00
Albert Y 557e5ddf99
Rename RGB fractal (#15174)
Co-authored-by: filterpaper <filterpaper@localhost>
2021-11-16 11:14:57 -08:00
Drashna Jaelre 160b0558f5
Require explicit enabling of RGB Matrix modes (#15018) 2021-11-15 10:41:04 -08:00
Albert Y 2173b5373c
Add Pixel Rain RGB Matrix effect (#14155)
* Add Pixel animation header file

* Add Pixel animation to documentation

* Add Pixel animation to core include file

* Remove unintended spaces

* Remove seeding of PRNG

* Increase frequency of lit keys

Co-authored-by: filterpaper <filterpaper@localhost>
2021-11-02 10:40:25 +11:00
lalalademaxiya1 f4ea262c17
Add a new led driver for Keychron's keyboards. (#14872)
* Add a new led driver for Keychron's keyboards.

* Update ckled2001.c/ckled2001.h.

* Update ckled2001.c/ckled2001.h.

* Update ckled2001.c/ckled2001.h.

* Update ckled2001.c

* Add a new led driver

* Update ckled2001.c

* Update ckled2001.c

* Update ckled2001.c

* Update ckled2001.c

* Delete ckled2001.c

* Create ckled2001.c

* Update ckled2001.c

* Update chibios-contrib

Co-authored-by: keychron-dev <85598583+keychron-dev@users.noreply.github.com>
Co-authored-by: lokher <lokher@gmail.com>
2021-11-02 09:43:53 +11:00
Vlad K a29ca1e7f1
Add support for ISSI drivers on both sides of a split keyboard (#13842)
* Gets RGB working on a split keyboard with IS31FL3733. Currently needs small tweak to re-enable WS2812

* Added helper function

* Trying to integrate the function

* Moved functionality into a macro

* Swapped conditional for a macro everywhere

* Tidying up

* More code cleanup

* Documentation updates

* Fixed formatting via linter

* Switching to a function from a macro

* Fixed compile error

* Fixing WS2812 behavior. UNTESTED.

* Updated documentation about the driver addresses.

* Fixed code for WS2812

* Trying to add in LED_MATRIX support

* Updated effects for LED matrix

* Updated third-party effect defines.

* Ran format-c on modified files

* Apply suggestions from code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* Move to static inline. Avoids issues with gcc v8+

* Move helper function for LED_matrix to static inline to avoid issues with gcc v8+

Co-authored-by: Vlad Kvitnevskiy <vladkvit@outlook.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-11-02 09:04:37 +11:00
Joel Challis 92385e30cd
Manually format develop (#15003) 2021-11-01 19:18:33 +00:00
Albert Y 4bf7ce2298
Add Fractal RGB matrix effects (#12670)
* Squashed fractal effect commit for easier rebase

* Update documentation

* Squashed fractal effect commit for easier rebase

* Update documentation

* Update doc spacing

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update feature_rgb_matrix.md

Co-authored-by: filterpaper <filterpaper@localhost>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-11-02 04:30:07 +11:00
Ryan b487e10753
Clean up LED/RGB Matrix driver config (#14760) 2021-10-10 16:57:49 -07:00
Joel Challis 00fd404433
Put back eeconfig_update_ functions (#14751) 2021-10-08 13:44:07 +01:00
Joel Challis 60297a1099
Reuse of EEPROM debounce logic (#14699)
* reuse rgb debounce logic

* Refactor led matrix

* Remove log line

* timeout should not be hard coded
2021-10-07 01:47:14 +01:00
Drashna Jaelre 169d5bd21d
[Bug] Fix IS31fl3741 driver to accept 1 or 2 addresses (#14451)
Co-authored-by: Joel Challis <git@zvecr.com>
2021-09-15 10:07:08 -07:00
Drashna Jaelre 92fa07336c
[Bug] Fix RGB/LED Matrix Suspend code (#14084) 2021-08-20 06:14:42 -07:00
Drashna Jaelre 7da97c293d
Rgb matrix/enable modes explicitly (#13758)
* Change animations to require explicet activation

* Add support for legacy config

* Make default for now

* Add LED Matrix support

* change LED Matrix docs
2021-08-18 04:19:00 +10:00
Joel Challis 3858a784c7
Align AW20216 driver (#13712)
* Align AW20216 driver

* Update drivers/awinic/aw20216.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Review comments

* formatting fixes

* stop if start failed?

* review comments

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-07-27 23:55:51 +01:00
Ryan 777fffb067
Revert "Add rgblight to RGB Matrix VPATH" (#13559) 2021-07-17 13:39:52 +10:00
Johannes Choo 10d7eca5af
Fix LED Hit Counter for LED/RGB Matrix (#12674) 2021-07-16 09:37:18 -07:00
Chris Cullin 70267b35c3
Dual RGB Matrix IS31FL3737 driver support to address #13442 (#13457)
* initial commit

* removed changes to write_pwm_buffer

* backward compatbility added

* fixed issue with backward compatibility

* documentation update

* removed unneccessary comment. branched from master

* updated per comments #13457

* removed blank line

* cformat on diff files
2021-07-15 22:52:05 +01:00
QMK Bot 38d979189b Merge remote-tracking branch 'origin/master' into develop 2021-06-23 09:45:48 +00:00
Ryan d61e5c0027
Move LED/RGB Matrix code into their own directories (#13257) 2021-06-22 18:26:23 +10:00