Skip to content

Commit

Permalink
Initialize input manager dynamically
Browse files Browse the repository at this point in the history
The input manager was partially initialized statically, but a call to
input_manager_init() was needed anyway, so initialize all the fields
from the "constructor".

This is consistent with the initialization of the other structs.
  • Loading branch information
rom1v committed May 17, 2021
1 parent dcee7c0 commit 6a2cd08
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 19 deletions.
10 changes: 7 additions & 3 deletions app/src/input_manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,13 @@ is_shortcut_mod(struct input_manager *im, uint16_t sdl_mod) {
}

void
input_manager_init(struct input_manager *im,
const struct scrcpy_options *options)
{
input_manager_init(struct input_manager *im, struct controller *controller,
struct screen *screen,
const struct scrcpy_options *options) {
im->controller = controller;
im->screen = screen;
im->repeat = 0;

im->control = options->control;
im->forward_key_repeat = options->forward_key_repeat;
im->prefer_text = options->prefer_text;
Expand Down
4 changes: 2 additions & 2 deletions app/src/input_manager.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ struct input_manager {
};

void
input_manager_init(struct input_manager *im,
const struct scrcpy_options *options);
input_manager_init(struct input_manager *im, struct controller *controller,
struct screen *screen, const struct scrcpy_options *options);

bool
input_manager_handle_event(struct input_manager *im, SDL_Event *event);
Expand Down
16 changes: 2 additions & 14 deletions app/src/scrcpy.c
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,7 @@ static struct sc_v4l2_sink v4l2_sink;
#endif
static struct controller controller;
static struct file_handler file_handler;

static struct input_manager input_manager = {
.controller = &controller,
.screen = &screen,
.repeat = 0,

// initialized later
.prefer_text = false,
.sdl_shortcut_mods = {
.data = {0},
.count = 0,
},
};
static struct input_manager input_manager;

#ifdef _WIN32
BOOL WINAPI windows_ctrl_handler(DWORD ctrl_type) {
Expand Down Expand Up @@ -422,7 +410,7 @@ scrcpy(const struct scrcpy_options *options) {
}
stream_started = true;

input_manager_init(&input_manager, options);
input_manager_init(&input_manager, &controller, &screen, options);

ret = event_loop(options);
LOGD("quit...");
Expand Down

0 comments on commit 6a2cd08

Please sign in to comment.