Romain Vimont
ba28d817fb
Fail on unsupported HID option
...
If the feature is not supported on the platform, fail during command
line parsing instead of using a fallback.
2022-01-01 23:28:45 +01:00
Romain Vimont
37124e1452
Avoid unused function warning
...
If HAVE_SOCK_CLOEXEC is not defined, then sc_raw_socket_close() is never
used. Add an #ifndef block to remove the warning.
2022-01-01 23:27:34 +01:00
Romain Vimont
6b9f397733
Happy new year 2022!
2022-01-01 17:20:36 +01:00
Romain Vimont
1fbc590b26
Fix memory leaks in tests
...
Tests were failing when run with ASAN enabled.
2021-12-31 10:49:22 +01:00
Romain Vimont
826ddf1a6e
Document HID keyboard events
2021-12-28 12:23:03 +01:00
Romain Vimont
6261bb0b5a
Ignore display bounds on resize-to-fit
...
The "resize to fit" feature (MOD+w or double-click on black borders)
computed the "optimal size" using the same function computing the
initial window size on start.
However, on "resize to fit", only the black borders must be removed (the
content size must be preserved), so the display bounds must not be
considered.
2021-12-20 19:24:28 +01:00
Romain Vimont
2f091beeaa
Simplify sc_size assignment
...
Assign the whole struct instead of each field separately.
2021-12-20 19:24:28 +01:00
Romain Vimont
720c3064df
Upgrade SDL (2.0.18) for Windows
...
Include the latest version of SDL in Windows releases.
2021-12-20 19:16:28 +01:00
Romain Vimont
ad11c5babb
Set DPI awareness for Windows
...
Add a windows manifest to set the DPI awareness by default:
<https://docs.microsoft.com/en-us/windows/win32/hidpi/setting-the-default-dpi-awareness-for-a-process >
Refs #40 <https://github.com/Genymobile/scrcpy/issues/40 >
Fixes #2865 <https://github.com/Genymobile/scrcpy/issues/2865 >
2021-12-20 19:13:02 +01:00
Thomas Van Machelen
25a4135935
Mention react-native menu shortcut in README
...
PR #2879 <https://github.com/Genymobile/scrcpy/pull/2879 >
Signed-off-by: Romain Vimont <rom@rom1v.com >
2021-12-18 16:48:44 +01:00
Romain Vimont
feb250a973
Fix typos reported by codespell
2021-12-15 18:27:45 +01:00
Chih-Hsuan Yen
d049671908
Fix adb server hang
...
Since commit 0426708544
, the server is run
in a dedicated thread. For SDL, many signals, including SIGINT and
SIGTERM, are masked for new threads. As a result, if the adb server is
not already running, adb commands invoked by scrcpy will start an adb
server that ignores those signals and cannot be terminated at system
shutdown.
Fixes #2873 <https://github.com/Genymobile/scrcpy/issues/2873 >
PR #2870 <https://github.com/Genymobile/scrcpy/pull/2870 >
Signed-off-by: Romain Vimont <rom@rom1v.com >
2021-12-11 19:09:11 +01:00
Romain Vimont
0685c491cd
Improve crossbuild configuration
...
Use meson native features to detect crossbuild, and remove the
user-provided option crossbuild_windows.
2021-12-10 19:50:58 +01:00
Romain Vimont
892cfe943e
Add script to bump version
...
The version must now be bumped at 4 different places. Add a script to
bump automatically:
./bump_version 1.23.4
2021-12-10 19:50:17 +01:00
Romain Vimont
29570ee819
Add metadata to scrcpy.exe for Windows
...
Refs <https://stackoverflow.com/a/708382/1987178 >
2021-12-09 23:38:13 +01:00
Romain Vimont
cfcbc2ac21
Add icon to scrcpy.exe
...
The icon will be associated to scrcpy.exe in the Windows explorer.
The .ico was created using imagemagick:
convert icon.png icon.ico
It is included as a binary for simplicity.
Refs #2815 <https://github.com/Genymobile/scrcpy/issues/2815 >
2021-12-09 23:38:13 +01:00
Romain Vimont
2cb4e04209
Update copyright date to 2021 in manpage
...
December, it's time to update to 2021!
2021-12-09 23:37:40 +01:00
Romain Vimont
878ffffc36
Update environment variables section in manpage
...
Use the same content as the section printed with --help.
2021-12-09 21:47:05 +01:00
Romain Vimont
f0361fc8b3
Add environment variables in help
...
Print the list of environment variables used by scrcpy in --help.
2021-12-09 21:45:39 +01:00
Romain Vimont
b5d4ec61fc
Move newline generation in help
...
If we removed the shortcuts intro, we would not need the additional '\n'
of the section title, so it should be printed along with the shortcuts
intro.
2021-12-09 21:43:54 +01:00
Romain Vimont
3ada5c51bc
Rename scrcpy threads
...
Prefix the name of threads by "scrcpy-". This improves readability in
the output of `top -H` for example.
Limit the thread names to 16 bytes, because it is limited on some
platforms.
2021-12-09 21:32:11 +01:00
Romain Vimont
09c55b0f93
Set "low delay" decoder flag
...
I don't really know the concrete benefits, but scrcpy definitely wants
low delay decoding.
Suggested-by: François Cartegnie <fcvlcdev@free.fr >
2021-12-08 23:53:54 +01:00
Romain Vimont
682a691173
Use timers with microsecond precision
...
SDL only provides millisecond precision. Use system timers to get a
better precision.
2021-12-08 23:45:45 +01:00
Romain Vimont
ddb9396743
Interrupt and close sockets on server stop
...
The sockets were never interrupted or closed by the client since recent
changes to run the server from a dedicated thread (see commit
0426708544
).
As a side effect, the server could never terminate properly (it was
waiting on socket blocking calls), so it was always killed by the client
after the WATCHDOG_DELAY.
Interrupt the sockets on stop to give the servera chance to terminate
property, then close them.
2021-12-08 23:44:23 +01:00
Romain Vimont
cabcbc2b15
Do not create control socket if no control
...
If --no-control is enabled, then it is not necessary to create a second
communication socket between the client and the server.
This also facilitates the use of the server alone (without the client)
to receive only the raw video stream.
2021-12-08 23:41:38 +01:00
Romain Vimont
80fe12a95f
Require libavcodec >= 57.37
...
In ffmpeg/doc/APIchanges:
> 2016-04-21 - 7fc329e - lavc 57.37.100 - avcodec.h
> Add a new audio/video encoding and decoding API with decoupled input
> and output -- avcodec_send_packet(), avcodec_receive_frame(),
> avcodec_send_frame() and avcodec_receive_packet().
Refs de9b79ec2d
Refs #2862 <https://github.com/Genymobile/scrcpy/issues/2862 >
2021-12-07 00:04:35 +01:00
Romain Vimont
099c546580
Require libavformat >= 57.33
...
In ffmpeg/doc/APIchanges:
> 2016-04-11 - 6f69f7a / 9200514 - lavf 57.33.100 / 57.5.0 - avformat.h
> Add AVStream.codecpar, deprecate AVStream.codec.
Refs 5d9e96dc4e
Refs #2862 <https://github.com/Genymobile/scrcpy/issues/2862 >
2021-12-07 00:04:27 +01:00
Romain Vimont
dca2c5f94f
Require SDL >= 2.0.5
...
Icon loading uses SDL_CreateRGBSurfaceWithFormatFrom(), available since
SDL 2.0.5 (in 2016).
Refs #2862 <https://github.com/Genymobile/scrcpy/issues/2862 >
2021-12-06 23:49:55 +01:00
Romain Vimont
90cf956f57
Remove spurious ';'
2021-12-04 09:29:30 +01:00
Romain Vimont
36c8778d2d
Add missing comma
...
Thank you clang:
../app/src/control_msg.c:45:5: warning: suspicious concatenation of
string literals in an array initialization; did you mean to separate
the elements with a comma? [-Wstring-concatenation]
"hover-exit",
^
2021-12-04 09:25:58 +01:00
Romain Vimont
ae90ef22db
Add a unit test for clipboard text length
...
This would have catched the possible memcpy() overflow fixed by the
previous commit.
Refs #2859 <https://github.com/Genymobile/scrcpy/pull/2859 >
2021-12-04 09:22:35 +01:00
Yu-Chen Lin
d80bc25eba
Fix overflow in memcpy
...
In function ‘memcpy’,
inlined from ‘control_msg_serialize.constprop’ at ../app/src/control_msg.c:77:5,
inlined from ‘run_controller’ at ../app/src/controller.c:69:12:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:34:10:
warning: ‘__builtin___memcpy_chk’ writing 262138 bytes into a region
of size 262130 overflows the destination [-Wstringop-overflow=]
return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
Refs 901d837165
PR #2859 <https://github.com/Genymobile/scrcpy/pull/2859 >
Signed-off-by: Yu-Chen Lin <npes87184@gmail.com >
Signed-off-by: Romain Vimont <rom@rom1v.com >
2021-12-04 09:18:55 +01:00
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
v1.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