Skip to content

Commit

Permalink
Add manipulate_caps_lock_led, treat_as_built_in_keyboard,disable_buil…
Browse files Browse the repository at this point in the history
…t_in_keyboard_if_exists into helper_values_
  • Loading branch information
tekezo committed Jun 16, 2024
1 parent 938c804 commit 6004d1c
Show file tree
Hide file tree
Showing 8 changed files with 262 additions and 48 deletions.
2 changes: 2 additions & 0 deletions src/share/core_configuration/core_configuration.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,10 @@ class core_configuration final {
error_handling)) {
helper_values_.push_back_object<details::global_configuration>("global",
global_configuration_);

helper_values_.push_back_object<details::machine_specific>("machine_specific",
machine_specific_);

helper_values_.push_back_array<details::profile>("profiles",
profiles_);

Expand Down
5 changes: 5 additions & 0 deletions src/share/core_configuration/details/global_configuration.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,23 @@ class global_configuration final {
helper_values_.push_back_value<bool>("check_for_updates_on_startup",
check_for_updates_on_startup_,
true);

helper_values_.push_back_value<bool>("show_in_menu_bar",
show_in_menu_bar_,
true);

helper_values_.push_back_value<bool>("show_profile_name_in_menu_bar",
show_profile_name_in_menu_bar_,
false);

helper_values_.push_back_value<bool>("enable_notification_window",
enable_notification_window_,
true);

helper_values_.push_back_value<bool>("ask_for_confirmation_before_quitting",
ask_for_confirmation_before_quitting_,
true);

helper_values_.push_back_value<bool>("unsafe_ui",
unsafe_ui_,
false);
Expand Down
60 changes: 32 additions & 28 deletions src/share/core_configuration/details/profile/device.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,64 +72,88 @@ if (abs(cos(radian)) <= abs(sin(radian))) {
device(const nlohmann::json& json,
error_handling error_handling)
: json_(json),
ignore_(false),
manipulate_caps_lock_led_(false),
treat_as_built_in_keyboard_(false),
disable_built_in_keyboard_if_exists_(false) {
ignore_(false) {
helper_values_.push_back_value<bool>("manipulate_caps_lock_led",
manipulate_caps_lock_led_,
false);

helper_values_.push_back_value<bool>("treat_as_built_in_keyboard",
treat_as_built_in_keyboard_,
false);

helper_values_.push_back_value<bool>("disable_built_in_keyboard_if_exists",
disable_built_in_keyboard_if_exists_,
false);

helper_values_.push_back_value<bool>("mouse_flip_x",
mouse_flip_x_,
false);

helper_values_.push_back_value<bool>("mouse_flip_y",
mouse_flip_y_,
false);

helper_values_.push_back_value<bool>("mouse_flip_vertical_wheel",
mouse_flip_vertical_wheel_,
false);

helper_values_.push_back_value<bool>("mouse_flip_horizontal_wheel",
mouse_flip_horizontal_wheel_,
false);

helper_values_.push_back_value<bool>("mouse_swap_xy",
mouse_swap_xy_,
false);

helper_values_.push_back_value<bool>("mouse_swap_wheels",
mouse_swap_wheels_,
false);

helper_values_.push_back_value<bool>("mouse_discard_x",
mouse_discard_x_,
false);

helper_values_.push_back_value<bool>("mouse_discard_y",
mouse_discard_y_,
false);

helper_values_.push_back_value<bool>("mouse_discard_vertical_wheel",
mouse_discard_vertical_wheel_,
false);

helper_values_.push_back_value<bool>("mouse_discard_horizontal_wheel",
mouse_discard_horizontal_wheel_,
false);

helper_values_.push_back_value<bool>("game_pad_swap_sticks",
game_pad_swap_sticks_,
false);

helper_values_.push_back_value<double>("game_pad_xy_stick_continued_movement_absolute_magnitude_threshold",
game_pad_xy_stick_continued_movement_absolute_magnitude_threshold_,
1.0);

helper_values_.push_back_value<int>("game_pad_xy_stick_continued_movement_interval_milliseconds",
game_pad_xy_stick_continued_movement_interval_milliseconds_,
20);

helper_values_.push_back_value<int>("game_pad_xy_stick_flicking_input_window_milliseconds",
game_pad_xy_stick_flicking_input_window_milliseconds_,
50);

helper_values_.push_back_value<double>("game_pad_wheels_stick_continued_movement_absolute_magnitude_threshold",
game_pad_wheels_stick_continued_movement_absolute_magnitude_threshold_,
1.0);

helper_values_.push_back_value<int>("game_pad_wheels_stick_continued_movement_interval_milliseconds",
game_pad_wheels_stick_continued_movement_interval_milliseconds_,
10);

helper_values_.push_back_value<int>("game_pad_wheels_stick_flicking_input_window_milliseconds",
game_pad_wheels_stick_flicking_input_window_milliseconds_,
50);

auto ignore_configured = false;
auto manipulate_caps_lock_led_configured = false;

// ----------------------------------------
// Set default value
Expand Down Expand Up @@ -159,22 +183,6 @@ if (abs(cos(radian)) <= abs(sin(radian))) {
ignore_ = value.get<bool>();
ignore_configured = true;

} else if (key == "manipulate_caps_lock_led") {
pqrs::json::requires_boolean(value, "`" + key + "`");

manipulate_caps_lock_led_ = value.get<bool>();
manipulate_caps_lock_led_configured = true;

} else if (key == "treat_as_built_in_keyboard") {
pqrs::json::requires_boolean(value, "`" + key + "`");

treat_as_built_in_keyboard_ = value.get<bool>();

} else if (key == "disable_built_in_keyboard_if_exists") {
pqrs::json::requires_boolean(value, "`" + key + "`");

disable_built_in_keyboard_if_exists_ = value.get<bool>();

} else if (key == "game_pad_stick_x_formula") {
game_pad_stick_x_formula_ = unmarshal_formula(value, key);

Expand Down Expand Up @@ -221,10 +229,9 @@ if (abs(cos(radian)) <= abs(sin(radian))) {

// manipulate_caps_lock_led_

if (!manipulate_caps_lock_led_configured) {
if (identifiers_.get_is_keyboard()) {
manipulate_caps_lock_led_ = true;
}
if (identifiers_.get_is_keyboard()) {
helper_values_.set_default_value(manipulate_caps_lock_led_,
true);
}

//
Expand Down Expand Up @@ -254,9 +261,6 @@ if (abs(cos(radian)) <= abs(sin(radian))) {

j["identifiers"] = identifiers_;
j["ignore"] = ignore_;
j["manipulate_caps_lock_led"] = manipulate_caps_lock_led_;
j["treat_as_built_in_keyboard"] = treat_as_built_in_keyboard_;
j["disable_built_in_keyboard_if_exists"] = disable_built_in_keyboard_if_exists_;

#define OPTIONAL_SETTING(name) \
{ \
Expand Down
11 changes: 2 additions & 9 deletions tests/src/core_configuration/json/to_json_example.json
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,6 @@
},
"devices": [
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [
{
"from": {
Expand Down Expand Up @@ -136,7 +135,6 @@
"vendor_id": 1133
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [
{
"from": {
Expand All @@ -162,12 +160,9 @@
"vendor_id": 1452
},
"ignore": true,
"manipulate_caps_lock_led": true,
"simple_modifications": [],
"treat_as_built_in_keyboard": false
"simple_modifications": []
},
{
"disable_built_in_keyboard_if_exists": false,
"fn_function_keys": [
{
"from": {
Expand Down Expand Up @@ -198,7 +193,6 @@
"vendor_id": 1234
},
"ignore": false,
"manipulate_caps_lock_led": true,
"simple_modifications": [
{
"from": {
Expand All @@ -210,8 +204,7 @@
}
]
}
],
"treat_as_built_in_keyboard": false
]
}
],
"fn_function_keys": [
Expand Down
Loading

0 comments on commit 6004d1c

Please sign in to comment.