Yu-Chen Lin
daa06abd34
Fix comment in control message serialization
...
Refs 245999aec4
Signed-off-by: Yu-Chen Lin <npes87184@gmail.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-12-04 09:18:43 +01:00
Romain Vimont
94702a4309
Fix memset() size in tests
...
The memset() size was 1 byte too long. It was harmless because the last
'a' was overwritten by '\0`.
2021-12-04 09:12:20 +01:00
Romain Vimont
65fbec9643
Mention SCRCPY_ICON_PATH env var in manpage
2021-12-03 21:47:31 +01:00
Romain Vimont
a208400133
Remove useless intermediate variable
...
Now that PLATFORM is correctly used in the if-condition,
PLATFORM_VERSION is useless.
PR #2850 <https://github.com/Genymobile/scrcpy/pull/2850 >
2021-12-03 21:47:00 +01:00
yangfl
ab00210b37
Fix script to build without gradle
...
The PLATFORM variable is assigned either from $ANDROID_PLATFORM or gets
a default value (currently $PLATFORM_VERSION).
The check to use either dx (SDK < 31) or d8 (SDK >= 31) must be based on
the actual $PLATFORM, not the default $PLATFORM_VERSION.
Refs 52138fd921
Refs <57d30780dd/debian/patches/0002-Workaround-broken-script.patch
>
PR #2850 <https://github.com/Genymobile/scrcpy/pull/2850 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-12-03 21:46:49 +01:00
Archisman Panigrahi
5704ec6967
AUR to official Arch Repository
...
PR #2844 <https://github.com/Genymobile/scrcpy/pull/2844 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-12-02 08:48:47 +01:00
Romain Vimont
64a04b8d4a
Fix process execution on Windows 7
...
According to this bug report on Firefox:
<https://bugzilla.mozilla.org/show_bug.cgi?id=1460995 >
> CreateProcess fails with ERROR_NO_SYSTEM_RESOURCES on Windows 7. It
> looks like the reason why is because PROC_THREAD_ATTRIBUTE_HANDLE_LIST
> doesn't like console handles.
To avoid the problem, do not pass console handles to
PROC_THREAD_ATTRIBUTE_HANDLE_LIST.
Refs #2783 <https://github.com/Genymobile/scrcpy/pull/2783 >
Refs f801d8b312
Fixes #2838 <https://github.com/Genymobile/scrcpy/issues/2838 >
PR #2840 <https://github.com/Genymobile/scrcpy/pull/2840 >
2021-12-01 18:02:35 +01:00
Romain Vimont
86c91e183d
Log CreateProcessW() error code on Windows
...
Refs #2838 <https://github.com/Genymobile/scrcpy/issues/2838 >
2021-11-30 09:41:47 +01:00
Romain Vimont
cb8713eb1f
Update links to v1.21
2021-11-29 22:24:06 +01:00
Romain Vimont
003e738106
Bump version to 1.21
2021-11-29 22:15:28 +01:00
Romain Vimont
30c79f2d25
Merge branch 'master' into dev
2021-11-29 22:08:43 +01:00
Romain Vimont
b25b674c45
Clarify TCP/IP mode in README
2021-11-29 22:03:58 +01:00
Romain Vimont
e2b3968c66
Always synchronize clipboard on explicit COPY/CUT
...
If --no-clipboard-autosync is enabled, the automatic clipboard
synchronization performed whenever the device clipboard changes is
disabled.
But on explicit COPY and CUT scrcpy shortcuts (MOD+c and MOD+x), the
clipboard should still be synchronized, so that it remains possible to
copy-paste from the device to the computer.
This is consistent with the behavior of MOD+v, which pastes the computer
clipboard to the device.
Refs #2228 <https://github.com/Genymobile/scrcpy/issues/2228 >
Refs #2817 <https://github.com/Genymobile/scrcpy/pull/2817 >
PR #2834 <https://github.com/Genymobile/scrcpy/pull/2834 >
2021-11-29 22:00:55 +01:00
Romain Vimont
bfcb9d06c3
Expose sync mode for injecting events
...
Expose the inject input event mode so that it is possible to wait for
the events to be "finished". This will be necessary to read the
clipboard content only after the COPY or CUT key event is handled.
PR #2834 <https://github.com/Genymobile/scrcpy/pull/2834 >
2021-11-29 22:00:21 +01:00
Romain Vimont
dc19ae334d
Move acknowledgment handling
...
Handle all actions related to SET_CLIPBOARD from the dedicated method.
PR #2834 <https://github.com/Genymobile/scrcpy/pull/2834 >
2021-11-29 21:58:30 +01:00
Romain Vimont
cbe73b0bc3
Fix set_clipboard message log
...
If paste is disabled on set_clipboard, then the PASTE key is not
injected, but COPY is unrelated.
PR #2834 <https://github.com/Genymobile/scrcpy/pull/2834 >
2021-11-29 21:55:37 +01:00
Romain Vimont
bf97a46b0c
Upgrade gradle build tools to 7.0.3
2021-11-29 21:55:12 +01:00
Romain Vimont
bd56d81f72
Add --raw-key-events
...
This option allows to inject all input keys as key events, and ignore
text events.
Fixes #2816 <https://github.com/Genymobile/scrcpy/issues/2816 >
PR #2831 <https://github.com/Genymobile/scrcpy/pull/2831 >
2021-11-29 21:15:41 +01:00
Romain Vimont
5e918ac0c3
Use enum for key injection mode
...
There was only two key injection modes:
- the default one
- the mode with --prefer-text enabled
To prepare the addition of another mode (--raw-key-events), use an enum
instead of a bool.
PR #2831 <https://github.com/Genymobile/scrcpy/pull/2831 >
2021-11-29 21:15:32 +01:00
Romain Vimont
0c0f62e4ab
Use static maps to convert input events
...
This improves readability (hopefully).
PR #2831 <https://github.com/Genymobile/scrcpy/pull/2831 >
2021-11-29 21:15:07 +01:00
Romain Vimont
c96505200a
Fix code style in keyboard_inject
2021-11-29 21:01:57 +01:00
Romain Vimont
82a053015d
Improve HID keyboard documentation
...
Explain how to configure the keyboard layout.
2021-11-29 21:01:15 +01:00
Romain Vimont
1a6caeb18c
Document --tcpip in README
...
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
19858e6aeb
Add --tcpip feature
...
Expose an option to automatically configure and reconnect the device
over TCP/IP, to simplify wireless connection without using adb
explicitly.
There are two variants:
- If a destination address is provided, then scrcpy connects to this
address before starting. The device must listen on the given TCP port
(default is 5555).
- If no destination address is provided, then scrcpy attempts to find
the IP address of the current device (typically connected over USB),
enables TCP/IP mode, then connects to this address before starting.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
3b310f8317
Extract interruptible sleep for server
...
This improves readability, and makes the function reusable.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
800ba33ff4
Add function to read an adb property
...
This will allow to read the property "service.adb.tcp.port" to know if
the TCP/IP mode is enabled on the device, and which listening port is
used.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
8543d842ea
Add function to switch device to TCP/IP mode
...
Expose a function to execute "adb tcpip <port>".
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
f609b406c9
Add function to find the device IP address
...
Parse the result of "adb shell ip route" to find the device IP address.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
b7e631791c
Add util function to remove trailing '\r'
...
Depending on the platform and adb versions, the lines output by adb
could end with "\r\r\n". This util function helps to remove all trailing
'\r'.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
b52f87a892
Add util function to locate a column in a string
...
This will help to parse the result of "adb shell ip route" to find the
device IP address.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
3bf6fd2894
Workaround "adb connect" error detection
...
"adb connect" always returns successfully (with exit code 0), even in
case of failure.
As a workaround, capture its output and check if it starts with
"connected".
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
bfce22414f
Add adb connect and disconnect
...
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
e6e6f865a0
Add adb flag to disable execution error logs
...
In addition to disable stdout and stderr of the child process, add a
flag to disable the error log printed by scrcpy if the command failed.
This will we useful for commands which are expected to fail in some
cases (like "adb disconnect" if the device is not connected).
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
e3d4aa8c5d
Use flags for adb commands
...
Explicitly indicate, for each adb call, if stdout and stderr must be
inherited.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
f801d8b312
Expose flags for process execution
...
Let the caller decide if stdout and stderr must be inherited on process
creation, i.e. if stdout and stderr of the child process should be
printed in the scrcpy console.
This allows to get output and errors for specific adb commands depending
on the context.
PR #2827 <https://github.com/Genymobile/scrcpy/pull/2827 >
2021-11-29 20:39:03 +01:00
Romain Vimont
01ab503c22
Remove obsolete precision in README
...
Scrcpy is available in Debian stable packages, and several Ubuntu
versions.
2021-11-29 00:36:09 +01:00
Romain Vimont
b9b8b6aab8
Simplify Windows process inheritance configuration
...
Merge if-blocks together.
2021-11-26 09:41:11 +01:00
Romain Vimont
3e54773c48
Remove intermediate static functions from adb.c
...
They can easily be inlined into the public functions.
2021-11-26 09:41:11 +01:00
Romain Vimont
b90c89766b
Set CLOEXEC flag on sockets
...
If SOCK_CLOEXEC exists, then set the flag on socket creation.
Otherwise, use fcntl() (or SetHandleInformation() on Windows) to set the
flag afterwards.
This avoids the sockets to be inherited in child processes.
Refs #2783 <https://github.com/Genymobile/scrcpy/pull/2783 >
2021-11-26 09:40:39 +01:00
Romain Vimont
904f0ae61e
Check process success locally for adb commands
...
Remove sc_process_check_success() from the process API, it is too
specific.
2021-11-25 22:22:34 +01:00
Romain Vimont
680d2cc940
Extract command argv building
...
This simplifies adb_execute_p().
2021-11-25 22:22:34 +01:00
Romain Vimont
8ed3328055
Use unsigned for connection attempts count
...
There is no reason to use an explicit uint32_t.
2021-11-25 22:22:34 +01:00
Romain Vimont
d31725f077
Reorder cli sanity checks
...
Check unexpected additional arguments before other sanity checks.
2021-11-25 22:22:34 +01:00
Romain Vimont
b0eb1a55d6
Fix adb get-serialno error handling
...
If pipe read fails, return.
2021-11-25 22:22:34 +01:00
Romain Vimont
3653fb6b15
Add OutOfMemory log helper
...
Add a special LOG_OOM() function to log all OutOfMemory errors (i.e.
allocations returning NULL).
2021-11-24 22:06:49 +01:00
Romain Vimont
92a458e846
Remove unreachable return statements
2021-11-24 21:48:57 +01:00
Romain Vimont
73e0311d14
Add missing return on file_handler failure
...
Mistake introduced by 84334cf7db
.
2021-11-24 21:46:02 +01:00
Romain Vimont
007f616302
Add missing includes
...
Include these headers explicitly instead of relying on transitivity.
2021-11-24 21:44:29 +01:00
Romain Vimont
4c47598865
Make lockVideoOrientation option name uniform
...
On the server, the option was named lockedVideoOrientation.
2021-11-24 21:33:58 +01:00
Romain Vimont
7b29f5fd2d
Do not pass default values to the server
...
By default, only pass the version and the bit rate (the default bitrate
is a client compilation option).
2021-11-24 21:31:12 +01:00