Romain Vimont
d2dce51038
Add support for AV1
...
Add option --codec=av1.
PR #3713 <https://github.com/Genymobile/scrcpy/pull/3713 >
2023-02-06 11:00:49 +01:00
Romain Vimont
4342c5637d
Add support for H265
...
Add option --codec=h265.
PR #3713 <https://github.com/Genymobile/scrcpy/pull/3713 >
Fixes #3092 <https://github.com/Genymobile/scrcpy/issues/3092 >
2023-02-06 11:00:49 +01:00
Romain Vimont
3e517cd40e
Add option to select video codec
...
Introduce the selection mechanism. Alternative codecs will be added in
further commits.
PR #3713 <https://github.com/Genymobile/scrcpy/pull/3713 >
2023-02-06 10:58:45 +01:00
Romain Vimont
0fca2ad830
Add option to not power on on start
...
By default, on start, the device is powered on. To prevent this
behavior, add a new option --no-power-on.
Fixes #3148 <https://github.com/Genymobile/scrcpy/issues/3148 >
PR #3210 <https://github.com/Genymobile/scrcpy/pull/3210 >
2022-04-28 19:12:52 +02:00
Romain Vimont
326897a0d4
Add missing mouse shortcuts in --help
...
Document 4th-click and 5th-click shortcuts.
Fixes #3122 <https://github.com/Genymobile/scrcpy/issues/3122 >
2022-04-25 18:35:06 +02:00
Romain Vimont
4ce7af42c6
Use $ANDROID_SERIAL if no selector is specified
...
Like adb, read the ANDROID_SERIAL environment variable to select a
device by serial if no explicit selection (-s, -d, -e or --tcpip=<addr>)
is provided via the command line.
Fixes #3111 <https://github.com/Genymobile/scrcpy/issues/3111 >
PR #3113 <https://github.com/Genymobile/scrcpy/pull/3113 >
2022-03-15 08:32:34 +01:00
Romain Vimont
b1dbc30072
Document exit status in --help
...
Refs #3085 <https://github.com/Genymobile/scrcpy/pull/3085 >
2022-03-10 09:13:21 +01:00
Romain Vimont
79ed83ab68
Reorder --tcpip option in cli
...
To keep options in alphabetic order.
2022-02-22 18:10:30 +01:00
Romain Vimont
73a5311ac6
Forbid HID input without OTG on Windows
...
On Windows, if the adb daemon is running, opening the USB device will
necessarily fail, so HID input is not possible.
Refs #2773 <https://github.com/Genymobile/scrcpy/issues/2773 >
PR #3011 <https://github.com/Genymobile/scrcpy/pull/3011 >
2022-02-20 17:39:42 +01:00
Romain Vimont
6ee75c0cff
Remove obsolete text in error message
...
The HID/OTG features are now available on all platforms.
PR #3011 <https://github.com/Genymobile/scrcpy/pull/3011 >
2022-02-20 17:39:30 +01:00
Romain Vimont
82a99f69ec
Remove "linux-only" mentions for HID/OTG features
...
HID/OTG features are not limited to Linux anymore.
PR #3031 <https://github.com/Genymobile/scrcpy/pull/3031 >
2022-02-20 17:27:43 +01:00
Romain Vimont
b4fd882ece
Fix typo
2022-02-20 17:21:25 +01:00
Romain Vimont
4b018be789
Add --print-fps to enable FPS counter on start
...
The FPS counter could be enabled/disabled via MOD+i.
Add a command line option to enable it on start. This is consistent with
other features like --turn-screen-off or --fullscreen.
Fixes #468 <https://github.com/Genymobile/scrcpy/issues/468 >
PR #3030 <https://github.com/Genymobile/scrcpy/pull/3030 >
2022-02-18 18:16:50 +01:00
Romain Vimont
ccbe370cc5
Add --no-cleanup option
...
It might be useful not to cleanup on exit, for example to leave the
screen turned off, or keep the server binary on the device (via the
server option "cleanup=false").
Fixes #1764 <https://github.com/Genymobile/scrcpy/issues/1764 >
PR #3020 <https://github.com/Genymobile/scrcpy/pull/3020 >
2022-02-15 19:25:57 +01:00
Romain Vimont
bb991f829c
Fix order of options
...
In alphabetic order, "no-clipboard-autosync" is before
"no-downsize-on-error".
2022-02-13 17:26:34 +01:00
Romain Vimont
ca9e1a0514
Add compilation flag for USB features
...
This allows to disable HID/OTG features on Linux to build without
libusb.
2022-02-12 14:15:07 +01:00
Romain Vimont
cc27771dd1
Add compilation flag for V4L2 feature
...
This allows to disable V4L2 support on Linux to build without
libavdevice.
2022-02-12 14:15:07 +01:00
Romain Vimont
29c163959c
Indent ifdef for clarity
...
Make it explicit that the ifdef is an inner block.
2022-02-10 09:24:19 +01:00
Romain Vimont
582161607e
Add option to select USB or TCP/IP devices
...
If several devices are connected (as listed by `adb devices`), it was
necessary to provide the explicit serial via -s/--serial.
If only one device is connected via USB (respectively, via TCP/IP), it
might be convenient to select it automatically. For this purpose, two
new options are introduced:
- -d/--select-usb: select the single device connected over USB
- -e/--select-tcpip: select the single device connected over TCP/IP
PR #3005 <https://github.com/Genymobile/scrcpy/pull/3005 >
2022-02-09 10:00:25 +01:00
CennoxX
0bf7e4ddc4
Add missing spaces in help
...
PR #2994 <https://github.com/Genymobile/scrcpy/pull/2994 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2022-02-02 12:32:39 +01:00
Romain Vimont
ea68a003a2
Make HID keyboard and mouse optional in OTG mode
...
Allow to only enable HID keyboard or HID mouse:
scrcpy --otg -K # keyboard only
scrcpy --otg -M # mouse only
scrcpy --otg -KM # keyboard and mouse
scrcpy --otg # keyboard and mouse
PR #2974 <https://github.com/Genymobile/scrcpy/pull/2974 >
2022-01-27 23:36:27 +01:00
Romain Vimont
91418c79ab
Add OTG mode
...
Add an option --otg to run scrcpy with only physical keyboard and mouse
simulation (HID over AOA), without mirroring and without requiring adb.
To avoid adding complexity into the scrcpy initialization and screen
implementation, OTG mode is implemented totally separately, with a
separate window.
PR #2974 <https://github.com/Genymobile/scrcpy/pull/2974 >
2022-01-27 23:36:23 +01:00
Romain Vimont
d48d191262
Rename HAVE_AOA_HID to HAVE_USB
...
The condition actually determines whether scrcpy can use libusb or not.
PR #2974 <https://github.com/Genymobile/scrcpy/pull/2974 >
2022-01-27 23:35:48 +01:00
Romain Vimont
f289d206ea
Disable more actions if --no-control
...
If control is disabled, then do not enable "show touches" or
automatically power off the device on close.
2022-01-24 21:45:44 +01:00
Romain Vimont
ca516f4318
Refactor if-block in cli
...
Several tests must be performed if opts->control is false.
2022-01-24 21:44:28 +01:00
Romain Vimont
5d6076bffd
Move misplaced break statements
...
With ifdefs, the resulting code could contain both a return statement
and a break.
2022-01-24 21:38:30 +01:00
Romain Vimont
3a0ba7d0a4
Disable downsizing on error if V4L2 is enabled
...
V4L2 device is created with the initial device size, it does not support
resizing.
PR #2947 <https://github.com/Genymobile/scrcpy/pull/2947 >
2022-01-21 18:44:05 +01:00
Romain Vimont
15bf27afdd
Make auto-downsize on error optional
...
Add --no-downsize-on-error option to disable attempts to use a lower
definition on MediaCodec error.
PR #2947 <https://github.com/Genymobile/scrcpy/pull/2947 >
2022-01-21 18:36:46 +01:00
Romain Vimont
cba84f6999
Add support for HID mouse
2022-01-04 17:41:40 +01:00
Romain Vimont
d540c72e7c
Rename SC_MOD_* to SC_SHORTCUT_MOD_*
...
This will avoid conflicts with new SC_MOD_* constants.
2022-01-01 23:28:45 +01:00
Romain Vimont
26ee7ce566
Expose V4L2 option on all platforms
...
This allows to report a meaningful error message if an unsupported
feature is used on an incompatible platform. This is consistent with the
behavior of -K/--hid-keyboard.
2022-01-01 23:28:45 +01:00
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
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
90cf956f57
Remove spurious ';'
2021-12-04 09:29:30 +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
82a053015d
Improve HID keyboard documentation
...
Explain how to configure the keyboard layout.
2021-11-29 21:01:15 +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
d31725f077
Reorder cli sanity checks
...
Check unexpected additional arguments before other sanity checks.
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
6abff46c9f
Add option to disable clipboard autosync
...
By default, scrcpy automatically synchronizes the computer clipboard to
the device clipboard before injecting Ctrl+v, and the device clipboard
to the computer clipboard whenever it changes.
This new option --no-clipboard-autosync disables this automatic
synchronization.
Fixes #2228 <https://github.com/Genymobile/scrcpy/issues/2228 >
PR #2817 <https://github.com/Genymobile/scrcpy/pull/2817 >
2021-11-24 09:44:39 +01:00
Romain Vimont
68eaee5bb0
Force adb forward if tunnel host/port is provided
...
Tunnel host and port are only meaningful in "adb forward" mode.
They indicate where the client must connect to communicate with the
server. In "adb reverse" mode, the client _listens_, it does not
_connect_.
Refs #2807 <https://github.com/Genymobile/scrcpy/pull/2807 >
2021-11-21 22:37:52 +01:00
RipleyTom
7bdbde7363
Add options to configure tunnel host and port
...
In "adb forward" mode, by default, scrcpy connects to localhost:PORT,
where PORT is the local port passed to "adb forward". This assumes that
the tunnel is established on the local host with a local adb server
(which is the common case).
For advanced usage, add --tunnel-host and --tunnel-port to force the
connection to a different destination.
Fixes #2801 <https://github.com/Genymobile/scrcpy/issues/2801 >
PR #2807 <https://github.com/Genymobile/scrcpy/pull/2807 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-11-21 22:37:52 +01:00
Romain Vimont
b25404ee4b
Print help to stdout
...
The output of -h/--help was printed on stderr, although it is not an
error.
Printing on stdout allows to pipe the result directly:
scrcpy --help | less
Instead of (in bash):
scrcpy --help |& less
2021-11-19 08:18:13 +01:00
Romain Vimont
4cfc1cd70a
Assert that long options are correctly set
2021-11-19 08:06:23 +01:00
Romain Vimont
057c7a4df4
Move str_util to str
...
Simplify naming.
2021-11-14 01:22:22 +01:00
Romain Vimont
979ce64dc0
Improve string util API
...
Use prefixed names and improve documentation.
2021-11-14 01:22:22 +01:00
Romain Vimont
7a733328bc
Adapt help to terminal size
...
If the error stream is a terminal, and we can retrieve the terminal
size, wrap the help content according to the terminal width.
2021-11-11 15:22:39 +01:00
Romain Vimont
3f51a2ab43
Generate getopt params from option structures
...
Use the option descriptions to generate the optstring and longopts
parameters for the getopt_long() command.
That way, the options are completely described in a single place.
2021-11-11 14:59:34 +01:00