keychron_qmk_firmware/users/muppetjones/features/rgblayers.c

70 lines
2.1 KiB
C
Raw Normal View History

Userspace: muppetjones (#1) (#13461) * Userspace: muppetjones (#1) Add and update lily58 to work with userspace Add and update kyria keymap to work with userspace Add and update planck keymap with userspace Add etchamouse code and docs to userpace Add userspace Update mouse encoder for smoother movement. Encoder + mouse Added casemodes by andrewjrae * Rollback lily58 state reader and add missing GPL * Apply suggestions from code review Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Joel Challis <git@zvecr.com> * fix lily58 keymap * Updates to user and lily for muppetjones. Updated parameters for etchamouse for smoother mouse movement. Updated lily keymap and userspace to actually work together. * Update keyboards/lily58/keymaps/muppetjones/config.h Co-authored-by: Drashna Jaelre <drashna@live.com> * Updated keymaps and userspace * Little more cleanup. * Update keyboards/lily58/keymaps/muppetjones/rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> * Rollback accidental libchibios update * Apply suggestions from code review Co-authored-by: Drashna Jaelre <drashna@live.com> * Update kyria keymap * Move kyria keymap to splitkb/kyria * Update planck keymap * Remove all changes to keyboards/lily58/lib/layer_state_reader.c * Update lily58 keymap * Recommended change * Update keymap readme * Update kyria keymap and userspace * Apply suggestions from code review Co-authored-by: Drashna Jaelre <drashna@live.com> * Renamed users/muppetjones/README.md to lc * Update keyboards/lily58/keymaps/muppetjones/config.h Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Drashna Jaelre <drashna@live.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com>
2022-08-03 23:23:17 +06:00
/* Copyright 2020 Stephen J. Bush
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef RGBLIGHT_ENABLE
# include QMK_KEYBOARD_H
# include "rgblayers.h"
static rgblight_config_t home_rgb;
__attribute__((weak)) void set_layer_hsv(layer_state_t state, HSV* offset) {}
/* Placeholder function
* If defined in a keymap.c, this will be ignored.
*/
__attribute__((weak)) void post_process_record_keymap(uint16_t keycode, keyrecord_t* record) { return; }
void post_process_record_user(uint16_t keycode, keyrecord_t* record) {
// Regular user keycode case statement
switch (keycode) {
# ifdef RGBLIGHT_ENABLE
case RGB_HUD:
case RGB_HUI:
case RGB_SAD:
case RGB_SAI:
case RGB_VAD:
case RGB_VAI:
set_rgb_home();
break;
# endif
default:
break;
}
}
void set_rgb_home(void) {
home_rgb.raw = eeconfig_read_rgblight();
// these get the current -- not eeprom
// home_rgb.hue = rgblight_get_hue();
// home_rgb.sat = rgblight_get_sat();
// home_rgb.val = rgblight_get_val();
}
void set_rgb_by_layer(layer_state_t state) {
if (!rgblight_is_enabled()) {
return; // lighting not enabled
}
HSV layer_color = {home_rgb.hue, home_rgb.sat, home_rgb.val};
set_layer_hsv(state, &layer_color);
rgblight_sethsv_noeeprom( //
layer_color.h, // all 3 MUST be btwn 0 and 255
layer_color.s, //
layer_color.v //
);
}
#endif