VIA V3 - The Custom UI Update (#18222)

This commit is contained in:
Wilba 2022-11-10 07:46:44 +11:00 committed by GitHub
parent 575b0e33fa
commit bc6f8dc8b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
68 changed files with 751 additions and 886 deletions

View file

@ -4,12 +4,3 @@
#pragma once
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
// Enable a limited form of RGB Matrix support in VIA (requires redefining the
// effect list in the VIA JSON, which then becomes not 100% compatible with the
// RGBLIGHT firmwares).
#define VIA_QMK_RGBLIGHT_ENABLE
// Enable the workaround for the speed parameter mismatch between RGBLIGHT and
// RGB Matrix, so that the speed slider in VIA behaves in a more useful way.
#define VIA_CUSTOM_LIGHTING_ENABLE

View file

@ -164,60 +164,6 @@ uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t
return 0;
}
# if defined(VIA_ENABLE) && defined(VIA_CUSTOM_LIGHTING_ENABLE)
// VIA supports only 4 discrete values for effect speed; map these to some
// useful speed values for RGB Matrix.
enum speed_values {
RGBLIGHT_SPEED_0 = UINT8_MAX / 16, // not 0 to avoid really slow effects
RGBLIGHT_SPEED_1 = UINT8_MAX / 4,
RGBLIGHT_SPEED_2 = UINT8_MAX / 2, // matches the default value
RGBLIGHT_SPEED_3 = UINT8_MAX / 4 * 3, // UINT8_MAX is really fast
};
static uint8_t speed_from_rgblight(uint8_t rgblight_speed) {
switch (rgblight_speed) {
case 0:
return RGBLIGHT_SPEED_0;
case 1:
return RGBLIGHT_SPEED_1;
case 2:
default:
return RGBLIGHT_SPEED_2;
case 3:
return RGBLIGHT_SPEED_3;
}
}
static uint8_t speed_to_rgblight(uint8_t rgb_matrix_speed) {
if (rgb_matrix_speed < ((RGBLIGHT_SPEED_0 + RGBLIGHT_SPEED_1) / 2)) {
return 0;
} else if (rgb_matrix_speed < ((RGBLIGHT_SPEED_1 + RGBLIGHT_SPEED_2) / 2)) {
return 1;
} else if (rgb_matrix_speed < ((RGBLIGHT_SPEED_2 + RGBLIGHT_SPEED_3) / 2)) {
return 2;
} else {
return 3;
}
}
void raw_hid_receive_kb(uint8_t *data, uint8_t length) {
switch (data[0]) {
case id_lighting_get_value:
if (data[1] == id_qmk_rgblight_effect_speed) {
data[2] = speed_to_rgblight(rgb_matrix_get_speed());
}
break;
case id_lighting_set_value:
if (data[1] == id_qmk_rgblight_effect_speed) {
rgb_matrix_set_speed_noeeprom(speed_from_rgblight(data[2]));
}
break;
}
}
# endif // defined(VIA_ENABLE) && defined(VIA_CUSTOM_LIGHTING_ENABLE)
#endif // defined(RGB_MATRIX_ENABLE)
void winry315_set_orientation(uint8_t orientation) {