This avoids to expose some detail about the channel. Like other APIs implement it move close to the part that handle it instead of have everything in reds.c. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/inputs-channel.c | 18 +++++++----------- server/inputs-channel.h | 2 -- server/reds.c | 7 ------- 3 files changed, 7 insertions(+), 20 deletions(-) diff --git a/server/inputs-channel.c b/server/inputs-channel.c index 51e25969..3b2118f9 100644 --- a/server/inputs-channel.c +++ b/server/inputs-channel.c @@ -68,25 +68,20 @@ struct SpiceKbdState { /* track key press state */ bool key[0x80]; bool key_ext[0x80]; - RedsState *reds; + InputsChannel *inputs; }; static SpiceKbdInstance* inputs_channel_get_keyboard(InputsChannel *inputs); static SpiceMouseInstance* inputs_channel_get_mouse(InputsChannel *inputs); static SpiceTabletInstance* inputs_channel_get_tablet(InputsChannel *inputs); -static SpiceKbdState* spice_kbd_state_new(RedsState *reds) +static SpiceKbdState* spice_kbd_state_new(InputsChannel *inputs) { SpiceKbdState *st = g_new0(SpiceKbdState, 1); - st->reds = reds; + st->inputs = inputs; return st; } -RedsState* spice_kbd_state_get_server(SpiceKbdState *dev) -{ - return dev->reds; -} - struct SpiceMouseState { int dummy; }; @@ -485,9 +480,10 @@ static void inputs_channel_push_keyboard_modifiers(InputsChannel *inputs, uint8_ red_inputs_key_modifiers_item_new(modifiers)); } -void inputs_channel_on_keyboard_leds_change(InputsChannel *inputs, uint8_t leds) +SPICE_GNUC_VISIBLE int spice_server_kbd_leds(SpiceKbdInstance *sin, int leds) { - inputs_channel_push_keyboard_modifiers(inputs, leds); + inputs_channel_push_keyboard_modifiers(sin->st->inputs, leds); + return 0; } static void key_modifiers_sender(void *opaque) @@ -615,7 +611,7 @@ int inputs_channel_set_keyboard(InputsChannel *inputs, SpiceKbdInstance *keyboar return -1; } inputs->keyboard = keyboard; - inputs->keyboard->st = spice_kbd_state_new(red_channel_get_server(RED_CHANNEL(inputs))); + inputs->keyboard->st = spice_kbd_state_new(inputs); return 0; } diff --git a/server/inputs-channel.h b/server/inputs-channel.h index 1082d66c..945ba617 100644 --- a/server/inputs-channel.h +++ b/server/inputs-channel.h @@ -47,7 +47,6 @@ GType inputs_channel_get_type(void) G_GNUC_CONST; InputsChannel* inputs_channel_new(RedsState *reds); const VDAgentMouseState *inputs_channel_get_mouse_state(InputsChannel *inputs); -void inputs_channel_on_keyboard_leds_change(InputsChannel *inputs, uint8_t leds); void inputs_channel_set_tablet_logical_size(InputsChannel *inputs, int x_res, int y_res); int inputs_channel_set_keyboard(InputsChannel *inputs, SpiceKbdInstance *keyboard); @@ -56,7 +55,6 @@ int inputs_channel_set_tablet(InputsChannel *inputs, SpiceTabletInstance *tablet int inputs_channel_has_tablet(InputsChannel *inputs); void inputs_channel_detach_tablet(InputsChannel *inputs, SpiceTabletInstance *tablet); RedsState* spice_tablet_state_get_server(SpiceTabletState *dev); -RedsState* spice_kbd_state_get_server(SpiceKbdState *dev); gboolean inputs_channel_is_src_during_migrate(InputsChannel *inputs); void inputs_release_keys(InputsChannel *inputs); diff --git a/server/reds.c b/server/reds.c index 761afa77..9338b78b 100644 --- a/server/reds.c +++ b/server/reds.c @@ -4002,13 +4002,6 @@ SPICE_GNUC_VISIBLE int spice_server_add_renderer(SpiceServer *reds, const char * return 0; } -SPICE_GNUC_VISIBLE int spice_server_kbd_leds(SpiceKbdInstance *sin, int leds) -{ - RedsState *reds = spice_kbd_state_get_server(sin->st); - inputs_channel_on_keyboard_leds_change(reds->inputs_channel, leds); - return 0; -} - SPICE_GNUC_VISIBLE int spice_server_set_streaming_video(SpiceServer *reds, int value) { if (value != SPICE_STREAM_VIDEO_OFF && -- 2.14.3 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel