--- server/red_worker.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/server/red_worker.c b/server/red_worker.c index 29d6d6d..af2f1d6 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -10276,6 +10276,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) { @@ -10292,6 +10313,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); } -- 1.9.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel