diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-09-13 21:16:22 +0200 |
---|---|---|
committer | Frediano Ziglio <fziglio@redhat.com> | 2015-11-05 12:40:55 +0000 |
commit | e603e96837d882174c55dc8e01750d0116881077 (patch) | |
tree | f72c6f9e0c1a0830baf1c4412b4bc7d6feedf6ef | |
parent | 81cf3997db6590a9f52f86307ac5f836ab5e03b2 (diff) | |
download | spice-e603e96837d882174c55dc8e01750d0116881077.tar.gz spice-e603e96837d882174c55dc8e01750d0116881077.tar.xz spice-e603e96837d882174c55dc8e01750d0116881077.zip |
worker: move MonitorsConfig to display channel
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
-rw-r--r-- | server/display-channel.c | 40 | ||||
-rw-r--r-- | server/display-channel.h | 1 | ||||
-rw-r--r-- | server/red_worker.c | 41 |
3 files changed, 41 insertions, 41 deletions
diff --git a/server/display-channel.c b/server/display-channel.c index c7cb3dff..3dc5a940 100644 --- a/server/display-channel.c +++ b/server/display-channel.c @@ -81,3 +81,43 @@ MonitorsConfig* monitors_config_new(QXLHead *heads, ssize_t nheads, ssize_t max) return mc; } + +static MonitorsConfigItem *monitors_config_item_new(RedChannel* channel, + MonitorsConfig *monitors_config) +{ + MonitorsConfigItem *mci; + + mci = (MonitorsConfigItem *)spice_malloc(sizeof(*mci)); + mci->monitors_config = monitors_config; + + red_channel_pipe_item_init(channel, + &mci->pipe_item, PIPE_ITEM_TYPE_MONITORS_CONFIG); + return mci; +} + +static inline void red_monitors_config_item_add(DisplayChannelClient *dcc) +{ + DisplayChannel *dc = DCC_TO_DC(dcc); + MonitorsConfigItem *mci; + + mci = monitors_config_item_new(dcc->common.base.channel, + monitors_config_ref(dc->monitors_config)); + red_channel_client_pipe_add(&dcc->common.base, &mci->pipe_item); +} + +void dcc_push_monitors_config(DisplayChannelClient *dcc) +{ + MonitorsConfig *monitors_config = DCC_TO_DC(dcc)->monitors_config; + + if (monitors_config == NULL) { + spice_warning("monitors_config is NULL"); + return; + } + + if (!red_channel_client_test_remote_cap(&dcc->common.base, + SPICE_DISPLAY_CAP_MONITORS_CONFIG)) { + return; + } + red_monitors_config_item_add(dcc); + red_channel_client_push(&dcc->common.base); +} diff --git a/server/display-channel.h b/server/display-channel.h index 48e28a62..d6d65e02 100644 --- a/server/display-channel.h +++ b/server/display-channel.h @@ -296,6 +296,7 @@ DisplayChannelClient* dcc_new (DisplayCha int num_common_caps, uint32_t *caps, int num_caps); +void dcc_push_monitors_config (DisplayChannelClient *dcc); typedef struct DrawablePipeItem { RingItem base; /* link for a list of pipe items held by Drawable */ diff --git a/server/red_worker.c b/server/red_worker.c index 4a431542..2ba18960 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -539,7 +539,6 @@ static void display_channel_client_release_item_before_push(DisplayChannelClient PipeItem *item); static void display_channel_client_release_item_after_push(DisplayChannelClient *dcc, PipeItem *item); -static void dcc_push_monitors_config(DisplayChannelClient *dcc); /* * Macros to make iterating over stuff easier @@ -9523,29 +9522,6 @@ void handle_dev_destroy_surfaces(void *opaque, void *payload) dev_destroy_surfaces(worker); } -static MonitorsConfigItem *monitors_config_item_new( - RedChannel* channel, MonitorsConfig *monitors_config) -{ - MonitorsConfigItem *mci; - - mci = (MonitorsConfigItem *)spice_malloc(sizeof(*mci)); - mci->monitors_config = monitors_config; - - red_channel_pipe_item_init(channel, - &mci->pipe_item, PIPE_ITEM_TYPE_MONITORS_CONFIG); - return mci; -} - -static inline void red_monitors_config_item_add(DisplayChannelClient *dcc) -{ - DisplayChannel *dc = DCC_TO_DC(dcc); - MonitorsConfigItem *mci; - - mci = monitors_config_item_new(dcc->common.base.channel, - monitors_config_ref(dc->monitors_config)); - red_channel_client_pipe_add(&dcc->common.base, &mci->pipe_item); -} - static void display_update_monitors_config(DisplayChannel *display, QXLMonitorsConfig *config, uint16_t count, uint16_t max_allowed) @@ -9558,23 +9534,6 @@ static void display_update_monitors_config(DisplayChannel *display, monitors_config_new(config->heads, count, max_allowed); } -static void dcc_push_monitors_config(DisplayChannelClient *dcc) -{ - MonitorsConfig *monitors_config = DCC_TO_DC(dcc)->monitors_config; - - if (monitors_config == NULL) { - spice_warning("monitors_config is NULL"); - return; - } - - if (!red_channel_client_test_remote_cap(&dcc->common.base, - SPICE_DISPLAY_CAP_MONITORS_CONFIG)) { - return; - } - red_monitors_config_item_add(dcc); - red_channel_client_push(&dcc->common.base); -} - static void red_worker_push_monitors_config(RedWorker *worker) { DisplayChannelClient *dcc; |