mirror of
https://github.com/Genymobile/scrcpy.git
synced 2025-08-02 22:29:25 +00:00
Fix issues in rebase
This commit is contained in:
parent
ae83fe3214
commit
8df26fef2b
6 changed files with 37 additions and 19 deletions
|
@ -153,17 +153,17 @@ sc_control_msg_serialize(const struct sc_control_msg *msg, unsigned char *buf) {
|
||||||
// no additional data
|
// no additional data
|
||||||
return 1;
|
return 1;
|
||||||
case SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_AXIS:
|
case SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_AXIS:
|
||||||
buffer_write16be(&buf[1], msg->inject_game_controller_axis.id);
|
sc_write16be(&buf[1], msg->inject_game_controller_axis.id);
|
||||||
buf[3] = msg->inject_game_controller_axis.axis;
|
buf[3] = msg->inject_game_controller_axis.axis;
|
||||||
buffer_write16be(&buf[4], msg->inject_game_controller_axis.value);
|
sc_write16be(&buf[4], msg->inject_game_controller_axis.value);
|
||||||
return 6;
|
return 6;
|
||||||
case SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_BUTTON:
|
case SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_BUTTON:
|
||||||
buffer_write16be(&buf[1], msg->inject_game_controller_button.id);
|
sc_write16be(&buf[1], msg->inject_game_controller_button.id);
|
||||||
buf[3] = msg->inject_game_controller_button.button;
|
buf[3] = msg->inject_game_controller_button.button;
|
||||||
buf[4] = msg->inject_game_controller_button.state;
|
buf[4] = msg->inject_game_controller_button.state;
|
||||||
return 5;
|
return 5;
|
||||||
case SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_DEVICE:
|
case SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_DEVICE:
|
||||||
buffer_write16be(&buf[1], msg->inject_game_controller_device.id);
|
sc_write16be(&buf[1], msg->inject_game_controller_device.id);
|
||||||
buf[3] = msg->inject_game_controller_device.event;
|
buf[3] = msg->inject_game_controller_device.event;
|
||||||
return 4;
|
return 4;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -62,7 +62,7 @@ sc_input_manager_init(struct sc_input_manager *im,
|
||||||
im->kp = params->kp;
|
im->kp = params->kp;
|
||||||
im->mp = params->mp;
|
im->mp = params->mp;
|
||||||
|
|
||||||
im->forward_game_controllers = options->forward_game_controllers;
|
im->forward_game_controllers = params->forward_game_controllers;
|
||||||
im->forward_all_clicks = params->forward_all_clicks;
|
im->forward_all_clicks = params->forward_all_clicks;
|
||||||
im->legacy_paste = params->legacy_paste;
|
im->legacy_paste = params->legacy_paste;
|
||||||
im->clipboard_autosync = params->clipboard_autosync;
|
im->clipboard_autosync = params->clipboard_autosync;
|
||||||
|
@ -799,29 +799,29 @@ sc_input_manager_process_file(struct sc_input_manager *im,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
input_manager_process_controller_axis(struct input_manager *im,
|
input_manager_process_controller_axis(struct sc_input_manager *im,
|
||||||
const SDL_ControllerAxisEvent *event) {
|
const SDL_ControllerAxisEvent *event) {
|
||||||
struct control_msg msg;
|
struct sc_control_msg msg;
|
||||||
msg.type = CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_AXIS;
|
msg.type = SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_AXIS;
|
||||||
msg.inject_game_controller_axis.id = event->which;
|
msg.inject_game_controller_axis.id = event->which;
|
||||||
msg.inject_game_controller_axis.axis = event->axis;
|
msg.inject_game_controller_axis.axis = event->axis;
|
||||||
msg.inject_game_controller_axis.value = event->value;
|
msg.inject_game_controller_axis.value = event->value;
|
||||||
controller_push_msg(im->controller, &msg);
|
sc_controller_push_msg(im->controller, &msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
input_manager_process_controller_button(struct input_manager *im,
|
input_manager_process_controller_button(struct sc_input_manager *im,
|
||||||
const SDL_ControllerButtonEvent *event) {
|
const SDL_ControllerButtonEvent *event) {
|
||||||
struct control_msg msg;
|
struct sc_control_msg msg;
|
||||||
msg.type = CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_BUTTON;
|
msg.type = SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_BUTTON;
|
||||||
msg.inject_game_controller_button.id = event->which;
|
msg.inject_game_controller_button.id = event->which;
|
||||||
msg.inject_game_controller_button.button = event->button;
|
msg.inject_game_controller_button.button = event->button;
|
||||||
msg.inject_game_controller_button.state = event->state;
|
msg.inject_game_controller_button.state = event->state;
|
||||||
controller_push_msg(im->controller, &msg);
|
sc_controller_push_msg(im->controller, &msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
static SDL_GameController **
|
static SDL_GameController **
|
||||||
find_free_game_controller_slot(struct input_manager *im) {
|
find_free_game_controller_slot(struct sc_input_manager *im) {
|
||||||
for (unsigned i = 0; i < MAX_GAME_CONTROLLERS; ++i) {
|
for (unsigned i = 0; i < MAX_GAME_CONTROLLERS; ++i) {
|
||||||
if (!im->game_controllers[i]) {
|
if (!im->game_controllers[i]) {
|
||||||
return &im->game_controllers[i];
|
return &im->game_controllers[i];
|
||||||
|
@ -831,8 +831,21 @@ find_free_game_controller_slot(struct input_manager *im) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
free_game_controller_slot(struct sc_input_manager *im,
|
||||||
|
SDL_GameController *game_controller) {
|
||||||
|
for (unsigned i = 0; i < MAX_GAME_CONTROLLERS; ++i) {
|
||||||
|
if (im->game_controllers[i] == game_controller) {
|
||||||
|
im->game_controllers[i] = NULL;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
input_manager_process_controller_device(struct input_manager *im,
|
input_manager_process_controller_device(struct sc_input_manager *im,
|
||||||
const SDL_ControllerDeviceEvent *event) {
|
const SDL_ControllerDeviceEvent *event) {
|
||||||
SDL_JoystickID id;
|
SDL_JoystickID id;
|
||||||
|
|
||||||
|
@ -882,12 +895,12 @@ input_manager_process_controller_device(struct input_manager *im,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct control_msg msg;
|
struct sc_control_msg msg;
|
||||||
msg.type = SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_DEVICE;
|
msg.type = SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_DEVICE;
|
||||||
msg.inject_game_controller_device.id = id;
|
msg.inject_game_controller_device.id = id;
|
||||||
msg.inject_game_controller_device.event = event->type;
|
msg.inject_game_controller_device.event = event->type;
|
||||||
msg.inject_game_controller_device.event -= SDL_CONTROLLERDEVICEADDED;
|
msg.inject_game_controller_device.event -= SDL_CONTROLLERDEVICEADDED;
|
||||||
controller_push_msg(im->controller, &msg);
|
sc_controller_push_msg(im->controller, &msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -937,6 +950,7 @@ sc_input_manager_handle_event(struct sc_input_manager *im, SDL_Event *event) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sc_input_manager_process_file(im, &event->drop);
|
sc_input_manager_process_file(im, &event->drop);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
case SDL_CONTROLLERAXISMOTION:
|
case SDL_CONTROLLERAXISMOTION:
|
||||||
if (!control || !im->forward_game_controllers) {
|
if (!control || !im->forward_game_controllers) {
|
||||||
|
|
|
@ -54,6 +54,7 @@ struct sc_input_manager_params {
|
||||||
struct sc_key_processor *kp;
|
struct sc_key_processor *kp;
|
||||||
struct sc_mouse_processor *mp;
|
struct sc_mouse_processor *mp;
|
||||||
|
|
||||||
|
bool forward_game_controllers;
|
||||||
bool forward_all_clicks;
|
bool forward_all_clicks;
|
||||||
bool legacy_paste;
|
bool legacy_paste;
|
||||||
bool clipboard_autosync;
|
bool clipboard_autosync;
|
||||||
|
|
|
@ -367,8 +367,8 @@ scrcpy(struct scrcpy_options *options) {
|
||||||
|
|
||||||
sdl_configure(options->display, options->disable_screensaver);
|
sdl_configure(options->display, options->disable_screensaver);
|
||||||
|
|
||||||
if (SDL_Init(SDL_INIT_GAMECONTROLLER)) {
|
if (SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER)) {
|
||||||
LOGC("Could not initialize SDL: %s", SDL_GetError());
|
LOGE("Could not initialize SDL: %s", SDL_GetError());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -602,6 +602,7 @@ aoa_hid_end:
|
||||||
.fp = fp,
|
.fp = fp,
|
||||||
.kp = kp,
|
.kp = kp,
|
||||||
.mp = mp,
|
.mp = mp,
|
||||||
|
.forward_game_controllers = options->forward_game_controllers,
|
||||||
.forward_all_clicks = options->forward_all_clicks,
|
.forward_all_clicks = options->forward_all_clicks,
|
||||||
.legacy_paste = options->legacy_paste,
|
.legacy_paste = options->legacy_paste,
|
||||||
.clipboard_autosync = options->clipboard_autosync,
|
.clipboard_autosync = options->clipboard_autosync,
|
||||||
|
|
|
@ -525,6 +525,7 @@ sc_screen_init(struct sc_screen *screen,
|
||||||
.screen = screen,
|
.screen = screen,
|
||||||
.kp = params->kp,
|
.kp = params->kp,
|
||||||
.mp = params->mp,
|
.mp = params->mp,
|
||||||
|
.forward_game_controllers = params->forward_game_controllers,
|
||||||
.forward_all_clicks = params->forward_all_clicks,
|
.forward_all_clicks = params->forward_all_clicks,
|
||||||
.legacy_paste = params->legacy_paste,
|
.legacy_paste = params->legacy_paste,
|
||||||
.clipboard_autosync = params->clipboard_autosync,
|
.clipboard_autosync = params->clipboard_autosync,
|
||||||
|
|
|
@ -74,6 +74,7 @@ struct sc_screen_params {
|
||||||
struct sc_key_processor *kp;
|
struct sc_key_processor *kp;
|
||||||
struct sc_mouse_processor *mp;
|
struct sc_mouse_processor *mp;
|
||||||
|
|
||||||
|
bool forward_game_controllers;
|
||||||
bool forward_all_clicks;
|
bool forward_all_clicks;
|
||||||
bool legacy_paste;
|
bool legacy_paste;
|
||||||
bool clipboard_autosync;
|
bool clipboard_autosync;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue