mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2025-07-01 23:35:47 +00:00
Add support for extended Sunshine button flags
This commit is contained in:
parent
c158833258
commit
0deeb94655
@ -346,7 +346,7 @@ static bool evdev_handle_event(struct input_event *ev, struct input_device *dev)
|
||||
LiSendKeyboardEvent(code, ev->value?KEY_ACTION_DOWN:KEY_ACTION_UP, dev->modifiers);
|
||||
} else {
|
||||
int mouseCode = 0;
|
||||
short gamepadCode = 0;
|
||||
int gamepadCode = 0;
|
||||
int index = dev->key_map[ev->code];
|
||||
|
||||
switch (ev->code) {
|
||||
@ -420,6 +420,18 @@ static bool evdev_handle_event(struct input_event *ev, struct input_device *dev)
|
||||
gamepadCode = BACK_FLAG;
|
||||
else if (index == dev->map->btn_guide)
|
||||
gamepadCode = SPECIAL_FLAG;
|
||||
else if (index == dev->map->btn_misc1)
|
||||
gamepadCode = MISC_FLAG;
|
||||
else if (index == dev->map->btn_paddle1)
|
||||
gamepadCode = PADDLE1_FLAG;
|
||||
else if (index == dev->map->btn_paddle2)
|
||||
gamepadCode = PADDLE2_FLAG;
|
||||
else if (index == dev->map->btn_paddle3)
|
||||
gamepadCode = PADDLE3_FLAG;
|
||||
else if (index == dev->map->btn_paddle4)
|
||||
gamepadCode = PADDLE4_FLAG;
|
||||
else if (index == dev->map->btn_touchpad)
|
||||
gamepadCode = TOUCHPAD_FLAG;
|
||||
}
|
||||
|
||||
if (mouseCode != 0) {
|
||||
|
@ -94,6 +94,18 @@ struct mapping* mapping_parse(char* mapping) {
|
||||
map->btn_lefttrigger = int_value;
|
||||
else if (strcmp("righttrigger", key) == 0)
|
||||
map->btn_righttrigger = int_value;
|
||||
else if (strcmp("misc1", key) == 0)
|
||||
map->btn_misc1 = int_value;
|
||||
else if (strcmp("paddle1", key) == 0)
|
||||
map->btn_paddle1 = int_value;
|
||||
else if (strcmp("paddle2", key) == 0)
|
||||
map->btn_paddle2 = int_value;
|
||||
else if (strcmp("paddle3", key) == 0)
|
||||
map->btn_paddle3 = int_value;
|
||||
else if (strcmp("paddle4", key) == 0)
|
||||
map->btn_paddle4 = int_value;
|
||||
else if (strcmp("touchpad", key) == 0)
|
||||
map->btn_touchpad = int_value;
|
||||
} else if (sscanf(value, "a%d%c", &int_value, &flag) >= 1) {
|
||||
if (strcmp("leftx", key) == 0) {
|
||||
map->abs_leftx = int_value;
|
||||
@ -213,5 +225,11 @@ void mapping_print(struct mapping* map) {
|
||||
print_abs("righttrigger", map->abs_righttrigger);
|
||||
print_btn("lefttrigger", map->btn_lefttrigger);
|
||||
print_btn("righttrigger", map->btn_righttrigger);
|
||||
print_btn("misc1", map->btn_misc1);
|
||||
print_btn("paddle1", map->btn_paddle1);
|
||||
print_btn("paddle2", map->btn_paddle2);
|
||||
print_btn("paddle3", map->btn_paddle3);
|
||||
print_btn("paddle4", map->btn_paddle4);
|
||||
print_btn("touchpad", map->btn_touchpad);
|
||||
printf("platform:Linux\n");
|
||||
}
|
||||
|
@ -45,6 +45,9 @@ struct mapping {
|
||||
short btn_back, btn_start, btn_guide;
|
||||
short btn_leftstick, btn_rightstick;
|
||||
short btn_leftshoulder, btn_rightshoulder;
|
||||
short btn_misc1;
|
||||
short btn_paddle1, btn_paddle2, btn_paddle3, btn_paddle4;
|
||||
short btn_touchpad;
|
||||
|
||||
short abs_lefttrigger, abs_righttrigger;
|
||||
short btn_lefttrigger, btn_righttrigger;
|
||||
|
@ -332,6 +332,24 @@ int sdlinput_handle_event(SDL_Window* window, SDL_Event* event) {
|
||||
case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER:
|
||||
button = RB_FLAG;
|
||||
break;
|
||||
case SDL_CONTROLLER_BUTTON_MISC1:
|
||||
button = MISC_FLAG;
|
||||
break;
|
||||
case SDL_CONTROLLER_BUTTON_PADDLE1:
|
||||
button = PADDLE1_FLAG;
|
||||
break;
|
||||
case SDL_CONTROLLER_BUTTON_PADDLE2:
|
||||
button = PADDLE2_FLAG;
|
||||
break;
|
||||
case SDL_CONTROLLER_BUTTON_PADDLE3:
|
||||
button = PADDLE3_FLAG;
|
||||
break;
|
||||
case SDL_CONTROLLER_BUTTON_PADDLE4:
|
||||
button = PADDLE4_FLAG;
|
||||
break;
|
||||
case SDL_CONTROLLER_BUTTON_TOUCHPAD:
|
||||
button = TOUCHPAD_FLAG;
|
||||
break;
|
||||
default:
|
||||
return SDL_NOTHING;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user