update:确保pc端总是发送4个参数

This commit is contained in:
Barry 2019-01-26 20:04:51 +08:00
parent b29c4fae6e
commit 7c4d192d1a
3 changed files with 10 additions and 16 deletions

View file

@ -146,11 +146,12 @@ bool Server::execute()
args << QString::number(m_maxSize);
args << QString::number(m_bitRate);
args << (m_tunnelForward ? "true" : "false");
if (!m_crop.isEmpty()) {
args << m_crop;
if (m_crop.isEmpty()) {
args << "-";
}
// adb -s P7C0218510000537 shell CLASSPATH=/data/local/tmp/scrcpy-server.jar app_process / com.genymobile.scrcpy.Server 0 8000000 false
// mark: crop input format: "width:height:x:y" or - for no crop, for example: "100:200:0:0"
// 这条adb命令是阻塞运行的m_serverProcess进程不会退出了
m_serverProcess.execute(m_serial, args);
return true;

View file

@ -98,7 +98,8 @@ VideoForm::VideoForm(const QString& serial, quint16 maxSize, quint32 bitRate,QWi
// support wireless connect, example:
//m_server->start("192.168.0.174:5555", 27183, m_maxSize, m_bitRate, "");
// only one devices, serial can be null
m_server->start(m_serial, 27183, m_maxSize, m_bitRate, "");
// mark: crop input format: "width:height:x:y" or - for no crop, for example: "100:200:0:0"
m_server->start(m_serial, 27183, m_maxSize, m_bitRate, "-");
});
updateShowSize(size());

View file

@ -45,29 +45,21 @@ public final class Server {
@SuppressWarnings("checkstyle:MagicNumber")
private static Options createOptions(String... args) {
if (args.length != 4)
throw new IllegalArgumentException("Expecting 4 parameters");
Options options = new Options();
if (args.length < 1) {
return options;
}
int maxSize = Integer.parseInt(args[0]) & ~7; // multiple of 8
options.setMaxSize(maxSize);
if (args.length < 2) {
return options;
}
int bitRate = Integer.parseInt(args[1]);
options.setBitRate(bitRate);
if (args.length < 3) {
return options;
}
// use "adb forward" instead of "adb tunnel"? (so the server must listen)
boolean tunnelForward = Boolean.parseBoolean(args[2]);
options.setTunnelForward(tunnelForward);
if (args.length < 4) {
return options;
}
Rect crop = parseCrop(args[3]);
options.setCrop(crop);
@ -75,7 +67,7 @@ public final class Server {
}
private static Rect parseCrop(String crop) {
if (crop.isEmpty()) {
if ("-".equals(crop)) {
return null;
}
// input format: "width:height:x:y"