Now that pipe_item_init() does not require a RedChannelClient* argument anymore, the new_pipe_item_t callback function does not ever use the channel client object passed to it. So just remove this and simplify things. --- server/cursor-channel.c | 2 +- server/dcc.c | 15 ++++++++++++--- server/dcc.h | 6 ++---- server/inputs-channel.c | 3 +-- server/main-channel.c | 45 +++++++++++++++++++++++---------------------- server/red-channel.c | 2 +- server/red-channel.h | 2 +- 7 files changed, 41 insertions(+), 34 deletions(-) diff --git a/server/cursor-channel.c b/server/cursor-channel.c index 697d61d..c4304cc 100644 --- a/server/cursor-channel.c +++ b/server/cursor-channel.c @@ -132,7 +132,7 @@ static void cursor_set_item(CursorChannel *cursor, CursorItem *item) cursor->item = item ? cursor_item_ref(item) : NULL; } -static RedPipeItem *new_cursor_pipe_item(RedChannelClient *rcc, void *data, int num) +static RedPipeItem *new_cursor_pipe_item(void *data, int num) { RedCursorPipeItem *item = spice_malloc0(sizeof(RedCursorPipeItem)); diff --git a/server/dcc.c b/server/dcc.c index 038d74d..7ad8043 100644 --- a/server/dcc.c +++ b/server/dcc.c @@ -464,7 +464,7 @@ void dcc_start(DisplayChannelClient *dcc) if (reds_stream_is_plain_unix(rcc->stream) && red_channel_client_test_remote_cap(rcc, SPICE_DISPLAY_CAP_GL_SCANOUT)) { - red_channel_client_pipe_add(rcc, dcc_gl_scanout_item_new(rcc, NULL, 0)); + red_channel_client_pipe_add(rcc, dcc_gl_scanout_item_new(NULL, 0)); dcc_push_monitors_config(dcc); } } @@ -570,11 +570,13 @@ static RedSurfaceDestroyItem *red_surface_destroy_item_new(RedChannel *channel, return destroy; } -RedPipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc, void *data, int num) +RedPipeItem *dcc_gl_scanout_item_new(void *data, int num) { RedGlScanoutUnixItem *item = spice_new(RedGlScanoutUnixItem, 1); spice_return_val_if_fail(item != NULL, NULL); +// TODO TODO TODO +#if 0 /* FIXME: on !unix peer, start streaming with a video codec */ if (!reds_stream_is_plain_unix(rcc->stream) || !red_channel_client_test_remote_cap(rcc, SPICE_DISPLAY_CAP_GL_SCANOUT)) { @@ -582,19 +584,25 @@ RedPipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc, void *data, int num) red_channel_client_disconnect(rcc); return NULL; } +#endif red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_GL_SCANOUT); return &item->base; } -RedPipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num) +RedPipeItem *dcc_gl_draw_item_new(void *data, int num) { +// TODO TODO TODO +#if 0 DisplayChannelClient *dcc = RCC_TO_DCC(rcc); +#endif const SpiceMsgDisplayGlDraw *draw = data; RedGlDrawItem *item = spice_new(RedGlDrawItem, 1); spice_return_val_if_fail(item != NULL, NULL); +// TODO TODO TODO +#if 0 if (!red_channel_client_test_remote_cap(rcc, SPICE_DISPLAY_CAP_GL_SCANOUT)) { spice_printerr("FIXME: client does not support GL scanout"); red_channel_client_disconnect(rcc); @@ -602,6 +610,7 @@ RedPipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num) } dcc->gl_draw_ongoing = TRUE; +#endif item->draw = *draw; red_pipe_item_init(&item->base, RED_PIPE_ITEM_TYPE_GL_DRAW); diff --git a/server/dcc.h b/server/dcc.h index 509a6c6..6ca5ee7 100644 --- a/server/dcc.h +++ b/server/dcc.h @@ -214,10 +214,8 @@ int dcc_clear_surface_drawables_from_pipe (DisplayCha int wait_if_used); int dcc_drawable_is_in_pipe (DisplayChannelClient *dcc, Drawable *drawable); -RedPipeItem * dcc_gl_scanout_item_new (RedChannelClient *rcc, - void *data, int num); -RedPipeItem * dcc_gl_draw_item_new (RedChannelClient *rcc, - void *data, int num); +RedPipeItem * dcc_gl_scanout_item_new (void *data, int num); +RedPipeItem * dcc_gl_draw_item_new (void *data, int num); typedef struct compress_send_data_t { void* comp_buf; diff --git a/server/inputs-channel.c b/server/inputs-channel.c index da26cf6..efa7cbf 100644 --- a/server/inputs-channel.c +++ b/server/inputs-channel.c @@ -229,8 +229,7 @@ static uint8_t kbd_get_leds(SpiceKbdInstance *sin) return sif->get_leds(sin); } -static RedPipeItem *red_inputs_key_modifiers_item_new( - RedChannelClient *rcc, void *data, int num) +static RedPipeItem *red_inputs_key_modifiers_item_new(void *data, int num) { RedKeyModifiersPipeItem *item = spice_malloc(sizeof(RedKeyModifiersPipeItem)); diff --git a/server/main-channel.c b/server/main-channel.c index 7d55de7..0daacdc 100644 --- a/server/main-channel.c +++ b/server/main-channel.c @@ -221,7 +221,7 @@ typedef struct MainMouseModeItemInfo { int is_client_mouse_allowed; } MainMouseModeItemInfo; -static RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int num) +static RedPipeItem *main_mouse_mode_item_new(void *data, int num) { RedMouseModePipeItem *item = spice_malloc(sizeof(RedMouseModePipeItem)); MainMouseModeItemInfo *info = data; @@ -232,7 +232,7 @@ static RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, return &item->base; } -static RedPipeItem *red_ping_item_new(MainChannelClient *mcc, int size) +static RedPipeItem *red_ping_item_new(int size) { RedPingPipeItem *item = spice_malloc(sizeof(RedPingPipeItem)); @@ -241,7 +241,7 @@ static RedPipeItem *red_ping_item_new(MainChannelClient *mcc, int size) return &item->base; } -static RedPipeItem *main_agent_tokens_item_new(RedChannelClient *rcc, uint32_t num_tokens) +static RedPipeItem *main_agent_tokens_item_new(uint32_t num_tokens) { RedTokensPipeItem *item = spice_malloc(sizeof(RedTokensPipeItem)); @@ -250,7 +250,7 @@ static RedPipeItem *main_agent_tokens_item_new(RedChannelClient *rcc, uint32_t n return &item->base; } -static RedPipeItem *main_agent_data_item_new(RedChannelClient *rcc, uint8_t* data, size_t len, +static RedPipeItem *main_agent_data_item_new(uint8_t* data, size_t len, spice_marshaller_item_free_func free_data, void *opaque) { @@ -264,10 +264,12 @@ static RedPipeItem *main_agent_data_item_new(RedChannelClient *rcc, uint8_t* dat return &item->base; } -static RedPipeItem *main_init_item_new(MainChannelClient *mcc, - int connection_id, int display_channels_hint, int current_mouse_mode, - int is_client_mouse_allowed, int multi_media_time, - int ram_hint) +static RedPipeItem *main_init_item_new(int connection_id, + int display_channels_hint, + int current_mouse_mode, + int is_client_mouse_allowed, + int multi_media_time, + int ram_hint) { RedInitPipeItem *item = spice_malloc(sizeof(RedInitPipeItem)); @@ -281,7 +283,7 @@ static RedPipeItem *main_init_item_new(MainChannelClient *mcc, return &item->base; } -static RedPipeItem *main_name_item_new(MainChannelClient *mcc, const char *name) +static RedPipeItem *main_name_item_new(const char *name) { RedNamePipeItem *item = spice_malloc(sizeof(RedNamePipeItem) + strlen(name) + 1); @@ -292,7 +294,7 @@ static RedPipeItem *main_name_item_new(MainChannelClient *mcc, const char *name) return &item->base; } -static RedPipeItem *main_uuid_item_new(MainChannelClient *mcc, const uint8_t uuid[16]) +static RedPipeItem *main_uuid_item_new(const uint8_t uuid[16]) { RedUuidPipeItem *item = spice_malloc(sizeof(RedUuidPipeItem)); @@ -302,7 +304,7 @@ static RedPipeItem *main_uuid_item_new(MainChannelClient *mcc, const uint8_t uui return &item->base; } -static RedPipeItem *main_notify_item_new(RedChannelClient *rcc, void *data, int num) +static RedPipeItem *main_notify_item_new(void *data, int num) { RedNotifyPipeItem *item = spice_malloc(sizeof(RedNotifyPipeItem)); const char *msg = data; @@ -312,8 +314,7 @@ static RedPipeItem *main_notify_item_new(RedChannelClient *rcc, void *data, int return &item->base; } -static RedPipeItem *main_multi_media_time_item_new( - RedChannelClient *rcc, void *data, int num) +static RedPipeItem *main_multi_media_time_item_new(void *data, int num) { RedMultiMediaTimePipeItem *item, *info = data; @@ -352,7 +353,7 @@ int main_channel_client_push_ping(MainChannelClient *mcc, int size) if (mcc == NULL) { return FALSE; } - item = red_ping_item_new(mcc, size); + item = red_ping_item_new(size); red_channel_client_pipe_add_push(&mcc->base, item); return TRUE; } @@ -442,7 +443,7 @@ static void main_channel_marshall_agent_disconnected(RedChannelClient *rcc, void main_channel_client_push_agent_tokens(MainChannelClient *mcc, uint32_t num_tokens) { - RedPipeItem *item = main_agent_tokens_item_new(&mcc->base, num_tokens); + RedPipeItem *item = main_agent_tokens_item_new(num_tokens); red_channel_client_pipe_add_push(&mcc->base, item); } @@ -462,7 +463,7 @@ void main_channel_client_push_agent_data(MainChannelClient *mcc, uint8_t* data, { RedPipeItem *item; - item = main_agent_data_item_new(&mcc->base, data, len, free_data, opaque); + item = main_agent_data_item_new(data, len, free_data, opaque); red_channel_client_pipe_add_push(&mcc->base, item); } @@ -516,9 +517,9 @@ void main_channel_push_init(MainChannelClient *mcc, { RedPipeItem *item; - item = main_init_item_new(mcc, - mcc->connection_id, display_channels_hint, current_mouse_mode, - is_client_mouse_allowed, multi_media_time, ram_hint); + item = main_init_item_new(mcc->connection_id, display_channels_hint, + current_mouse_mode, is_client_mouse_allowed, + multi_media_time, ram_hint); red_channel_client_pipe_add_push(&mcc->base, item); } @@ -552,7 +553,7 @@ void main_channel_push_name(MainChannelClient *mcc, const char *name) SPICE_MAIN_CAP_NAME_AND_UUID)) return; - item = main_name_item_new(mcc, name); + item = main_name_item_new(name); red_channel_client_pipe_add_push(&mcc->base, item); } @@ -564,13 +565,13 @@ void main_channel_push_uuid(MainChannelClient *mcc, const uint8_t uuid[16]) SPICE_MAIN_CAP_NAME_AND_UUID)) return; - item = main_uuid_item_new(mcc, uuid); + item = main_uuid_item_new(uuid); red_channel_client_pipe_add_push(&mcc->base, item); } void main_channel_client_push_notify(MainChannelClient *mcc, const char *msg) { - RedPipeItem *item = main_notify_item_new(&mcc->base, (void *)msg, 1); + RedPipeItem *item = main_notify_item_new((void *)msg, 1); red_channel_client_pipe_add_push(&mcc->base, item); } diff --git a/server/red-channel.c b/server/red-channel.c index 68500dc..bf1ef2b 100644 --- a/server/red-channel.c +++ b/server/red-channel.c @@ -2275,7 +2275,7 @@ static int red_channel_pipes_create_batch(RedChannel *channel, RING_FOREACH_SAFE(link, next, &channel->clients) { rcc = SPICE_CONTAINEROF(link, RedChannelClient, channel_link); - item = (*creator)(rcc, data, num++); + item = (*creator)(data, num++); if (item) { (*pipe_add)(rcc, item); n++; diff --git a/server/red-channel.h b/server/red-channel.h index d169a9a..f7a5148 100644 --- a/server/red-channel.h +++ b/server/red-channel.h @@ -468,7 +468,7 @@ void red_channel_client_start_connectivity_monitoring(RedChannelClient *rcc, uin // to the RedPipeItem. // helper to push a new item to all channels -typedef RedPipeItem *(*new_pipe_item_t)(RedChannelClient *rcc, void *data, int num); +typedef RedPipeItem *(*new_pipe_item_t)(void *data, int num); int red_channel_pipes_new_add_push(RedChannel *channel, new_pipe_item_t creator, void *data); void red_channel_pipes_new_add(RedChannel *channel, new_pipe_item_t creator, void *data); void red_channel_pipes_new_add_tail(RedChannel *channel, new_pipe_item_t creator, void *data); -- 2.4.11 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel