|
|
@@ -211,6 +211,37 @@ bool xap_respond_get_backlight_config(xap_token_t token, const void *data, size_
|
|
|
return xap_respond_data(token, &ret, sizeof(ret));
|
|
|
}
|
|
|
|
|
|
+bool xap_respond_set_backlight_config(xap_token_t token, const void *data, size_t length) {
|
|
|
+ if (length != sizeof(xap_route_lighting_backlight_set_config_arg_t)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ xap_route_lighting_backlight_set_config_arg_t *arg = (xap_route_lighting_backlight_set_config_arg_t *)data;
|
|
|
+
|
|
|
+ if (arg->enable) {
|
|
|
+ backlight_level_noeeprom(arg->val);
|
|
|
+ } else {
|
|
|
+ backlight_level_noeeprom(0);
|
|
|
+ }
|
|
|
+
|
|
|
+# ifdef BACKLIGHT_BREATHING
|
|
|
+ if (arg->mode) {
|
|
|
+ backlight_enable_breathing();
|
|
|
+ } else {
|
|
|
+ backlight_disable_breathing();
|
|
|
+ }
|
|
|
+# endif
|
|
|
+
|
|
|
+ xap_respond_success(token);
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+bool xap_respond_save_backlight_config(xap_token_t token, const void *data, size_t length) {
|
|
|
+ eeconfig_update_backlight_current();
|
|
|
+
|
|
|
+ xap_respond_success(token);
|
|
|
+ return true;
|
|
|
+}
|
|
|
#endif
|
|
|
|
|
|
#if ((defined(RGBLIGHT_ENABLE)))
|
|
|
@@ -219,6 +250,11 @@ bool xap_respond_get_backlight_config(xap_token_t token, const void *data, size_
|
|
|
extern rgblight_config_t rgblight_config;
|
|
|
|
|
|
uint8_t rgblight2xap(uint8_t val);
|
|
|
+uint8_t xap2rgblight(uint8_t val);
|
|
|
+
|
|
|
+void rgblight_enabled_noeeprom(bool val) {
|
|
|
+ val ? rgblight_enable_noeeprom() : rgblight_disable_noeeprom();
|
|
|
+}
|
|
|
|
|
|
bool xap_respond_get_rgblight_config(xap_token_t token, const void *data, size_t length) {
|
|
|
xap_route_lighting_rgblight_get_config_t ret;
|
|
|
@@ -232,6 +268,34 @@ bool xap_respond_get_rgblight_config(xap_token_t token, const void *data, size_t
|
|
|
|
|
|
return xap_respond_data(token, &ret, sizeof(ret));
|
|
|
}
|
|
|
+
|
|
|
+bool xap_respond_set_rgblight_config(xap_token_t token, const void *data, size_t length) {
|
|
|
+ if (length != sizeof(xap_route_lighting_rgblight_set_config_arg_t)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ xap_route_lighting_rgblight_set_config_arg_t *arg = (xap_route_lighting_rgblight_set_config_arg_t *)data;
|
|
|
+
|
|
|
+ uint8_t mode = xap2rgblight(arg->mode);
|
|
|
+ if (mode == INVALID_EFFECT) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ rgblight_enabled_noeeprom(arg->enable);
|
|
|
+ rgblight_mode_noeeprom(mode);
|
|
|
+ rgblight_sethsv_noeeprom(arg->hue, arg->sat, arg->val);
|
|
|
+ rgblight_set_speed_noeeprom(arg->speed);
|
|
|
+
|
|
|
+ xap_respond_success(token);
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+bool xap_respond_save_rgblight_config(xap_token_t token, const void *data, size_t length) {
|
|
|
+ eeconfig_update_rgblight_current();
|
|
|
+
|
|
|
+ xap_respond_success(token);
|
|
|
+ return true;
|
|
|
+}
|
|
|
#endif
|
|
|
|
|
|
#if ((defined(RGB_MATRIX_ENABLE)))
|
|
|
@@ -240,6 +304,11 @@ bool xap_respond_get_rgblight_config(xap_token_t token, const void *data, size_t
|
|
|
extern rgb_config_t rgb_matrix_config;
|
|
|
|
|
|
uint8_t rgb_matrix2xap(uint8_t val);
|
|
|
+uint8_t xap2rgb_matrix(uint8_t val);
|
|
|
+
|
|
|
+void rgb_matrix_enabled_noeeprom(bool val) {
|
|
|
+ val ? rgb_matrix_enable_noeeprom() : rgb_matrix_disable_noeeprom();
|
|
|
+}
|
|
|
|
|
|
bool xap_respond_get_rgb_matrix_config(xap_token_t token, const void *data, size_t length) {
|
|
|
xap_route_lighting_rgb_matrix_get_config_t ret;
|
|
|
@@ -254,4 +323,33 @@ bool xap_respond_get_rgb_matrix_config(xap_token_t token, const void *data, size
|
|
|
|
|
|
return xap_respond_data(token, &ret, sizeof(ret));
|
|
|
}
|
|
|
+
|
|
|
+bool xap_respond_set_rgb_matrix_config(xap_token_t token, const void *data, size_t length) {
|
|
|
+ if (length != sizeof(xap_route_lighting_rgb_matrix_set_config_arg_t)) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ xap_route_lighting_rgb_matrix_set_config_arg_t *arg = (xap_route_lighting_rgb_matrix_set_config_arg_t *)data;
|
|
|
+
|
|
|
+ uint8_t mode = xap2rgb_matrix(arg->mode);
|
|
|
+ if (mode == INVALID_EFFECT) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ rgb_matrix_enabled_noeeprom(arg->enable);
|
|
|
+ rgb_matrix_mode_noeeprom(mode);
|
|
|
+ rgb_matrix_sethsv_noeeprom(arg->hue, arg->sat, arg->val);
|
|
|
+ rgb_matrix_set_speed_noeeprom(arg->speed);
|
|
|
+ rgb_matrix_set_flags(arg->flags);
|
|
|
+
|
|
|
+ xap_respond_success(token);
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+bool xap_respond_save_rgb_matrix_config(xap_token_t token, const void *data, size_t length) {
|
|
|
+ eeconfig_update_rgb_matrix();
|
|
|
+
|
|
|
+ xap_respond_success(token);
|
|
|
+ return true;
|
|
|
+}
|
|
|
#endif
|