Skip to content

Commit

Permalink
Initialize controller even if there is no display
Browse files Browse the repository at this point in the history
The options --no-display and --no-control are independent.

The controller was not initialized when no display was requested,
because it was assumed that no control could occur without display. But
that's not true (anymore): for example, it is possible to pass
--turn-screen-off.

Fixes #2426 <#2426>
  • Loading branch information
rom1v committed Jun 25, 2021
1 parent ab12b6c commit 7dca507
Showing 1 changed file with 19 additions and 19 deletions.
38 changes: 19 additions & 19 deletions app/src/scrcpy.c
Original file line number Diff line number Diff line change
Expand Up @@ -343,19 +343,29 @@ scrcpy(const struct scrcpy_options *options) {
stream_add_sink(&s->stream, &rec->packet_sink);
}

if (options->display) {
if (options->control) {
if (!controller_init(&s->controller, s->server.control_socket)) {
goto end;
}
controller_initialized = true;
if (options->control) {
if (!controller_init(&s->controller, s->server.control_socket)) {
goto end;
}
controller_initialized = true;

if (!controller_start(&s->controller)) {
goto end;
}
controller_started = true;

if (!controller_start(&s->controller)) {
goto end;
if (options->turn_screen_off) {
struct control_msg msg;
msg.type = CONTROL_MSG_TYPE_SET_SCREEN_POWER_MODE;
msg.set_screen_power_mode.mode = SCREEN_POWER_MODE_OFF;

if (!controller_push_msg(&s->controller, &msg)) {
LOGW("Could not request 'set screen power mode'");
}
controller_started = true;
}
}

if (options->display) {
const char *window_title =
options->window_title ? options->window_title : device_name;

Expand All @@ -379,16 +389,6 @@ scrcpy(const struct scrcpy_options *options) {
screen_initialized = true;

decoder_add_sink(&s->decoder, &s->screen.frame_sink);

if (options->turn_screen_off) {
struct control_msg msg;
msg.type = CONTROL_MSG_TYPE_SET_SCREEN_POWER_MODE;
msg.set_screen_power_mode.mode = SCREEN_POWER_MODE_OFF;

if (!controller_push_msg(&s->controller, &msg)) {
LOGW("Could not request 'set screen power mode'");
}
}
}

#ifdef HAVE_V4L2
Expand Down

0 comments on commit 7dca507

Please sign in to comment.