Skip to content

Commit

Permalink
Move usage_page check to momentary_switch_event_details
Browse files Browse the repository at this point in the history
  • Loading branch information
tekezo committed Aug 29, 2023
1 parent 1c76793 commit f164989
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 17 deletions.
10 changes: 5 additions & 5 deletions src/share/types/momentary_switch_event.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ class momentary_switch_event final {
public:
static bool target(pqrs::hid::usage_page::value_t usage_page,
pqrs::hid::usage::value_t usage) {
return (usage_page == pqrs::hid::usage_page::keyboard_or_keypad && momentary_switch_event_details::key_code::target(usage)) ||
(usage_page == pqrs::hid::usage_page::consumer && momentary_switch_event_details::consumer_key_code::target(usage)) ||
(usage_page == pqrs::hid::usage_page::apple_vendor_keyboard && momentary_switch_event_details::apple_vendor_keyboard_key_code::target(usage)) ||
(usage_page == pqrs::hid::usage_page::apple_vendor_top_case && momentary_switch_event_details::apple_vendor_top_case_key_code::target(usage)) ||
(usage_page == pqrs::hid::usage_page::button && momentary_switch_event_details::pointing_button::target(usage));
return momentary_switch_event_details::key_code::target(usage_page, usage) ||
momentary_switch_event_details::consumer_key_code::target(usage_page, usage) ||
momentary_switch_event_details::apple_vendor_keyboard_key_code::target(usage_page, usage) ||
momentary_switch_event_details::apple_vendor_top_case_key_code::target(usage_page, usage) ||
momentary_switch_event_details::pointing_button::target(usage_page, usage);
}

momentary_switch_event(void) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,13 @@ constexpr std::pair<const mapbox::eternal::string, const pqrs::hid::usage::value

constexpr auto name_value_map = mapbox::eternal::hash_map<mapbox::eternal::string, pqrs::hid::usage::value_t>(name_value_pairs);

inline bool target(pqrs::hid::usage::value_t usage) {
return impl::find_pair(name_value_pairs, usage) != std::end(name_value_pairs);
inline bool target(pqrs::hid::usage_page::value_t usage_page,
pqrs::hid::usage::value_t usage) {
if (usage_page == pqrs::hid::usage_page::apple_vendor_keyboard) {
return impl::find_pair(name_value_pairs, usage) != std::end(name_value_pairs);
}

return false;
}

inline std::string make_name(pqrs::hid::usage::value_t usage) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,13 @@ constexpr std::pair<const mapbox::eternal::string, const pqrs::hid::usage::value

constexpr auto name_value_map = mapbox::eternal::hash_map<mapbox::eternal::string, pqrs::hid::usage::value_t>(name_value_pairs);

inline bool target(pqrs::hid::usage::value_t usage) {
return impl::find_pair(name_value_pairs, usage) != std::end(name_value_pairs);
inline bool target(pqrs::hid::usage_page::value_t usage_page,
pqrs::hid::usage::value_t usage) {
if (usage_page == pqrs::hid::usage_page::apple_vendor_top_case) {
return impl::find_pair(name_value_pairs, usage) != std::end(name_value_pairs);
}

return false;
}

inline std::string make_name(pqrs::hid::usage::value_t usage) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,13 @@ constexpr std::pair<const mapbox::eternal::string, const pqrs::hid::usage::value

constexpr auto name_value_map = mapbox::eternal::hash_map<mapbox::eternal::string, pqrs::hid::usage::value_t>(name_value_pairs);

inline bool target(pqrs::hid::usage::value_t usage) {
return impl::find_pair(name_value_pairs, usage) != std::end(name_value_pairs);
inline bool target(pqrs::hid::usage_page::value_t usage_page,
pqrs::hid::usage::value_t usage) {
if (usage_page == pqrs::hid::usage_page::consumer) {
return impl::find_pair(name_value_pairs, usage) != std::end(name_value_pairs);
}

return false;
}

inline std::string make_name(pqrs::hid::usage::value_t usage) {
Expand Down
11 changes: 8 additions & 3 deletions src/share/types/momentary_switch_event_details/key_code.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -240,9 +240,14 @@ constexpr std::pair<const mapbox::eternal::string, const pqrs::hid::usage_pair>

constexpr auto other_usage_page_map = mapbox::eternal::hash_map<mapbox::eternal::string, pqrs::hid::usage_pair>(other_usage_page_pairs);

inline bool target(pqrs::hid::usage::value_t usage) {
return pqrs::hid::usage::keyboard_or_keypad::keyboard_a <= usage &&
usage < pqrs::hid::usage::keyboard_or_keypad::reserved;
inline bool target(pqrs::hid::usage_page::value_t usage_page,
pqrs::hid::usage::value_t usage) {
if (usage_page == pqrs::hid::usage_page::keyboard_or_keypad) {
return pqrs::hid::usage::keyboard_or_keypad::keyboard_a <= usage &&
usage < pqrs::hid::usage::keyboard_or_keypad::reserved;
}

return false;
}

inline std::string make_name(pqrs::hid::usage::value_t usage) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,13 @@ constexpr std::pair<const mapbox::eternal::string, const pqrs::hid::usage::value

constexpr auto name_value_map = mapbox::eternal::hash_map<mapbox::eternal::string, pqrs::hid::usage::value_t>(name_value_pairs);

inline bool target(pqrs::hid::usage::value_t usage) {
return true;
inline bool target(pqrs::hid::usage_page::value_t usage_page,
pqrs::hid::usage::value_t usage) {
if (usage_page == pqrs::hid::usage_page::button) {
return true;
}

return false;
}

inline std::string make_name(pqrs::hid::usage::value_t usage) {
Expand Down
16 changes: 15 additions & 1 deletion tests/src/types/src/momentary_switch_event_test.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,11 @@ void run_momentary_switch_event_test(void) {
expect(e.pointing_button() == false);
expect(nlohmann::json(e).get<krbn::momentary_switch_event>() == e);
}
{
// Not target usage
expect(!krbn::momentary_switch_event::target(pqrs::hid::usage_page::keyboard_or_keypad,
pqrs::hid::usage::keyboard_or_keypad::error_undefined));
}

//
// usage_page::consumer
Expand All @@ -53,6 +58,11 @@ void run_momentary_switch_event_test(void) {
expect(e.pointing_button() == false);
expect(nlohmann::json(e).get<krbn::momentary_switch_event>() == e);
}
{
// Not target usage
expect(!krbn::momentary_switch_event::target(pqrs::hid::usage_page::consumer,
pqrs::hid::usage::consumer::consumer_control));
}

//
// usage_page::apple_vendor_keyboard
Expand All @@ -78,7 +88,6 @@ void run_momentary_switch_event_test(void) {
}
{
// Not target usage

expect(!krbn::momentary_switch_event::target(pqrs::hid::usage_page::apple_vendor_keyboard,
pqrs::hid::usage::apple_vendor_keyboard::caps_lock_delay_enable));
}
Expand All @@ -105,6 +114,11 @@ void run_momentary_switch_event_test(void) {
expect(e.pointing_button() == false);
expect(nlohmann::json(e).get<krbn::momentary_switch_event>() == e);
}
{
// Not target usage
expect(!krbn::momentary_switch_event::target(pqrs::hid::usage_page::apple_vendor_top_case,
pqrs::hid::usage::apple_vendor_top_case::clamshell_latched));
}

//
// usage_page::button
Expand Down

0 comments on commit f164989

Please sign in to comment.