spice/server
Benjamin Tissoires ff9c8d4908 inputs-channel: Attempt to have a reliable led state
We can not consider the qemu led state to be reliable. It by default has
50ms of delay, so if we want to achieve something reliable, this won't do.

We need to keep our own internal state, and consider it as reliable.
We update it immediately after receiving the key presses, meaning that this
is now the future state of the guest.

When we receive a keymap event, we check against this 'ideal' state and
only update the guest if we 'counted' that it won't have the correct state.

When the guest notifies its change, the modifiers_watch is supposed to
fix any wrong state.

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Acked-by: Frediano Ziglio <fziglio@redhat.com>
2019-04-30 09:05:07 +01:00
..
tests Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
.gitignore gitignore: Reuse top-level gitignore 2016-12-14 19:09:21 +00:00
agent-msg-filter.c agent-msg-filter: Simplify code 2019-02-12 21:02:44 +00:00
agent-msg-filter.h agent-msg-filter: Add some comments to AgentMsgFilter structure 2019-02-11 15:15:59 +00:00
cache-item.h Unify header guards 2017-03-30 18:17:20 +01:00
cache-item.tmpl.c red-pipe-item: Use GLib memory functions 2017-10-11 12:52:17 +01:00
char-device.c Remove support for 64 bit pointers on protocol 2019-03-18 12:42:32 +00:00
char-device.h char-device: separate functions to get write buffer for client and server 2018-11-08 08:08:28 +00:00
common-graphics-channel.c Update usage of GObject private structures 2019-02-08 11:49:15 +00:00
common-graphics-channel.h common-graphics-channel: Move "qxl" property to DisplayChannel 2017-09-07 06:42:01 +01:00
cursor-channel-client.c Update usage of GObject private structures 2019-02-08 11:49:15 +00:00
cursor-channel-client.h Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
cursor-channel.c Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
cursor-channel.h Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
dcc-private.h Rename StreamAgent to VideoStreamAgent 2017-11-30 11:51:09 -06:00
dcc-send.c Remove a duplicated line 2019-03-22 10:16:30 +00:00
dcc.c dcc: Remove a redundant NULL pointer check in dcc_create_surface() 2019-03-21 11:31:41 +00:00
dcc.h Use "base" as pipe item base field name 2018-06-18 13:40:51 +01:00
dispatcher.c dispatcher: Allows to manage messages without registering them 2019-03-28 15:38:16 +00:00
dispatcher.h dispatcher: Allows to manage messages without registering them 2019-03-28 15:38:16 +00:00
display-channel-private.h Move image_compression field from RedWorker to DisplayChannel 2019-03-28 20:20:25 +00:00
display-channel.c display-channel: Inline red_migrate_display function 2019-03-28 20:20:25 +00:00
display-channel.h Move image_compression field from RedWorker to DisplayChannel 2019-03-28 20:20:25 +00:00
display-limits.h Receive the GraphicsDeviceInfo message from the streaming agent 2019-01-29 15:46:54 +01:00
event-loop.c event-loop: Port to Windows 2019-01-31 11:06:37 +00:00
glib-compat.h Use verify instead of G_STATIC_ASSERT 2017-12-01 22:49:46 +00:00
glz-encode-match.tmpl.c server: rename _tmpl files 2015-11-26 13:33:36 +00:00
glz-encode.tmpl.c glz: Inline GET_{r,g,b} macros 2018-06-27 16:46:52 +01:00
glz-encoder-dict.c glz-encoder-dict: Remove a warning compiling with CentOS 7 2018-07-11 10:22:36 +01:00
glz-encoder-dict.h Make various functions static 2017-04-05 12:39:20 +02:00
glz-encoder-priv.h Unify header guards 2017-03-30 18:17:20 +01:00
glz-encoder.c glz-encoder: Avoid double byte swap sending image magic 2018-06-05 14:13:27 +01:00
glz-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00
gstreamer-encoder.c Use proper format strings for spice_log 2019-03-05 13:55:47 +00:00
image-cache.c Use constant variables for image operations 2017-11-08 15:23:49 +00:00
image-cache.h Unify header guards 2017-03-30 18:17:20 +01:00
image-encoders.c image-encoders: Initialize Zlib lazily 2019-01-30 13:07:32 +00:00
image-encoders.h Add possibly missing headers for pthread.h 2018-06-26 10:54:01 +01:00
inputs-channel-client.c Update usage of GObject private structures 2019-02-08 11:49:15 +00:00
inputs-channel-client.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
inputs-channel.c inputs-channel: Attempt to have a reliable led state 2019-04-30 09:05:07 +01:00
inputs-channel.h inputs-channel: Move spice_server_kbd_leds to InputsChannel 2017-12-19 16:29:41 +00:00
jpeg-encoder.c jpeg-encoder: Remove JPEG_IMAGE_TYPE_RGB24 2018-06-26 18:06:50 +01:00
jpeg-encoder.h jpeg-encoder: Remove JPEG_IMAGE_TYPE_RGB24 2018-06-26 18:06:50 +01:00
lz4-encoder.c red-replay-qxl: Remove useless end of line 2018-11-16 10:17:32 +00:00
lz4-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00
main-channel-client.c Use proper format strings for spice_log 2019-03-05 13:55:47 +00:00
main-channel-client.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
main-channel.c Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
main-channel.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
main-dispatcher.c main-dispatcher: Use reds as opaque for dispatcher 2019-03-20 20:40:03 +00:00
main-dispatcher.h Remove core parameter from main_dispatcher_new 2019-02-12 22:34:52 +00:00
Makefile.am Use new common demarshallers.h 2018-10-15 13:39:10 +01:00
memslot.c Use proper format strings for spice_log 2019-03-05 13:55:47 +00:00
memslot.h memslot: Remove error parameter from memslot_get_virt 2018-07-03 12:23:54 +01:00
meson.build meson: Use gnu_symbol_visibility keyword introduced in meson 0.48 2019-02-13 17:00:02 +00:00
migration-protocol.h Unify header guards 2017-03-30 18:17:20 +01:00
mjpeg-encoder.c Use proper format strings for spice_log 2019-03-05 13:55:47 +00:00
net-utils.c windows: Do not include headers not available on Windows 2019-01-31 10:48:34 +00:00
net-utils.h reds-stream: Introduce reds_stream_get_no_delay() helper 2017-03-31 12:22:52 +02:00
pixmap-cache.c pixmap-cache: Use GLib memory functions 2017-10-11 12:52:17 +01:00
pixmap-cache.h Unify header guards 2017-03-30 18:17:20 +01:00
red-channel-capabilities.c Remove common/mem.h includes 2017-11-21 08:27:09 +00:00
red-channel-capabilities.h Unify header guards 2017-03-30 18:17:20 +01:00
red-channel-client.c Update usage of GObject private structures 2019-02-08 11:49:15 +00:00
red-channel-client.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
red-channel.c red-channel: Small comment on "core" field 2019-03-29 15:18:35 +00:00
red-channel.h Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
red-client.c Use proper format strings for spice_log 2019-03-05 13:55:47 +00:00
red-client.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
red-common.h build: Remove unneeded spice_common.h includes 2018-07-06 07:06:34 +01:00
red-parse-qxl.c qxl: Release QXL resources in red_put_surface_cmd 2018-12-06 13:04:03 +00:00
red-parse-qxl.h qxl: Release QXL resources in red_put_surface_cmd 2018-12-06 13:04:03 +00:00
red-pipe-item.c red-pipe-item: Use GLib memory functions 2017-10-11 12:52:17 +01:00
red-pipe-item.h red-pipe-item: Removed some not necessary headers inclusions 2019-02-23 05:12:59 +00:00
red-qxl.c Check running state in red_qxl_set_client_capabilities 2019-03-28 20:20:25 +00:00
red-qxl.h Check running state in red_qxl_set_client_capabilities 2019-03-28 20:20:25 +00:00
red-record-qxl.c red-replay-qxl: Remove useless end of line 2018-11-16 10:17:32 +00:00
red-record-qxl.h red-record-qxl: Change license header to LGPLv2+ 2018-07-05 10:15:17 +02:00
red-replay-qxl.c Move thread/dispatching handling to RedChannel 2019-03-28 20:20:25 +00:00
red-stream-device.c Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
red-stream-device.h red-stream-device: Constify stream_device_get_device_display_info result 2019-02-04 19:44:12 +00:00
red-stream.c ssl: Dump OpenSSL error stack on errors 2019-02-07 09:55:11 +00:00
red-stream.h red-stream: Propagate RedStreamSslStatus type 2018-10-09 12:52:48 +01:00
red-worker.c red-worker: Use bool for driver_cap_monitors_config 2019-03-29 15:18:47 +00:00
red-worker.h red-worker: Remove unused definitions 2019-03-29 15:18:49 +00:00
reds-private.h Send the graphics device info to the vd_agent 2019-01-29 15:46:28 +01:00
reds.c Check image compression value earlier 2019-03-28 20:20:25 +00:00
reds.h reds: Factor out a function to marshal VDAgentGraphicsDeviceInfo message 2019-02-12 21:24:54 +00:00
smartcard-channel-client.c smartcard-channel-client: Update usage of GObject private structures 2019-02-11 13:07:59 +00:00
smartcard-channel-client.h Use standard "Red" namespace 2017-10-21 08:47:02 +01:00
smartcard.c Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
smartcard.h Reuse SPICE_DECLARE_TYPE macro 2017-11-21 08:38:44 +00:00
sound.c Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
sound.h Change playback_compression to bool type 2017-04-07 15:08:43 -05:00
spice-audio.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-bitmap-utils.c Attempt to create bitmap debug directory 2017-04-07 16:45:54 +01:00
spice-bitmap-utils.h Use verify instead of G_STATIC_ASSERT 2017-12-01 22:49:46 +00:00
spice-bitmap-utils.tmpl.c server: rename _tmpl files 2015-11-26 13:33:36 +00:00
spice-char.h Constify spice_server_char_device_recognized_subtypes 2016-06-29 08:09:03 +01:00
spice-core.h windows: Do not include headers not available on Windows 2019-01-31 10:48:34 +00:00
spice-experimental.h Unify header guards 2017-03-30 18:17:20 +01:00
spice-input.h Split spice.h 2014-11-27 14:27:18 +01:00
spice-migration.h server: Use SPICE_GNUC_DEPRECATED to avoid a dependency on glib.h 2016-08-12 09:47:40 +01:00
spice-qxl.h QXL interface: improve the spice_qxl_set_device_info documentation 2019-01-28 19:35:53 +00:00
spice-replay.h Unify header guards 2017-03-30 18:17:20 +01:00
spice-server-enums.c.tmpl build: Rename spice-server-enums.tmpl.[ch] to spice-server-enums.[ch].tmpl 2018-03-07 10:04:04 -03:00
spice-server-enums.h.tmpl build: Rename spice-server-enums.tmpl.[ch] to spice-server-enums.[ch].tmpl 2018-03-07 10:04:04 -03:00
spice-server.h Convert RedChannelClient hierarchy to GObject 2016-10-07 14:46:37 -05:00
spice-server.syms QXL interface: add a function to identify monitors in the guest 2019-01-26 09:40:10 +00:00
spice-version.h.in build-sys: generate spice-version.h 2014-11-27 14:27:33 +01:00
spice.h Make red-replay-qxl.h a public header 2016-11-10 06:37:15 +00:00
spicevmc.c Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
stat-file.c stat-file: Exit earlier to reduce indentation 2018-06-25 13:12:04 +01:00
stat-file.h Unify header guards 2017-03-30 18:17:20 +01:00
stat.h Unify header guards 2017-03-30 18:17:20 +01:00
stream-channel.c Make channel client callbacks virtual functions 2019-03-28 20:20:25 +00:00
stream-channel.h Make stream-channel.h self-contained 2017-10-30 12:01:24 +01:00
sw-canvas.c remove sw-canvas.h 2016-05-09 12:45:37 +01:00
tree.c tree: Use GLib memory functions 2017-10-11 12:52:17 +01:00
tree.h Unify header guards 2017-03-30 18:17:20 +01:00
utils.c ssl: Dump OpenSSL error stack on errors 2019-02-07 09:55:11 +00:00
utils.h ssl: Dump OpenSSL error stack on errors 2019-02-07 09:55:11 +00:00
video-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00
video-stream.c video-stream: use the dcc local variable 2019-04-11 09:51:40 +00:00
video-stream.h Use "base" as pipe item base field name 2018-06-18 13:40:51 +01:00
zlib-encoder.c Replace remaining spice_printerr() with g_warning() 2018-06-28 13:21:48 +01:00
zlib-encoder.h Unify header guards 2017-03-30 18:17:20 +01:00