Commit Graph

794 Commits (9e78b765da01843b4986f93179b0c92701269062)
 

Author SHA1 Message Date
Romain Vimont 3599fcaae5 Fix help for --window-width and --window-height
The default value is 0 (automatic), not -1.
5 years ago
Romain Vimont c610a6b3c7 Document scrcpy via SSH tunnel in README 5 years ago
Romain Vimont 704c0ff4dd Document copy-paste and --prefer-text in README 5 years ago
Romain Vimont b145b8d5f4 Reorganize features in README 5 years ago
act262 90293240cc Fix meizu 16th NPE
Fill AppInfo to avoid NullPointerException on some devices.

Fixes <https://github.com/Genymobile/scrcpy/issues/365>

Signed-off-by: Romain Vimont <rom@rom1v.com>
5 years ago
Romain Vimont 213c468c20 Move workarounds to a separate class
Extract workarounds (currently only one) to a separate class to avoid
polluting the main code.
5 years ago
Romain Vimont 18f2e33a8b Fix noconsole.exe
The linker flag "-mwindows" has no effect on my current MinGW.

Instead, passing "-Wl,--subsystem,windows" works.

Fixes <https://github.com/Genymobile/scrcpy/issues/691>
5 years ago
senta2006 7aed5d5b60 Fix typos
PR <https://github.com/Genymobile/scrcpy/pull/927>

Signed-off-by: Romain Vimont <rom@rom1v.com>
5 years ago
Romain Vimont 601b0fecdd Extract DEBUG flag in build_without_gradle.sh 5 years ago
Romain Vimont 7fd800d583 Generate VERSION_NAME in build_without_gradle.sh
Since commit b963a3b9d5, the server uses
BuildConfig.VERSION_NAME.

Generate this field manually for building without gradle.
5 years ago
Romain Vimont 1d97d7213d Add option --max-fps
Add an option to limit the capture frame rate. It only works for devices
with Android >= 10.

Fixes <https://github.com/Genymobile/scrcpy/issues/488>
5 years ago
Romain Vimont fb976816f9 Do not expose frame rate in ScreenEncoder
The KEY_FRAME_RATE parameter value is necessary for the configuration of
the encoder, but its actual value does not impact the frame rate (only
resources used by the encoder).

Therefore, it's an internal detail and should not be exposed by the
ScreenEncoder class.
5 years ago
Romain Vimont 1b78a77962 Fix error message 5 years ago
Romain Vimont 59073223aa Update manpage for --window-borderless option 5 years ago
Diego Fernando Díaz A 59bc5bc1f5 Add option to disable window decoration
Add --window-borderless parameter.

Signed-off-by: Romain Vimont <rom@rom1v.com>
5 years ago
Romain Vimont 9fd7a80a89 Add option to specify the initial window size
Add --window-width and --window-height parameters.

If only one is provided, the other is computed so that the aspect ratio
is preserved.
5 years ago
Romain Vimont b6e2f8ae00 Update manpage for --window-{x,y} options 5 years ago
Diego Fernando Díaz A ce5635f28c Add option to specify the initial window position
Add --window-x and --window-y parameters.

Signed-off-by: Romain Vimont <rom@rom1v.com>
5 years ago
Romain Vimont 771bd8404d Do not write invalid packet duration
Configuration packets have no PTS. Do not compute a packet duration from
their PTS.

Fixes recording to mp4 on device rotation.
5 years ago
Romain Vimont af3027a85b Merge pull request #920 into dev
Compare server and client version at the start of scrcpy
5 years ago
Yu-Chen Lin b963a3b9d5 Check client and server mismatch
Send client version as first parameter and check it at server start.

Signed-off-by: Yu-Chen Lin <npes87184@gmail.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
5 years ago
Romain Vimont aa0f77c898 Accept resize shortcuts on maximized window
Allow "resize to fit" and "resize to pixel-perfect" on maximized window:
restore the window to normal size then resize.
5 years ago
Romain Vimont 35c05bb3ce Fix rotation while the window is maximized
Keep the windowed window size to handle maximized window the same way as
fullscreen window.

Fixes <https://github.com/Genymobile/scrcpy/issues/750>
5 years ago
Romain Vimont f6f2868868 Handle window events from screen.c
Only the screen knows what to do on window events.

This paves the way to handle more window events.
5 years ago
Romain Vimont 6996cbf5d3 Log device disconnection
If scrcpy closes due to socket disconnection, log a warning.
5 years ago
olbb e282100d0b Call Looper.prepareMainLooper() to avoid exception
Some devices internally create a Handler when creating an input Surface,
causing an exception:

> Surface: java.lang.RuntimeException: Can't create handler inside
> thread that has not called Looper.prepare()

As a workaround, call Looper.prepareMainLooper() beforehand.

Fixes:
 - <https://github.com/Genymobile/scrcpy/issues/240>
 - <https://github.com/Genymobile/scrcpy/issues/921>

Signed-off-by: Romain Vimont <rom@rom1v.com>
5 years ago
Romain Vimont b08a98324d Fix segfault on empty file recorded
Write the file trailer only if the file header have been written, to
avoid a segfault in libav.

Fixes <https://github.com/Genymobile/scrcpy/issues/918>.
5 years ago
Romain Vimont c916af0984 Add --prefer-text option
Expose an option to configure how key/text events are forwarded to the
Android device.

Enabling the option avoids issues when combining multiple keys to enter
special characters, but breaks the expected behavior of alpha keys in
games (typically WASD).

Fixes <https://github.com/Genymobile/scrcpy/issues/650>
5 years ago
Romain Vimont ff061b4f30 Deprecate short options for advanced features
The short options will be removed in the future (and may be reused for
other features).
5 years ago
Romain Vimont 157c60feb4 Fix indentation 5 years ago
Romain Vimont 2d90e1befd Fix include recorder.h 5 years ago
Romain Vimont 0e301ddf19 Factorize scrcpy options and command-line args
Do not duplicate all scrcpy options fields in the structure storing the
parsed command-line arguments.
5 years ago
Romain Vimont c42ff75b74 Pass screen to mouse event converters
Mouse events coordinates depend on the screen size and location, so the
converter need to access the screen.

The fact that it needs the position or the size is an internal detail,
so pass a pointer to the whole screen structure.
5 years ago
Romain Vimont b0db1178d1 Move event conversion to input_manager
Only keep helper functions separated.

This will help to convert coordinates internally when necessary.
5 years ago
Romain Vimont 8d601d3210 Rename "input_manager" variables to "im"
It is used a lot, a short name improves readability.
5 years ago
Romain Vimont 683f7ca848 Document how to attach a debugger to the server 5 years ago
Romain Vimont 120f08ee96 Fix manpage option parameter format
The parameter for --window-title was not underlined the same way as
others.
5 years ago
Romain Vimont 0415672a75 Merge branch 'master' into dev 5 years ago
Romain Vimont 3ea4742321 Call ninja without changing directory
In build instructions, use:

    ninja -Cx ...

instead of:

    cd x
    ninja ...
5 years ago
Romain Vimont 95fd64b5de Add scrcpy version in recorded video metadata
It might help to understand problems in recorded videos.
5 years ago
Romain Vimont ab205084dc
Merge pull request #896 from yangfl/upstream
Add manpage for scrcpy
5 years ago
yangfl 4696878a97 Add manpage for scrcpy 5 years ago
Romain Vimont 3da95b52bd Rename scrcpy-server.jar to scrcpy-server
The server name ending with .jar has several drawbacks:
 - meson requires the jar executable to attempt to modify it:
     <https://github.com/Genymobile/scrcpy/issues/404#issuecomment-456065923>
     <https://github.com/mesonbuild/meson/issues/4844>
 - meson warns during "ninja install"
     <https://github.com/Genymobile/scrcpy/issues/458>
 - some users try to execute it on the computer as a java executable

Removing the extension solves all these problems.
5 years ago
Romain Vimont c72f677435 Merge branch 'master' into dev 5 years ago
Romain Vimont 1380f6e00f Fix help for --record-format
Record format requires a parameter.
5 years ago
Romain Vimont d841718956 Add a script to build the server without gradle
Gradle versions may sometimes cause problems. This script offers an
alternative.
5 years ago
Romain Vimont 17d53be3ef Fix mouse events conversion
The conversion from SDL mouse state to Android mouse state used wrong
constants as mask.

Fixes <https://github.com/Genymobile/scrcpy/issues/635>
5 years ago
Romain Vimont f9938dbf88 Inject button state for touch/mouse events
The buttons state was forwarded, but ignored by the server.
5 years ago
Romain Vimont f6c8460ebb Rename window size functions for clarity
Now, get_window_size() returns the current window size (fullscreen or
not), while get_windowed_window_size() always returned the windowed size
(the size when fullscreen is disabled).
5 years ago
Romain Vimont c33a147fd0 Fix "turn screen off" on Android Q
Call getInternalDisplayToken(), which retrieve the id of the first
physical display (which is not necessarily 0 anymore).

Fixes <https://github.com/Genymobile/scrcpy/issues/835>
5 years ago