Disable server controller if --no-control
If --no-control is disabled, there is no need for a controller. It also avoids to power on the device on start if control is disabled.
This commit is contained in:
parent
ca767ba364
commit
acc4dcd520
5 changed files with 22 additions and 5 deletions
|
@ -277,6 +277,7 @@ scrcpy(const struct scrcpy_options *options) {
|
|||
.max_size = options->max_size,
|
||||
.bit_rate = options->bit_rate,
|
||||
.send_frame_meta = record,
|
||||
.control = options->control,
|
||||
};
|
||||
if (!server_start(&server, options->serial, ¶ms)) {
|
||||
return false;
|
||||
|
|
|
@ -95,6 +95,7 @@ execute_server(struct server *server, const struct server_params *params) {
|
|||
server->tunnel_forward ? "true" : "false",
|
||||
params->crop ? params->crop : "-",
|
||||
params->send_frame_meta ? "true" : "false",
|
||||
params->control ? "true" : "false",
|
||||
};
|
||||
return adb_execute(server->serial, cmd, sizeof(cmd) / sizeof(cmd[0]));
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ struct server_params {
|
|||
uint16_t max_size;
|
||||
uint32_t bit_rate;
|
||||
bool send_frame_meta;
|
||||
bool control;
|
||||
};
|
||||
|
||||
// init default values
|
||||
|
|
|
@ -8,6 +8,7 @@ public class Options {
|
|||
private boolean tunnelForward;
|
||||
private Rect crop;
|
||||
private boolean sendFrameMeta; // send PTS so that the client may record properly
|
||||
private boolean control;
|
||||
|
||||
public int getMaxSize() {
|
||||
return maxSize;
|
||||
|
@ -48,4 +49,12 @@ public class Options {
|
|||
public void setSendFrameMeta(boolean sendFrameMeta) {
|
||||
this.sendFrameMeta = sendFrameMeta;
|
||||
}
|
||||
|
||||
public boolean getControl() {
|
||||
return control;
|
||||
}
|
||||
|
||||
public void setControl(boolean control) {
|
||||
this.control = control;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,11 +19,13 @@ public final class Server {
|
|||
try (DesktopConnection connection = DesktopConnection.open(device, tunnelForward)) {
|
||||
ScreenEncoder screenEncoder = new ScreenEncoder(options.getSendFrameMeta(), options.getBitRate());
|
||||
|
||||
if (options.getControl()) {
|
||||
Controller controller = new Controller(device, connection);
|
||||
|
||||
// asynchronous
|
||||
startController(controller);
|
||||
startDeviceMessageSender(controller.getSender());
|
||||
}
|
||||
|
||||
try {
|
||||
// synchronous
|
||||
|
@ -65,7 +67,7 @@ public final class Server {
|
|||
|
||||
@SuppressWarnings("checkstyle:MagicNumber")
|
||||
private static Options createOptions(String... args) {
|
||||
if (args.length != 5) {
|
||||
if (args.length != 6) {
|
||||
throw new IllegalArgumentException("Expecting 5 parameters");
|
||||
}
|
||||
|
||||
|
@ -87,6 +89,9 @@ public final class Server {
|
|||
boolean sendFrameMeta = Boolean.parseBoolean(args[4]);
|
||||
options.setSendFrameMeta(sendFrameMeta);
|
||||
|
||||
boolean control = Boolean.parseBoolean(args[5]);
|
||||
options.setControl(control);
|
||||
|
||||
return options;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue