mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2025-07-03 00:06:06 +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);
|
LiSendKeyboardEvent(code, ev->value?KEY_ACTION_DOWN:KEY_ACTION_UP, dev->modifiers);
|
||||||
} else {
|
} else {
|
||||||
int mouseCode = 0;
|
int mouseCode = 0;
|
||||||
short gamepadCode = 0;
|
int gamepadCode = 0;
|
||||||
int index = dev->key_map[ev->code];
|
int index = dev->key_map[ev->code];
|
||||||
|
|
||||||
switch (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;
|
gamepadCode = BACK_FLAG;
|
||||||
else if (index == dev->map->btn_guide)
|
else if (index == dev->map->btn_guide)
|
||||||
gamepadCode = SPECIAL_FLAG;
|
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) {
|
if (mouseCode != 0) {
|
||||||
|
@ -94,6 +94,18 @@ struct mapping* mapping_parse(char* mapping) {
|
|||||||
map->btn_lefttrigger = int_value;
|
map->btn_lefttrigger = int_value;
|
||||||
else if (strcmp("righttrigger", key) == 0)
|
else if (strcmp("righttrigger", key) == 0)
|
||||||
map->btn_righttrigger = int_value;
|
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) {
|
} else if (sscanf(value, "a%d%c", &int_value, &flag) >= 1) {
|
||||||
if (strcmp("leftx", key) == 0) {
|
if (strcmp("leftx", key) == 0) {
|
||||||
map->abs_leftx = int_value;
|
map->abs_leftx = int_value;
|
||||||
@ -213,5 +225,11 @@ void mapping_print(struct mapping* map) {
|
|||||||
print_abs("righttrigger", map->abs_righttrigger);
|
print_abs("righttrigger", map->abs_righttrigger);
|
||||||
print_btn("lefttrigger", map->btn_lefttrigger);
|
print_btn("lefttrigger", map->btn_lefttrigger);
|
||||||
print_btn("righttrigger", map->btn_righttrigger);
|
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");
|
printf("platform:Linux\n");
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,9 @@ struct mapping {
|
|||||||
short btn_back, btn_start, btn_guide;
|
short btn_back, btn_start, btn_guide;
|
||||||
short btn_leftstick, btn_rightstick;
|
short btn_leftstick, btn_rightstick;
|
||||||
short btn_leftshoulder, btn_rightshoulder;
|
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 abs_lefttrigger, abs_righttrigger;
|
||||||
short btn_lefttrigger, btn_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:
|
case SDL_CONTROLLER_BUTTON_RIGHTSHOULDER:
|
||||||
button = RB_FLAG;
|
button = RB_FLAG;
|
||||||
break;
|
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:
|
default:
|
||||||
return SDL_NOTHING;
|
return SDL_NOTHING;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user