diff options
author | Javier Celaya <javier.celaya@flexvm.es> | 2015-04-17 12:40:48 +0200 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2015-06-30 16:49:29 +0200 |
commit | c914e96fb4de3ba8b2df174d7c7af8ff76af1081 (patch) | |
tree | 2ba0e856ccd334978f4da011d1cf2f6f6a6a8db8 /server/red_worker.c | |
parent | 22c40b9d1fadc7892580aeb831514a81320e7b76 (diff) | |
download | spice-c914e96fb4de3ba8b2df174d7c7af8ff76af1081.tar.gz spice-c914e96fb4de3ba8b2df174d7c7af8ff76af1081.tar.xz spice-c914e96fb4de3ba8b2df174d7c7af8ff76af1081.zip |
Handle preferred image compression messages
Diffstat (limited to 'server/red_worker.c')
-rw-r--r-- | server/red_worker.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/server/red_worker.c b/server/red_worker.c index 92377863..10717167 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -10266,6 +10266,27 @@ static int display_channel_handle_stream_report(DisplayChannelClient *dcc, return TRUE; } +static int display_channel_handle_preferred_compression(DisplayChannelClient *dcc, + SpiceMsgcDisplayPreferredCompression *pc) { + DisplayChannel *display_channel = DCC_TO_DC(dcc); + switch (pc->image_compression) { + case SPICE_IMAGE_COMPRESS_AUTO_LZ: + case SPICE_IMAGE_COMPRESS_AUTO_GLZ: + case SPICE_IMAGE_COMPRESS_QUIC: +#ifdef USE_LZ4 + case SPICE_IMAGE_COMPRESS_LZ4: +#endif + case SPICE_IMAGE_COMPRESS_LZ: + case SPICE_IMAGE_COMPRESS_GLZ: + case SPICE_IMAGE_COMPRESS_OFF: + display_channel->common.worker->image_compression = pc->image_compression; + return TRUE; + default: + spice_warning("preferred-compression: unsupported image compression setting"); + return FALSE; + } +} + static int display_channel_handle_message(RedChannelClient *rcc, uint32_t size, uint16_t type, void *message) { @@ -10282,6 +10303,10 @@ static int display_channel_handle_message(RedChannelClient *rcc, uint32_t size, case SPICE_MSGC_DISPLAY_STREAM_REPORT: return display_channel_handle_stream_report(dcc, (SpiceMsgcDisplayStreamReport *)message); + case SPICE_MSGC_DISPLAY_PREFERRED_COMPRESSION: + return display_channel_handle_preferred_compression(dcc, + (SpiceMsgcDisplayPreferredCompression *)message); + default: return red_channel_client_handle_message(rcc, size, type, message); } |