mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2026-08-07 14:50:22 +00:00
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>
This commit is contained in:
parent
02adcf354e
commit
e4a6a1477e
@ -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)
|
||||
|
||||
@ -93,15 +93,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__ */
|
||||
|
||||
@ -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,
|
||||
};
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user