Romain Vimont
5d473efeb5
Bind Home key to MOVE_HOME
...
On pressing Home key on the computer, move the cursor to the beginning
of the line instead of going back to the home screen.
<https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_HOME >
<https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_MOVE_HOME >
Fixes (part of) <https://github.com/Genymobile/scrcpy/issues/555 >.
2019-05-27 10:24:47 +02:00
Gerdal
ffa8c66979
Fix link error on Windows Subsystem for Linux
...
Build failed on WSL because of lack of reference to WinMain@16 during
linking.
Fixes <https://github.com/Genymobile/scrcpy/issues/316 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2019-03-31 20:07:07 +02:00
Romain Vimont
dfed1b250e
Replace SDL types by C99 standard types
...
Scrcpy is a C11 project. Use the C99 standard types instead of the
SDL-specific types:
SDL_bool -> bool
SintXX -> intXX_t
UintXX -> uintXX_t
2019-03-02 23:55:23 +01:00
Romain Vimont
8655ba7197
Add option to mirror in read-only
...
Add an option to disable device control: -n/--no-control.
2019-03-02 23:10:21 +01:00
Romain Vimont
163cd36ccc
Rename -n/--no-window to -N/--no-display
...
The description of scrcpy is "Display and control your Android device".
We want an option to disable display, another one to disable control.
For naming consistency, name it --no-display.
Also change the shortname to -N, so that we can use -n for --no-control
later.
2019-03-02 22:46:46 +01:00
Romain Vimont
db6644f1f9
Add missing no_window initialization
...
Initialize the field no_window in "struct args"
2019-03-02 22:42:28 +01:00
Romain Vimont
aeda583a2c
Update code style
...
Limit source code to 80 chars, and declare functions return type and
modifiers on a separate line.
This allows to avoid very long lines, and all function names are
aligned.
(We do this on VLC, and I like it.)
2019-03-02 20:28:46 +01:00
CapsLock
421a1141e2
Add a new option: -n/--no-window
...
This option will allow scrcpy to record the stream without display.
Signed-off-by: Romain Vimont <rom@rom1v.com>
2019-03-02 18:45:56 +01:00
Romain Vimont
7d10ec2b5a
Add shortcut to expand/collapse notification panel
...
Use Ctrl+n to expand, Ctrl+Shift+n to collapse.
Fixes <https://github.com/Genymobile/scrcpy/issues/392 >
2019-02-26 20:35:37 +01:00
Romain Vimont
751600a7f9
Move all compat ifdefs definitions to compat.h
...
This allows to give a proper name to features requirements.
2019-02-16 15:28:56 +01:00
Romain Vimont
0ed2373952
Support recording to MKV
...
Implement recording to Matroska files.
The format to use is determined by the option -F/--record-format if set,
or by the file extension (".mp4" or ".mkv").
2019-02-09 15:56:24 +01:00
Yu-Chen Lin
eca82e09c3
app: add always_on_top
...
It is very convenient when I play mobile game and watch video at the
same time.
Tested on Linux mint Cinnamon as well as Windows 10.
Signed-off-by: Yu-Chen Lin <npes87184@gmail.com>
2019-01-27 20:54:24 +08:00
Romain Vimont
6dc6ec05d5
Configure version at meson project level
...
Make meson aware of the project version, so that it does not print:
Project version: undefined
2018-11-12 14:10:21 +01:00
Romain Vimont
22bf0c19d6
Rename --output-file to --record
...
To record the screen to a local file:
scrcpy --record file.mp4
2018-11-11 21:37:31 +01:00
Ivan Gorinov
d706c5df39
Enable video output file, with pts set by server
2018-11-11 16:30:23 +01:00
yuchenlin
140b1ef6a5
prevent closing console right after process error in windows
...
Signed-off-by: yuchenlin <npes87184@gmail.com>
2018-09-14 20:34:59 +08:00
Philipp Sandhaus
af9808cf02
Add option to start in fullscreen
...
Signed-off-by: Romain Vimont <rom@rom1v.com>
2018-09-04 18:51:32 +02:00
Romain Vimont
caa9e30004
Add crop feature
...
Add an option to crop the screen on the server. This allows to mirror
only part of the device screen.
2018-08-09 19:12:27 +02:00
Romain Vimont
fca806e095
Do not call deprecated av_register_all()
...
av_register_all() is deprecated in FFmpeg since this commit:
<http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=0694d8702421e7aff1340038559c438b61bb30dd >
It is now useless to call it:
<https://ffmpeg.org/pipermail/ffmpeg-devel/2018-February/225051.html >
Fixes <https://github.com/Genymobile/scrcpy/issues/203 >.
2018-08-09 18:18:22 +02:00
Romain Vimont
6274cc3767
Document APK drag & drop
...
Add the drag & drop shortcut for installing an APK file to the README
and the help.
2018-05-28 20:45:54 +02:00
Romain Vimont
1bddb80b5f
Change volume shortcuts
...
I could not make Ctrl+'+' and Ctrl+'-' work for every keyboard on every
platform.
Instead, use Ctrl+UP and Ctrl+DOWN (like in VLC) to change the volume.
Fixes <https://github.com/Genymobile/scrcpy/issues/103 >.
2018-04-03 14:25:11 +02:00
Romain Vimont
66ec252893
Add an option to enable "show touches"
...
Add -t/--show-touches option to show physical touches while scrcpy is
running.
See <https://github.com/Genymobile/scrcpy/issues/96 >.
2018-03-25 15:43:27 +02:00
Romain Vimont
b13d25b9f4
Group scrcpy options into a struct
...
The scrcpy() function accepts as many parameters as there are options.
To simplify, group all options in a separate struct.
2018-03-25 15:16:29 +02:00
Romain Vimont
29b5c5b8f4
Merge branch 'arich/addShake' into dev ( #85 )
...
Add support for CTRL+S to send hardware "shake" to device
2018-03-23 10:13:19 +01:00
Romain Vimont
88ee6bc928
Swap MENU and APP_SWITCH shortcuts
...
Ctrl+s was mapped to MENU, while Ctrl+m was mapped to APP_SWITCH.
To avoid confusion, swap the shortcuts:
- Ctrl+m like _M_enu
- Ctrl+s like _S_witch
2018-03-23 10:10:24 +01:00
Andy Rich
301c52b603
Add support for CTRL+S to send hardware "shake" to device w/readme
2018-03-22 16:15:24 -07:00
Romain Vimont
3b3803da0d
Remove useless blocks in switch/case
...
Remove unnecessary additional blocks.
2018-03-21 11:14:15 +01:00
Romain Vimont
f7bc0bd5b5
Merge branch 'dev' into release
2018-03-14 09:33:53 +01:00
Romain Vimont
e69f6f710d
Disable stdout/stderr buffering on Windows
...
In MSYS2 on Windows, the output is buffered by default. Disable
buffering to print output immediately.
Note that in cmd.exe, it still prints nothing.
2018-03-13 10:20:09 +01:00
Romain Vimont
b858204786
Remove black borders on double-click
...
Resize the window to fit the device screen on click on black borders
(same as Ctrl+x).
Suggested-by: Guillaume Roche <groche@genymobile.com>
2018-03-13 08:37:46 +01:00
Romain Vimont
c87d94ee27
Map middle-click to HOME
...
Middle-click is useless in practice. Use it for HOME.
2018-03-10 00:44:19 +01:00
Romain Vimont
e2a7abcd53
Implement clipboard paste
...
Paste computer clipboard to the device on Ctrl+v.
The other direction (pasting the device clipboard to the computer) is
not implemented. It would require a communication channel from the
device to the computer, other than the socket used by the video stream.
2018-03-07 18:07:02 +01:00
Romain Vimont
9b056f5091
Replace SDL_net by custom implementation
...
SDL_net is not very suitable for scrcpy.
For example, SDLNet_TCP_Accept() is non-blocking, so we have to wrap it
by calling many SDL_Net-specific functions to make it blocking.
But above all, SDLNet_TCP_Open() is a server socket only when no IP is
provided; otherwise, it's a client socket. Therefore, it is not possible
to create a server socket bound to localhost, so it accepts connections
from anywhere.
This is a problem for scrcpy, because on start, the application listens
for nearly 1 second until it accepts the first connection, supposedly
from the device. If someone on the local network manages to connect to
the server socket first, then they can stream arbitrary H.264 video.
This may be troublesome, for example during a public presentation ;-)
Provide our own simplified API (net.h) instead, implemented for the
different platforms.
2018-02-16 00:56:58 +01:00
Romain Vimont
e8cad790a4
Reword Ctrl+x description
...
Pressing Ctrl+x resizes the window to remove black borders, "optimal" is
not well-defined.
2018-02-15 14:04:48 +01:00
Romain Vimont
d977202224
Add Ctrl+i shortcut to enable/disable FPS counter
...
Disable FPS counter on start, and use Ctrl+i to enable/disable it.
2018-02-15 12:24:16 +01:00
Romain Vimont
c6c17af840
Do not print usage on command error
...
On error, a message is printed. If we print usage afterwards, it's easy
to miss it.
2018-02-14 19:01:26 +01:00
Romain Vimont
8697659890
Expose device serial as an optional argument
...
The device serial was provided as a positional argument:
scrcpy 0123456789abcdef
Instead, expose it as an optional argument, -s or --serial:
scrcpy -s 0123456789abcdef
This avoids inconsistency between platforms when the positional
argument is passed before the options (which is undefined).
2018-02-14 18:57:29 +01:00
Romain Vimont
23d92a95b6
Extract argument parsing to specific functions
...
To avoid a big switch/case, implement the argument parsing logic in
separate static functions.
2018-02-14 18:53:16 +01:00
Romain Vimont
111068d733
Use SDL_bool return to indicate success
...
For clarity and consistency across the application, return SDL_TRUE
(instead of 0) on success and SDL_FALSE on failure (instead of
non-zero).
2018-02-14 18:44:28 +01:00
Romain Vimont
d3c76c004e
Sort parameters by letter
...
For readability, sort the command-line arguments parsing by letter.
2018-02-14 18:39:46 +01:00
Romain Vimont
3ed80a1fac
Define macros wrappers for logs
...
Use macros to wrap SDL_Log* functions with the "application" category.
2018-02-13 10:10:18 +01:00
Romain Vimont
4dbc450d01
Enable debug logs only for debug builds
...
In release mode, use the default log priorities.
2018-02-12 14:17:29 +01:00
Romain Vimont
7fe11033cb
Include dependencies version
...
On --version, also print the dependencies version scrcpy has been
compiled against.
2018-02-07 15:41:59 +01:00
Romain Vimont
9f6464acff
Expose application version
...
Expose scrcpy version via -v or --version.
2018-02-07 15:41:59 +01:00
Romain Vimont
53ff1aa410
Use meson to configure default values
...
Make meson generate config.h with configured values.
2018-02-07 12:09:10 +01:00
Romain Vimont
5eb91a4ca7
Fix scrcpy() return value
...
The scrcpy() function returns a SDL_bool to indicate its success, but
was initialized to 0 (SDL_FALSE) instead of SDL_TRUE.
2018-02-04 12:39:17 +01:00
Romain Vimont
0a70e24e80
Add new shortcuts description in help
...
Document the new shortcuts in the help (scrcpy --help).
2018-02-02 15:10:44 +01:00
Romain Vimont
6b546a87ab
Add bit-rate command-line option
...
Add a command-line option (-b/--bit-rate) to customize the video
bit-rate.
2018-02-01 17:11:40 +01:00
Romain Vimont
7fe7bbf58c
Check empty string before strtol()
...
There is no need to call strtol() if the input string is empty.
2018-02-01 17:11:40 +01:00
Romain Vimont
3bc63708b4
Remove useless newlines in SDL_Log*
...
Trailing new line is not necessary in SDL_Log* methods.
2018-02-01 17:11:40 +01:00
Romain Vimont
35a111d56e
Add --help
...
Provide command-line help, with -h/--help option.
2018-02-01 17:11:40 +01:00
Romain Vimont
ee93f3f23a
Rename maximum_size to max_size
...
The long option is --max-size, so for consistency, adapt the code
accordingly.
2018-02-01 17:11:40 +01:00
Romain Vimont
213b721ff9
Use long command-line options
...
In addition to the short form (e.g. "-p"), add the long form ("--port").
2018-02-01 15:35:20 +01:00
Romain Vimont
60b2f2ca64
Indent switch blocks content
...
For readability, indent "case" in switch blocks.
Replace:
switch (x) {
case 1:
// ...
case 2:
// ...
case 3: { // a local scope block
int i = 42;
// ...
}
}
By:
switch (x) {
case 1:
// ...
case 2:
// ...
case 3: { // a local scope block
int i = 42;
// ...
}
}
2018-02-01 11:44:20 +01:00
Romain Vimont
89f6a3cfe7
Handle resized video stream
...
Accept a parameter to limit the video size.
For instance, with "-m 960", the great side of the video will be scaled
down to 960 (if necessary), while the other side will be scaled down so
that the aspect ratio is preserved. Both dimensions must be a multiple
of 8, so black bands might be added, and the mouse positions must be
computed accordingly.
2018-01-29 15:40:33 +01:00
Romain Vimont
2c35220618
Rename screen -> scrcpy -> main
...
Rename scrcpy.c to main.c (this file handles the command line parsing),
and screen.c to scrcpy.c (it exposes the entry point scrcpy()).
2018-01-23 16:44:59 +01:00