Initialize controller even if there is no display
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 <https://github.com/Genymobile/scrcpy/issues/2426>
This commit is contained in:
parent
ab12b6c981
commit
7dca5078e7
1 changed files with 21 additions and 21 deletions
|
@ -343,7 +343,6 @@ 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;
|
||||
|
@ -354,8 +353,19 @@ scrcpy(const struct scrcpy_options *options) {
|
|||
goto end;
|
||||
}
|
||||
controller_started = true;
|
||||
|
||||
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'");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (options->display) {
|
||||
const char *window_title =
|
||||
options->window_title ? options->window_title : device_name;
|
||||
|
||||
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue