Romain Vimont
7505f7117e
Fix typo in logs
2022-09-27 14:12:37 +02:00
Simon Chan
57056d078d
Use precise scrolling values
...
Since SDL 2.0.18, the amount scrolled horizontally or vertically is
exposed as a float (between 0 and 1). Forward a precise value to the
Android device when possible.
Refs <https://wiki.libsdl.org/SDL_MouseWheelEvent >
Fixes #3363 <https://github.com/Genymobile/scrcpy/issues/3363 >
PR #3369 <https://github.com/Genymobile/scrcpy/pull/3369 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2022-08-28 15:23:08 +02:00
Romain Vimont
fd3483c837
Extract conversion from float to u16 fixed-point
...
PR #3369 <https://github.com/Genymobile/scrcpy/pull/3369 >
2022-08-28 15:23:08 +02:00
Romain Vimont
041cdf6cf5
Rename buffer_util.h to binary.h
...
It will allow to expose more binary util functions not related to
buffers.
PR #3369 <https://github.com/Genymobile/scrcpy/pull/3369 >
2022-08-28 15:23:08 +02:00
Romain Vimont
d23b3e88a4
Replace '%g' by '%f' as printf format
...
For some reason, '%g' does not work correctly with MinGW.
Refs #3369 <https://github.com/Genymobile/scrcpy/pull/3369 >
PR #3399 <https://github.com/Genymobile/scrcpy/pull/3399 >
2022-08-03 23:25:09 +02:00
Romain Vimont
5c62f3419d
Rename buffer util functions with sc_ prefix
2022-02-12 09:12:46 +01:00
Romain Vimont
9d2e00697e
Use sc_ prefix for control_msg enums
...
Refs afa4a1b728
2022-01-27 16:47:51 +01:00
Romain Vimont
afa4a1b728
Use sc_ prefix for control_msg
2022-01-14 22:17:30 +01:00
Romain Vimont
924375487e
Pass buttons state in scroll events
...
A scroll event might be produced when a mouse button is pressed (for
example when scrolling while selecting a text). For consistency, pass
the actual buttons state (instead of 0).
In practice, it seems that this use case does not work properly with
Android event injection, but it will work with HID mouse.
2022-01-04 17:41:40 +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
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
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
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
2d5525eac1
Move PRIu64 Windows workaround to compat.h
...
So that we can use it from several files.
PR #2814 <https://github.com/Genymobile/scrcpy/pull/2814 >
2021-11-23 21:15:05 +01:00
Romain Vimont
901d837165
Add sequence number to set_clipboard request
...
This will allow the client to request an acknowledgement.
PR #2814 <https://github.com/Genymobile/scrcpy/pull/2814 >
2021-11-23 21:15:05 +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
4c4381de4c
Use sc_ prefix for size, position and point
2021-10-30 15:20:39 +02:00
Romain Vimont
1039f9b531
Workaround PRIu64 on Windows
...
On Windows, PRIu64 is defined to "llu", which is not supported:
error: unknown conversion type character 'l' in format
2021-06-20 16:04:18 +02:00
Marti Raudsepp
19ca02cd8f
Log control messages in verbose mode
...
PR #2371 <https://github.com/Genymobile/scrcpy/pull/2371 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-06-20 16:03:52 +02:00
brunoais
50eecdab28
Add control message to expand settings panel
...
PR #2260 <https://github.com/Genymobile/scrcpy/pull/2260 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-04-25 14:36:48 +02:00
brunoais
66c581851f
Rename control message type to COLLAPSE_PANELS
...
The collapsing action collapses any panels.
By the way, the Android method is named collapsePanels().
PR #2260 <https://github.com/Genymobile/scrcpy/pull/2260 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2021-04-25 14:36:48 +02:00
Romain Vimont
d0739911a3
Forward DOWN and UP separately for right-click
...
The shortcut "back on screen on" is a bit special: the control is
requested by the client, but the actual event injection (POWER or BACK)
is determined on the device.
To properly inject DOWN and UP events for BACK, transmit the action as
a control parameter.
If the screen is off:
- on DOWN, inject POWER (DOWN and UP) (wake up the device immediately)
- on UP, do nothing
If the screen is on:
- on DOWN, inject BACK DOWN
- on UP, inject BACK UP
A corner case is when the screen turns off between the DOWN and UP
event. In that case, a BACK UP event will be injected, so it's harmless.
As a consequence of this change, the BACK button is now handled by
Android on mouse released. This is consistent with the keyboard shortcut
(Mod+b) behavior.
PR #2259 <https://github.com/Genymobile/scrcpy/pull/2259 >
Refs #2258 <https://github.com/Genymobile/scrcpy/pull/2258 >
2021-04-19 20:16:45 +02:00
Romain Vimont
30e619d37f
Replace SDL_strdup() by strdup()
...
The functions SDL_malloc(), SDL_free() and SDL_strdup() were used only
because strdup() was not available everywhere.
Now that it is available, use the native version of these functions.
2021-02-17 09:54:03 +01:00
Romain Vimont
59feb2a15c
Group common includes into common.h
...
Include config.h and compat.h in common.h, and include common.h from all
source files.
2021-01-08 19:22:10 +01:00
xeropresence
3c1ed5d86c
Handle repeating keycodes
...
Initialize "repeat" count on key events.
PR #1519 <https://github.com/Genymobile/scrcpy/pull/1519 >
Refs #1013 <https://github.com/Genymobile/scrcpy/pull/1013 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2020-06-19 22:30:17 +02:00
Romain Vimont
245999aec4
Serialize text size on 4 bytes
...
This will allow to send text having a size greater than 65535 bytes.
2020-06-11 23:11:17 +02:00
Romain Vimont
fc1dec0270
Paste on "set clipboard" if possible
...
Ctrl+Shift+v synchronizes the computer clipboard to the Android device
clipboard. This feature had been added to provide a way to copy UTF-8
text from the computer to the device.
To make such a paste more straightforward, if the device runs at least
Android 7, also send a PASTE keycode to paste immediately.
<https://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_PASTE >
Fixes #786 <https://github.com/Genymobile/scrcpy/issues/786 >
2020-05-25 20:59:21 +02:00
Romain Vimont
274b591d18
Fix union typo
...
The "set clipboard" event used the wrong union type to store its text.
In practice, it worked because both are at the same offset.
2020-05-25 18:41:05 +02:00
Romain Vimont
270d0bf639
Rename max length constant for text injection
...
To avoid confusion with the max text size for clipboard, rename the
constant limiting the text injection length.
2020-04-13 19:38:43 +02:00
Romain Vimont
eb0f339271
Add shortcut to rotate screen
...
On Ctrl+r, disable auto-rotation (if enabled), set the screen rotation
and re-enable auto-rotation (if it was enabled).
Closes #11 <https://github.com/Genymobile/scrcpy/issues/11 >
2019-12-04 22:03:25 +01:00
Romain Vimont
510caff0cd
Replace SDL_assert() by assert()
...
SDL_assert() open a dialog on assertion failure.
There is no reason not to use assert() directly.
2019-11-27 21:19:46 +01:00
Romain Vimont
dfd0707a29
Move utilities to util/
2019-11-24 11:53:23 +01:00
Romain Vimont
6220456def
Merge mouse and touch events
...
Both are handled the very same way on the device.
2019-10-03 20:37:49 +02:00
Romain Vimont
77f876e29c
Add "inject touch" control message
...
Add a control message type in the protocol to forward touch events to
the device.
2019-10-03 20:05:27 +02:00
Romain Vimont
1f8ba1ca79
Include config.h everywhere
...
Ref: <https://github.com/Genymobile/scrcpy/issues/829 >
Suggested-by: Louis Kruger <louisk@gmail.com>
2019-09-29 22:39:53 +02:00
Romain Vimont
12a3bb25d3
Implement device screen off while mirroring
...
Add two shortcuts:
- Ctrl+o to turn the device screen off while mirroring
- Ctrl+Shift+o to turn it back on
On power on (either via the POWER key or BACK while screen is off), both
the device screen and the mirror are turned on.
<https://github.com/Genymobile/scrcpy/issues/175 >
2019-05-31 23:07:23 +02:00
Romain Vimont
28980bbc90
Rename "event" to "message"
...
After the recent refactorings, a "control event" is not necessarily an
"event" (it may be a "command"). Similarly, the unique "device event"
used to send the device clipboard content is more a "reponse" to the
request from the client than an "event".
Rename both to "message", and rename the message types to better
describe their intent.
2019-05-31 16:18:00 +02:00