summaryrefslogtreecommitdiffstats
path: root/quantum/quantum.c
diff options
context:
space:
mode:
authorThat-Canadian <Poole.Chris.11@gmail.com>2018-07-17 04:25:02 +0200
committerJack Humbert <jack.humb@gmail.com>2018-07-17 04:25:02 +0200
commit0fab3bbde33f82301a8c5e177c3c0ceb7ad2219c (patch)
tree15a411d5ed6ad203982337448cfde11ed26ce7b7 /quantum/quantum.c
parentb2877470ced1deb9651ecb39f6a82f5ef380b399 (diff)
downloadqmk_firmware-0fab3bbde33f82301a8c5e177c3c0ceb7ad2219c.tar.gz
qmk_firmware-0fab3bbde33f82301a8c5e177c3c0ceb7ad2219c.tar.xz
Lets split eh (#3120)
* Line ending stuff again * Added Let's Split Eh? Files and updated #USE_IC2 checks to also include th EH revision (can only be used in I2C) * Added personal keymap, updated some of the EH files * Created new keyboard file for testing "lets_split_eh" will merge into lets_split once fully functional * Added split code from lets_split, removed pro micro imports and LED code THIS IS WORKING CODE, WITHOUT RGB AND BACKLIGHT * Took back original Lets Slit files for the lets_split keyboard, working in the lets_split_eh folder for now * Updated eh.c * More rework of the I2C code, added global flags for split boards. * Introduced RGB over I2C, having weird edge case issues at the moment though * Fixed weird I2C edgecase with RGB, although still would like to track down route cause.. * Changed RGB keycodes (static ones) to activate on key-up instead of key-down to elimate weird ghosting issue over I2C * Lots of changes, mainly externalized the Split keyboard code and added logic for only including when needed. - Added makefile option "SPLIT_KEYBOARD" that when = yes will include the split keyboard files and custom matrix - Split keyboard files placed into quantum/split_common/ - Added define option for config files "SPLIT_HAND_PIN" FOr using high/low pin to determine handedness, low = right hand, high = left hand - Cleaned up split logic for RGB and Backlight so it is only exectuted / included when needed * Updated documentation for the new makefile options and #defines specific to split keyboards * Added a bit more info to docs, so people aren't confused * Modifed Let's Split to use externalized code, also added left and right hand eeprom files to the split_common folder * Removed some debugging from eh.c * Small changes to keyboard configs. Also added a default keymap (just a copy of my that_canadian keymap). * Added a README file to the Let's Split Eh? * Changed it so RGB static updates are done on key-up ONLY for split boards rather than all boards. Also fixed leftover un-used variable in rgblight.c * Updated default keymap and my keymap for Let's Split Eh? Updated the comments so it reflects RGB control, and removed audio functions. * Fixed lets_split_eh not having a default version * Removed "eh" references from lets_split folder for now * Took lets_split folder from master to fix travis build errors, weird my local was overriding. * Changed LAYOUT_ortho_4x12_kc -> LAYOUT_kc_ortho_4x12 to match bakingpy and others * Removed rules.mk from my lets_split keymap, not needed * Updated the config_options doc to better explain the usage of "#define SPLIT_HAND_PIN"
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r--quantum/quantum.c65
1 files changed, 65 insertions, 0 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c
index 2bd2c71af..9c6ed3330 100644
--- a/quantum/quantum.c
+++ b/quantum/quantum.c
@@ -312,8 +312,16 @@ bool process_record_quantum(keyrecord_t *record) {
#endif
#if defined(RGBLIGHT_ENABLE) || defined(RGB_MATRIX_ENABLE)
case RGB_TOG:
+ // Split keyboards need to trigger on key-up for edge-case issue
+ #ifndef SPLIT_KEYBOARD
if (record->event.pressed) {
+ #else
+ if (!record->event.pressed) {
+ #endif
rgblight_toggle();
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_MODE_FORWARD:
@@ -325,6 +333,9 @@ bool process_record_quantum(keyrecord_t *record) {
else {
rgblight_step();
}
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_MODE_REVERSE:
@@ -336,36 +347,87 @@ bool process_record_quantum(keyrecord_t *record) {
else {
rgblight_step_reverse();
}
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_HUI:
+ // Split keyboards need to trigger on key-up for edge-case issue
+ #ifndef SPLIT_KEYBOARD
if (record->event.pressed) {
+ #else
+ if (!record->event.pressed) {
+ #endif
rgblight_increase_hue();
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_HUD:
+ // Split keyboards need to trigger on key-up for edge-case issue
+ #ifndef SPLIT_KEYBOARD
if (record->event.pressed) {
+ #else
+ if (!record->event.pressed) {
+ #endif
rgblight_decrease_hue();
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_SAI:
+ // Split keyboards need to trigger on key-up for edge-case issue
+ #ifndef SPLIT_KEYBOARD
if (record->event.pressed) {
+ #else
+ if (!record->event.pressed) {
+ #endif
rgblight_increase_sat();
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_SAD:
+ // Split keyboards need to trigger on key-up for edge-case issue
+ #ifndef SPLIT_KEYBOARD
if (record->event.pressed) {
+ #else
+ if (!record->event.pressed) {
+ #endif
rgblight_decrease_sat();
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_VAI:
+ // Split keyboards need to trigger on key-up for edge-case issue
+ #ifndef SPLIT_KEYBOARD
if (record->event.pressed) {
+ #else
+ if (!record->event.pressed) {
+ #endif
rgblight_increase_val();
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_VAD:
+ // Split keyboards need to trigger on key-up for edge-case issue
+ #ifndef SPLIT_KEYBOARD
if (record->event.pressed) {
+ #else
+ if (!record->event.pressed) {
+ #endif
rgblight_decrease_val();
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_SPI:
@@ -381,6 +443,9 @@ bool process_record_quantum(keyrecord_t *record) {
case RGB_MODE_PLAIN:
if (record->event.pressed) {
rgblight_mode(1);
+ #ifdef SPLIT_KEYBOARD
+ RGB_DIRTY = true;
+ #endif
}
return false;
case RGB_MODE_BREATHE: