summaryrefslogtreecommitdiff
path: root/server/main-channel-client.c
diff options
context:
space:
mode:
authorFrediano Ziglio <fziglio@redhat.com>2016-05-06 10:34:52 +0100
committerJonathon Jongsma <jjongsma@redhat.com>2016-05-24 13:41:08 -0500
commite4a6a1477e23c213ed6bb9fab34e9d78710775bc (patch)
tree0e5a9ab3cf8e2745ad1eee85b31d0ab93bb01fb3 /server/main-channel-client.c
parent02adcf354eeec6a6a0400443d6d79d8f61ff0b8e (diff)
move all item creation in main-channel-client.c
Move all core to create and destroy MainChannel pipe items in a single place. Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Diffstat (limited to 'server/main-channel-client.c')
-rw-r--r--server/main-channel-client.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/server/main-channel-client.c b/server/main-channel-client.c
index 1e3c443f..4407e8b6 100644
--- a/server/main-channel-client.c
+++ b/server/main-channel-client.c
@@ -103,6 +103,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};
@@ -297,6 +308,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)