Romain Vimont
868e762d71
Fix size_t format specifier for Windows
...
Use "%Iu" on Windows. This fixes the following warning:
../app/src/sys/win/command.c:17:14: warning: unknown conversion type character ‘l’ in format [-Wformat=]
17 | LOGE("Command too long (%" PRIsizet " chars)", len - 1);
2020-11-14 22:10:11 +01:00
Romain Vimont
576814bcec
Document --encoder option
...
Add documentation for the new option --encoder in the manpage and in
README.md.
2020-11-08 21:11:12 +01:00
Tzah Mazuz
76c2c6e69d
Adding new option --encoder
...
Some devices have more than one encoder, and some encoders may cause
issues or crash. With this option we can specify which encoder we want
the device to use.
PR #1827 <https://github.com/Genymobile/scrcpy/pull/1827 >
Fixes #1810 <https://github.com/Genymobile/scrcpy/issues/1810 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2020-11-08 21:07:17 +01:00
Romain Vimont
d5f059c7cb
Add option to force legacy method for pasting
...
Some devices do not behave as expected when setting the device clipboard
programmatically.
Add an option --legacy-paste to change the behavior of Ctrl+v and MOD+v
so that they inject the computer clipboard text as a sequence of key
events (the same way as MOD+Shift+v).
Fixes #1750 <https://github.com/Genymobile/scrcpy/issues/1750 >
Fixes #1771 <https://github.com/Genymobile/scrcpy/issues/1771 >
2020-11-07 15:16:51 +01:00
Romain Vimont
adc547fa6e
Add an option to forward all clicks
...
Add --forward-all-clicks to disable mouse shortcuts and forward middle
and right clicks to the device instead.
Fixes #1302 <https://github.com/Genymobile/scrcpy/issues/1302 >
Fixes #1613 <https://github.com/Genymobile/scrcpy/issues/1613 >
2020-11-03 17:12:26 +01:00
Romain Vimont
ad5f567f07
Remove spurious space
2020-11-03 17:08:21 +01:00
Romain Vimont
d50ecf40b6
Fix options order
2020-10-01 15:08:18 +02:00
Brinan Sjostrom
56d237f152
Fix "press Enter key" message
...
The message said "Press any key to continue...", whereas only
Enter/Return is accepted.
PR #1783 <https://github.com/Genymobile/scrcpy/pull/1783 >
Fixes #1757 <https://github.com/Genymobile/scrcpy/issues/1757 >
Reviewed-by: Yu-Chen Lin <npes87184@gmail.com>
Signed-off-by: Romain Vimont <rom@rom1v.com>
2020-10-01 14:52:24 +02:00
Romain Vimont
acc65f8c9d
Remove unused field
...
Fixes #1775 <https://github.com/Genymobile/scrcpy/issues/1775 >
Reported-by: lordnn
2020-09-20 01:11:22 +02:00
Romain Vimont
a65ebceac1
Add missing mutex unlock on error
...
Fixes #1770 <https://github.com/Genymobile/scrcpy/issues/1770 >
Reported-by: lordnn
2020-09-20 01:11:13 +02:00
Romain Vimont
bd9f656933
Fix feature test macro
...
The expected feature test macro is _POSIX_C_SOURCE having a value
greater or equal to 200809L.
Fixes #1726 <https://github.com/Genymobile/scrcpy/issues/1726 >
2020-08-31 14:02:51 +02:00
Romain Vimont
c243fd4c3f
Fix more log format warning
...
The expression port + 1 is promoted to int, but printed as uint16_t.
This is the same mistake fixed for a different log by
7eb16ce364
.
Refs #1726 <https://github.com/Genymobile/scrcpy/issues/1726 >
2020-08-31 13:40:32 +02:00
Romain Vimont
d02789ce21
List available shortcut keys on error
...
Fixes #1681 <https://github.com/Genymobile/scrcpy/issues/1681 >
Suggested-by: Moritz Schulz <moritzleni@gmail.com>
2020-08-16 13:52:01 +02:00
Romain Vimont
6cc22e1c5b
Reference --shortcut-mod from shortcuts list
...
Fixes #1681 <https://github.com/Genymobile/scrcpy/issues/1681 >
Suggested-by: Moritz Schulz <moritzleni@gmail.com>
2020-08-16 13:44:42 +02:00
Romain Vimont
198346d148
Add pinch-to-zoom simulation
...
If Ctrl is hold when the left-click button is pressed, enable
pinch-to-zoom to scale and rotate relative to the center of the screen.
Fixes #24 <https://github.com/Genymobile/scrcpy/issues/24 >
2020-08-10 20:08:24 +02:00
Romain Vimont
976761956f
Fix uninitialized repeat count in key events
...
A new "repeat" field has been added by
3c1ed5d86c
, but it was not initialized in
every code path.
As a consequence, keycodes generated by shortcuts were sent with an
undetermined value, breaking some shortcuts (especially HOME) randomly.
Fixes #1643 <https://github.com/Genymobile/scrcpy/issues/1643 >
2020-08-07 11:32:11 +02:00
xeropresence
84f1d9e375
Add --no-key-repeat cli option
...
Add an option to avoid forwarding repeated key events.
PR #1623 <https://github.com/Genymobile/scrcpy/pull/1623 >
Refs #1013 <https://github.com/Genymobile/scrcpy/issues/1013 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2020-08-03 19:51:55 +02:00
xeropresence
65d06a3663
Pass full options struct to static functions
...
This avoids to pass specific options values individually. Since these
function are static (internal to the file), this is not a problem to
make them depend on scrcpy_options.
Refs #1623 <https://github.com/Genymobile/scrcpy/pull/1623 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2020-08-02 18:20:14 +02:00
Romain Vimont
74079ea5e4
Copy the options used in input manager init
...
This avoids to pass additional options to some input manager functions.
Refs #1623 <https://github.com/Genymobile/scrcpy/pull/1623 >
2020-08-02 18:19:41 +02:00
Romain Vimont
7ad47dfaab
Swap paste shortcuts
...
For consistency with MOD+c and MOD+x, use MOD+v to inject PASTE.
Use Mod+Shift+v to inject clipboard content as a sequence of text
events.
2020-08-01 16:47:44 +02:00
Romain Vimont
56a115b5c5
Add shortcuts for COPY and CUT
...
Send COPY and CUT on MOD+c and MOD+x (only supported for Android >= 7).
The shortcuts Ctrl+c and Ctrl+x should generally also work (even before
Android 7), but the active Android app may use them for other actions
instead.
2020-08-01 16:47:43 +02:00
Romain Vimont
8f64a5984b
Change "resize to fit" shortcut to MOD+w
...
For convenience, MOD+x will be used for injecting the CUT keycode.
2020-08-01 16:31:31 +02:00
Romain Vimont
bccd12bf5c
Remove "get clipboard" call
...
Now that every device clipboard change is automatically synchronized to
the computer, the "get clipboard" request (bound to MOD+c) is useless.
2020-08-01 16:31:31 +02:00
Romain Vimont
20d3925099
Set computer clipboard only if necessary
...
Do not explicitly set the clipboard text if it already contains the
expected content.
Even if copy-paste loops are avoided by the previous commit, this avoids
to trigger a clipboard change on the computer-side.
Refs #1580 <https://github.com/Genymobile/scrcpy/issues/1580 >
2020-08-01 16:31:31 +02:00
Romain Vimont
7683be8159
Synchronize clipboard on Ctrl+v
...
Pressing Ctrl+v on the device will typically paste the clipboard
content.
Before sending the key event, synchronize the computer clipboard to the
device clipboard to allow seamless copy-paste.
2020-08-01 16:31:31 +02:00
Romain Vimont
d4ca85d6a8
Forward Shift to the device
...
This allows to select text using Shift+(arrow keys).
Fixes #942 <https://github.com/Genymobile/scrcpy/issues/942 >
2020-08-01 16:31:31 +02:00
Romain Vimont
e6e528f228
Forward Ctrl to the device
...
Now that the scrcpy shortcut modifier is Alt by default (and can be
configured), forward Ctrl to the device.
This allows to trigger Android shortcuts.
Fixes #555 <https://github.com/Genymobile/scrcpy/issues/555 >
2020-08-01 16:31:31 +02:00
Romain Vimont
a5f8b577c5
Ignore text events for shortcuts
...
Pressing Alt+c generates a text event containing "c", so "c" was sent to
the device when --prefer-text was enabled.
Ignore text events when the mod state matches a shortcut modifier.
2020-08-01 16:31:31 +02:00
Romain Vimont
e4bb7c1d1f
Accept Super as shortcut modifier
...
In addition to (left) Alt, also accept (left) Super. This is especially
convenient for macOS users (Super is the Cmd key).
2020-08-01 16:31:31 +02:00
Romain Vimont
1b76d9fd78
Customize shortcut modifier
...
Add --shortcut-mod, and use Alt as default modifier.
This paves the way to forward the Ctrl key to the device.
2020-08-01 16:31:27 +02:00
Romain Vimont
63cb93d7d7
Use Ctrl for all shortcuts
...
Remove the Cmd modifier on macOS, which was possible only for some
shortcuts but not all.
This paves the way to make the shortcut modifier customizable.
2020-08-01 16:31:08 +02:00
Romain Vimont
9d9dd1f143
Make expression order consistent
...
The condition "cmd" was always before "shift" in all expressions except
4.
2020-07-17 00:00:42 +02:00
Romain Vimont
199c74f62f
Declare main() with argc/argv params in tests
...
Declaring the main method as "int main(void)" causes issues with SDL.
Fixes #1209 <https://github.com/Genymobile/scrcpy/issues/1209 >
2020-07-15 12:17:04 +02:00
Romain Vimont
deea29f52a
Send touch event without pressure on button up
...
Refs #1518 <https://github.com/Genymobile/scrcpy/issues/1518 >
2020-07-09 22:31:47 +02:00
Romain Vimont
e8a565f9ea
Fix touch events HiDPI-scaling
...
Touch events were HiDPI-scaled twice:
- once because the position (provided as floats between 0 and 1) were
converted in pixels using the drawable size (not the window size)
- once due to screen_convert_to_frame_coords()
One possible fix could be to compute the position in pixels from the
window size instead, but this would unnecessarily round the event
position to the nearest window coordinates (instead of drawable
coordinates).
Instead, expose two separate functions to convert to frame coordinates
from either window or drawable coordinates.
Fixes #1536 <https://github.com/Genymobile/scrcpy/issues/1536 >
Refs #15 <https://github.com/Genymobile/scrcpy/issues/15 >
Refs e40532a376
2020-06-27 15:45:28 +02: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
0ba74fbd9a
Make scrcpy.h independant of other headers
...
The header scrcpy.h is intended to be the "public" API. It should not
depend on other internal headers.
Therefore, declare all required structs in this header and adapt
internal code.
2020-06-19 22:30:02 +02:00
Romain Vimont
29e5af76d4
Remove fprintf() call in tests
...
It should never have been committed.
2020-06-19 21:54:46 +02:00
Ivan Keliukh
dc7b60e619
Add option for disabling screensaver
...
PR #1502 <https://github.com/Genymobile/scrcpy/pull/1502 >
Fixes #1370 <https://github.com/Genymobile/scrcpy/issues/1370 >
Signed-off-by: Romain Vimont <rom@rom1v.com>
2020-06-18 21:35:28 +02:00
Romain Vimont
1e4ee547b5
Make message buffer static
...
Now that the message max size is 256k, do not put the buffer on the
stack.
2020-06-11 23:11:20 +02:00
Romain Vimont
488d22d4e2
Increase clipboard size from 4k to 256k
...
Beyond 256k, SDL_GetClipboardText() returns an empty string on my
computer.
Fixes #1117 <https://github.com/Genymobile/scrcpy/issues/1117 >
2020-06-11 23:11:20 +02:00
Romain Vimont
00d292b2f5
Fix receiver on partial device messages
...
If a single device message was read in several chunks from the control
socket, the communication was broken.
2020-06-11 23:11:20 +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
d91c5dcfd5
Rename MSG_SERIALIZED_MAX_SIZE to MSG_MAX_SIZE
...
For simplicity and consistency with the server part.
2020-06-11 23:08:04 +02:00
Romain Vimont
d202d7b205
Add unit test for big clipboard device message
...
Test clipboard synchronization from the device to the computer.
2020-06-11 23:06:02 +02:00
Romain Vimont
08c0c64af6
Rename test names from "event" to "msg"
...
The meson test names had not been changed when "event" had been renamed
to "message".
Ref: 28980bbc90
2020-06-11 23:06:02 +02:00
Romain Vimont
8f314c74b0
Reorganize message size constants
...
Make the max clipboard text length depend on the max message size.
2020-06-11 22:58:54 +02:00
Romain Vimont
6e1069a822
Configure log level for application only
...
Do not expose internal SDL logs to users.
Fixes #1441 <https://github.com/Genymobile/scrcpy/issues/1441 >
2020-06-02 18:27:23 +02:00
Romain Vimont
c4323df976
Fix incorrect log return value
...
The function must return a SDL_LogPriority, but returned an enum
sc_log_level.
(It was harmless because this specific return should never happen, as
asserted.)
2020-06-02 18:27:14 +02:00
Romain Vimont
e4efd75766
Avoid repetition for some shortcuts
...
Keeping the key pressed generate "repeat" events. It does not make sense
to repeat the event for rotation or turn screen off.
2020-05-29 22:02:41 +02:00