From 54f4fda29cf284a03081c2316b99b46073724617 Mon Sep 17 00:00:00 2001 From: Jonathon Jongsma Date: Tue, 27 Jan 2015 14:07:01 -0600 Subject: Move streaming_video to RedsState struct Also requires adding reds_get_streaming_video() accessor so that other files can check this value. --- server/red-dispatcher.c | 6 +++--- server/reds-private.h | 1 + server/reds.c | 9 +++++++-- server/reds.h | 2 +- server/stream.c | 2 +- 5 files changed, 13 insertions(+), 7 deletions(-) (limited to 'server') diff --git a/server/red-dispatcher.c b/server/red-dispatcher.c index 6a115984..00e24232 100644 --- a/server/red-dispatcher.c +++ b/server/red-dispatcher.c @@ -723,9 +723,9 @@ void red_dispatcher_set_mm_time(uint32_t mm_time) static int calc_compression_level(void) { - spice_return_val_if_fail(streaming_video != STREAM_VIDEO_INVALID, -1); + spice_return_val_if_fail(reds_get_streaming_video(reds) != STREAM_VIDEO_INVALID, -1); - if ((streaming_video != STREAM_VIDEO_OFF) || + if ((reds_get_streaming_video(reds) != STREAM_VIDEO_OFF) || (image_compression != SPICE_IMAGE_COMPRESS_QUIC)) { return 0; } else { @@ -756,7 +756,7 @@ void red_dispatcher_on_sv_change(void) RedDispatcher *now = dispatchers; while (now) { now->qxl->st->qif->set_compression_level(now->qxl, compression_level); - payload.streaming_video = streaming_video; + payload.streaming_video = reds_get_streaming_video(reds); dispatcher_send_message(&now->dispatcher, RED_WORKER_MESSAGE_SET_STREAMING_VIDEO, &payload); diff --git a/server/reds-private.h b/server/reds-private.h index b5caf87e..86ba5045 100644 --- a/server/reds-private.h +++ b/server/reds-private.h @@ -201,6 +201,7 @@ struct RedsState { uint8_t spice_uuid[16]; int ticketing_enabled; + uint32_t streaming_video; }; #endif diff --git a/server/reds.c b/server/reds.c index 945e4e1c..fa6dc6a8 100644 --- a/server/reds.c +++ b/server/reds.c @@ -91,7 +91,6 @@ SpiceCoreInterface *core = NULL; static pthread_mutex_t *lock_cs; static long *lock_count; -uint32_t streaming_video = STREAM_VIDEO_FILTER; spice_image_compression_t image_compression = SPICE_IMAGE_COMPRESS_AUTO_GLZ; spice_wan_compression_t jpeg_state = SPICE_WAN_COMPRESSION_AUTO; spice_wan_compression_t zlib_glz_state = SPICE_WAN_COMPRESSION_AUTO; @@ -3319,6 +3318,7 @@ SPICE_GNUC_VISIBLE SpiceServer *spice_server_new(void) reds->spice_uuid_is_set = FALSE; memset(reds->spice_uuid, 0, sizeof(reds->spice_uuid)); reds->ticketing_enabled = TRUE; /* ticketing enabled by default */ + reds->streaming_video = STREAM_VIDEO_FILTER; return reds; } @@ -3661,11 +3661,16 @@ SPICE_GNUC_VISIBLE int spice_server_set_streaming_video(SpiceServer *s, int valu value != SPICE_STREAM_VIDEO_ALL && value != SPICE_STREAM_VIDEO_FILTER) return -1; - streaming_video = value; + s->streaming_video = value; red_dispatcher_on_sv_change(); return 0; } +uint32_t reds_get_streaming_video(RedsState *reds) +{ + return reds->streaming_video; +} + SPICE_GNUC_VISIBLE int spice_server_set_playback_compression(SpiceServer *s, int enable) { spice_assert(reds == s); diff --git a/server/reds.h b/server/reds.h index 673d6758..b378405c 100644 --- a/server/reds.h +++ b/server/reds.h @@ -75,7 +75,6 @@ enum { }; extern struct SpiceCoreInterface *core; -extern uint32_t streaming_video; extern spice_image_compression_t image_compression; extern spice_wan_compression_t jpeg_state; extern spice_wan_compression_t zlib_glz_state; @@ -115,5 +114,6 @@ void reds_on_main_channel_migrate(RedsState *reds, MainChannelClient *mcc); void reds_on_char_device_state_destroy(RedsState *reds, SpiceCharDeviceState *dev); void reds_set_client_mm_time_latency(RedsState *reds, RedClient *client, uint32_t latency); +uint32_t reds_get_streaming_video(RedsState *reds); #endif diff --git a/server/stream.c b/server/stream.c index 4796e830..afcf722c 100644 --- a/server/stream.c +++ b/server/stream.c @@ -154,7 +154,7 @@ static void update_copy_graduality(Drawable *drawable) spice_return_if_fail(drawable->red_drawable->type == QXL_DRAW_COPY); /* TODO: global property -> per dc/dcc */ - if (streaming_video != STREAM_VIDEO_FILTER) { + if (reds_get_streaming_video(reds) != STREAM_VIDEO_FILTER) { drawable->copy_bitmap_graduality = BITMAP_GRADUAL_INVALID; return; } -- cgit