mirror of
https://github.com/Genymobile/scrcpy.git
synced 2025-04-22 04:25:01 +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
|
||||
return 1;
|
||||
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;
|
||||
buffer_write16be(&buf[4], msg->inject_game_controller_axis.value);
|
||||
sc_write16be(&buf[4], msg->inject_game_controller_axis.value);
|
||||
return 6;
|
||||
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[4] = msg->inject_game_controller_button.state;
|
||||
return 5;
|
||||
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;
|
||||
return 4;
|
||||
default:
|
||||
|
|
|
@ -62,7 +62,7 @@ sc_input_manager_init(struct sc_input_manager *im,
|
|||
im->kp = params->kp;
|
||||
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->legacy_paste = params->legacy_paste;
|
||||
im->clipboard_autosync = params->clipboard_autosync;
|
||||
|
@ -799,29 +799,29 @@ sc_input_manager_process_file(struct sc_input_manager *im,
|
|||
}
|
||||
|
||||
void
|
||||
input_manager_process_controller_axis(struct input_manager *im,
|
||||
input_manager_process_controller_axis(struct sc_input_manager *im,
|
||||
const SDL_ControllerAxisEvent *event) {
|
||||
struct control_msg msg;
|
||||
msg.type = CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_AXIS;
|
||||
struct sc_control_msg msg;
|
||||
msg.type = SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_AXIS;
|
||||
msg.inject_game_controller_axis.id = event->which;
|
||||
msg.inject_game_controller_axis.axis = event->axis;
|
||||
msg.inject_game_controller_axis.value = event->value;
|
||||
controller_push_msg(im->controller, &msg);
|
||||
sc_controller_push_msg(im->controller, &msg);
|
||||
}
|
||||
|
||||
void
|
||||
input_manager_process_controller_button(struct input_manager *im,
|
||||
input_manager_process_controller_button(struct sc_input_manager *im,
|
||||
const SDL_ControllerButtonEvent *event) {
|
||||
struct control_msg msg;
|
||||
msg.type = CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_BUTTON;
|
||||
struct sc_control_msg msg;
|
||||
msg.type = SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_BUTTON;
|
||||
msg.inject_game_controller_button.id = event->which;
|
||||
msg.inject_game_controller_button.button = event->button;
|
||||
msg.inject_game_controller_button.state = event->state;
|
||||
controller_push_msg(im->controller, &msg);
|
||||
sc_controller_push_msg(im->controller, &msg);
|
||||
}
|
||||
|
||||
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) {
|
||||
if (!im->game_controllers[i]) {
|
||||
return &im->game_controllers[i];
|
||||
|
@ -831,8 +831,21 @@ find_free_game_controller_slot(struct input_manager *im) {
|
|||
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
|
||||
input_manager_process_controller_device(struct input_manager *im,
|
||||
input_manager_process_controller_device(struct sc_input_manager *im,
|
||||
const SDL_ControllerDeviceEvent *event) {
|
||||
SDL_JoystickID id;
|
||||
|
||||
|
@ -882,12 +895,12 @@ input_manager_process_controller_device(struct input_manager *im,
|
|||
return;
|
||||
}
|
||||
|
||||
struct control_msg msg;
|
||||
struct sc_control_msg msg;
|
||||
msg.type = SC_CONTROL_MSG_TYPE_INJECT_GAME_CONTROLLER_DEVICE;
|
||||
msg.inject_game_controller_device.id = id;
|
||||
msg.inject_game_controller_device.event = event->type;
|
||||
msg.inject_game_controller_device.event -= SDL_CONTROLLERDEVICEADDED;
|
||||
controller_push_msg(im->controller, &msg);
|
||||
sc_controller_push_msg(im->controller, &msg);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -937,6 +950,7 @@ sc_input_manager_handle_event(struct sc_input_manager *im, SDL_Event *event) {
|
|||
break;
|
||||
}
|
||||
sc_input_manager_process_file(im, &event->drop);
|
||||
break;
|
||||
}
|
||||
case SDL_CONTROLLERAXISMOTION:
|
||||
if (!control || !im->forward_game_controllers) {
|
||||
|
|
|
@ -54,6 +54,7 @@ struct sc_input_manager_params {
|
|||
struct sc_key_processor *kp;
|
||||
struct sc_mouse_processor *mp;
|
||||
|
||||
bool forward_game_controllers;
|
||||
bool forward_all_clicks;
|
||||
bool legacy_paste;
|
||||
bool clipboard_autosync;
|
||||
|
|
|
@ -367,8 +367,8 @@ scrcpy(struct scrcpy_options *options) {
|
|||
|
||||
sdl_configure(options->display, options->disable_screensaver);
|
||||
|
||||
if (SDL_Init(SDL_INIT_GAMECONTROLLER)) {
|
||||
LOGC("Could not initialize SDL: %s", SDL_GetError());
|
||||
if (SDL_InitSubSystem(SDL_INIT_GAMECONTROLLER)) {
|
||||
LOGE("Could not initialize SDL: %s", SDL_GetError());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -602,6 +602,7 @@ aoa_hid_end:
|
|||
.fp = fp,
|
||||
.kp = kp,
|
||||
.mp = mp,
|
||||
.forward_game_controllers = options->forward_game_controllers,
|
||||
.forward_all_clicks = options->forward_all_clicks,
|
||||
.legacy_paste = options->legacy_paste,
|
||||
.clipboard_autosync = options->clipboard_autosync,
|
||||
|
|
|
@ -525,6 +525,7 @@ sc_screen_init(struct sc_screen *screen,
|
|||
.screen = screen,
|
||||
.kp = params->kp,
|
||||
.mp = params->mp,
|
||||
.forward_game_controllers = params->forward_game_controllers,
|
||||
.forward_all_clicks = params->forward_all_clicks,
|
||||
.legacy_paste = params->legacy_paste,
|
||||
.clipboard_autosync = params->clipboard_autosync,
|
||||
|
|
|
@ -74,6 +74,7 @@ struct sc_screen_params {
|
|||
struct sc_key_processor *kp;
|
||||
struct sc_mouse_processor *mp;
|
||||
|
||||
bool forward_game_controllers;
|
||||
bool forward_all_clicks;
|
||||
bool legacy_paste;
|
||||
bool clipboard_autosync;
|
||||
|
|
Loading…
Add table
Reference in a new issue