Romain Vimont
6c578b5caa
Move screen-related code to screen.c
...
The file scrcpy.c contains too many different things in addition to the
main logic, so move the screen code to a separate file, screen.c.
2018-02-08 15:43:28 +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
Romain Vimont
8984c1a7c4
Scale mouse events
...
The video screen size on the client may differ from the real device
screen size (e.g. the video stream may be scaled down). As a
consequence, mouse events must be scaled to match the real device
coordinates.
For this purpose, make the client send the video screen size along with
the absolute pointer location, and the server scale the location to
match the real device size before injecting mouse events.
2018-01-23 16:44:59 +01:00
Romain Vimont
d7b00a9bab
Move server-related functions to server.c
...
In addition to the functions to start/stop the server, move the
functions to push the jar and enable/disable the "adb reverse" tunnel.
2018-01-23 16:20:03 +01:00
Romain Vimont
7d67696b7e
Extract server-related functions
...
To lighten screen.c, move start_server() and stop_server() to a separate
file.
2018-01-22 11:29:44 +01:00
Romain Vimont
90c69d2c79
Use pointers-to-const where relevant
...
Explicitly declare const a function parameter intended to be read-only.
2018-01-19 15:13:38 +01:00
Romain Vimont
cabb102a04
Implement keyboard/mouse control
...
To control the device from the computer:
- retrieve mouse and keyboard SDL events;
- convert them to Android events;
- serialize them;
- send them on the same socket used by the video stream (but in the
opposite direction);
- deserialize the events on the Android side;
- inject them using the InputManager.
2018-01-18 17:25:13 +01:00
Romain Vimont
07b3918129
Do not call SDL_Quit()
...
It may crash in i965_dri.so when calling SDL_Quit (probably a driver
bug). To avoid a segmentation fault, do not call SDL_Quit().
2017-12-19 14:12:11 +01:00
Romain Vimont
bb8afa9324
Fix comment about data sent over the socket
...
We now send the device name in addition to the screen dimensions on the
socket. Update the comment accordingly.
2017-12-18 11:27:55 +01:00
Romain Vimont
d972a88c1a
Optimize includes
...
Only include SDL_stdinc.h for SDL_bool, not the whole SDL.h.
2017-12-18 11:07:42 +01:00
Romain Vimont
b9c9466d65
Handle condition variable failure
...
Add condition variables function wrappers to handle unexpected failure.
2017-12-15 17:15:55 +01:00
Romain Vimont
c4266e487b
Rename (un)lock_mutex to mutex_(un)lock
...
For consistency, rename lock_mutex and unlock_mutex to mutex_lock and
mutex_unlock.
2017-12-15 17:15:55 +01:00
Romain Vimont
ad667bfa20
Fix function signature
...
Use void for parameters (this project is in C).
2017-12-15 11:37:29 +01:00
Romain Vimont
37d88b8a6a
Use SDL_bool return type instead of int
...
Many functions returned an int to indicate their success. For clarity,
use SDL_bool instead.
2017-12-15 11:27:54 +01:00
Romain Vimont
39fd6ce518
Send device name on the socket
...
Make the server send the device name along with the width and height, so
that the client may use it as the window title.
2017-12-13 10:02:07 +01:00
Romain Vimont
54d9148a36
Initial commit
...
Start a new clean history from here.
2017-12-12 15:25:15 +01:00