[Spice-devel] [PATCH 05/11] move all item creation in main-channel-client.c
Jonathon Jongsma
jjongsma at redhat.com
Thu May 12 20:45:12 UTC 2016
From: Frediano Ziglio <fziglio at redhat.com>
Move all core to create and destroy MainChannel pipe items in a single
place.
Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
server/main-channel-client.c | 34 ++++++++++++++++++++++++++++++++++
server/main-channel-client.h | 15 +++++++++------
server/main-channel.c | 29 +----------------------------
3 files changed, 44 insertions(+), 34 deletions(-)
diff --git a/server/main-channel-client.c b/server/main-channel-client.c
index 2a2fac5..ea09976 100644
--- a/server/main-channel-client.c
+++ b/server/main-channel-client.c
@@ -101,6 +101,17 @@ typedef struct RedNotifyPipeItem {
char *msg;
} RedNotifyPipeItem;
+typedef struct RedMouseModePipeItem {
+ RedPipeItem base;
+ int current_mode;
+ int is_client_mouse_allowed;
+} RedMouseModePipeItem;
+
+typedef struct RedMultiMediaTimePipeItem {
+ RedPipeItem base;
+ int time;
+} RedMultiMediaTimePipeItem;
+
#define ZERO_BUF_SIZE 4096
static const uint8_t zero_page[ZERO_BUF_SIZE] = {0};
@@ -280,6 +291,29 @@ void main_channel_client_push_notify(MainChannelClient *mcc, const char *msg)
red_channel_client_pipe_add_push(&mcc->base, item);
}
+RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num)
+{
+ RedMouseModePipeItem *item = spice_malloc(sizeof(RedMouseModePipeItem));
+ MainMouseModeItemInfo *info = data;
+
+ red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MOUSE_MODE);
+ item->current_mode = info->current_mode;
+ item->is_client_mouse_allowed = info->is_client_mouse_allowed;
+ return &item->base;
+}
+
+RedPipeItem *main_multi_media_time_item_new(RedChannelClient *rcc,
+ void *data, int num)
+{
+ MainMultiMediaTimeItemInfo *info = data;
+ RedMultiMediaTimePipeItem *item;
+
+ item = spice_malloc(sizeof(RedMultiMediaTimePipeItem));
+ red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MULTI_MEDIA_TIME);
+ item->time = info->time;
+ return &item->base;
+}
+
void main_channel_client_handle_migrate_connected(MainChannelClient *mcc,
int success,
int seamless)
diff --git a/server/main-channel-client.h b/server/main-channel-client.h
index 5bbaac6..439e812 100644
--- a/server/main-channel-client.h
+++ b/server/main-channel-client.h
@@ -94,15 +94,18 @@ enum {
RED_PIPE_ITEM_TYPE_MAIN_AGENT_CONNECTED_TOKENS,
};
-typedef struct RedMouseModePipeItem {
- RedPipeItem base;
+typedef struct MainMouseModeItemInfo {
int current_mode;
int is_client_mouse_allowed;
-} RedMouseModePipeItem;
+} MainMouseModeItemInfo;
-typedef struct RedMultiMediaTimePipeItem {
- RedPipeItem base;
+RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num);
+
+typedef struct MainMultiMediaTimeItemInfo {
int time;
-} RedMultiMediaTimePipeItem;
+} MainMultiMediaTimeItemInfo;
+
+RedPipeItem *main_multi_media_time_item_new(RedChannelClient *rcc,
+ void *data, int num);
#endif /* __MAIN_CHANNEL_CLIENT_H__ */
diff --git a/server/main-channel.c b/server/main-channel.c
index 0464186..4808658 100644
--- a/server/main-channel.c
+++ b/server/main-channel.c
@@ -56,33 +56,6 @@ RedClient *main_channel_get_client_by_link_id(MainChannel *main_chan, uint32_t c
return NULL;
}
-typedef struct MainMouseModeItemInfo {
- int current_mode;
- int is_client_mouse_allowed;
-} MainMouseModeItemInfo;
-
-static RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num)
-{
- RedMouseModePipeItem *item = spice_malloc(sizeof(RedMouseModePipeItem));
- MainMouseModeItemInfo *info = data;
-
- red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MOUSE_MODE);
- item->current_mode = info->current_mode;
- item->is_client_mouse_allowed = info->is_client_mouse_allowed;
- return &item->base;
-}
-
-static RedPipeItem *main_multi_media_time_item_new(RedChannelClient *rcc,
- void *data, int num)
-{
- RedMultiMediaTimePipeItem *item, *info = data;
-
- item = spice_malloc(sizeof(RedMultiMediaTimePipeItem));
- red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_MAIN_MULTI_MEDIA_TIME);
- item->time = info->time;
- return &item->base;
-}
-
static void main_channel_push_channels(MainChannelClient *mcc)
{
if (red_client_during_migrate_at_target((main_channel_client_get_base(mcc))->client)) {
@@ -148,7 +121,7 @@ static int main_channel_handle_migrate_data(RedChannelClient *rcc,
void main_channel_push_multi_media_time(MainChannel *main_chan, int time)
{
- RedMultiMediaTimePipeItem info = {
+ MainMultiMediaTimeItemInfo info = {
.time = time,
};
--
2.4.11
More information about the Spice-devel
mailing list