Put more event loop code in event-loop.c. This is a preparation patch for the next one. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/event-loop.c | 58 +++++++++++++++++++++++++++++++++++++++++++++ server/red-common.h | 1 + server/reds.c | 54 ----------------------------------------- 3 files changed, 59 insertions(+), 54 deletions(-) diff --git a/server/event-loop.c b/server/event-loop.c index 812c3a53b..1ccfd671f 100644 --- a/server/event-loop.c +++ b/server/event-loop.c @@ -264,3 +264,61 @@ const SpiceCoreInterfaceInternal event_loop_core = { .watch_update_mask = watch_update_mask, .watch_remove = watch_remove, }; + +/* + * Adapter for SpiceCodeInterface + */ + +static SpiceTimer *adapter_timer_add(const SpiceCoreInterfaceInternal *iface, SpiceTimerFunc func, void *opaque) +{ + return iface->public_interface->timer_add(func, opaque); +} + +static void adapter_timer_start(const SpiceCoreInterfaceInternal *iface, SpiceTimer *timer, uint32_t ms) +{ + iface->public_interface->timer_start(timer, ms); +} + +static void adapter_timer_cancel(const SpiceCoreInterfaceInternal *iface, SpiceTimer *timer) +{ + iface->public_interface->timer_cancel(timer); +} + +static void adapter_timer_remove(const SpiceCoreInterfaceInternal *iface, SpiceTimer *timer) +{ + iface->public_interface->timer_remove(timer); +} + +static SpiceWatch *adapter_watch_add(const SpiceCoreInterfaceInternal *iface, + int fd, int event_mask, SpiceWatchFunc func, void *opaque) +{ + // note: Qemu API is fine having a SOCKET on Windows + return iface->public_interface->watch_add(fd, event_mask, func, opaque); +} + +static void adapter_watch_update_mask(const SpiceCoreInterfaceInternal *iface, SpiceWatch *watch, int event_mask) +{ + iface->public_interface->watch_update_mask(watch, event_mask); +} + +static void adapter_watch_remove(const SpiceCoreInterfaceInternal *iface, SpiceWatch *watch) +{ + iface->public_interface->watch_remove(watch); +} + +static void adapter_channel_event(const SpiceCoreInterfaceInternal *iface, int event, SpiceChannelEventInfo *info) +{ + if (iface->public_interface->base.minor_version >= 3 && iface->public_interface->channel_event != NULL) + iface->public_interface->channel_event(event, info); +} + +const SpiceCoreInterfaceInternal core_interface_adapter = { + .timer_add = adapter_timer_add, + .timer_start = adapter_timer_start, + .timer_cancel = adapter_timer_cancel, + .timer_remove = adapter_timer_remove, + .watch_add = adapter_watch_add, + .watch_update_mask = adapter_watch_update_mask, + .watch_remove = adapter_watch_remove, + .channel_event = adapter_channel_event, +}; diff --git a/server/red-common.h b/server/red-common.h index 223f28690..22ea8fc37 100644 --- a/server/red-common.h +++ b/server/red-common.h @@ -71,6 +71,7 @@ struct SpiceCoreInterfaceInternal { }; extern const SpiceCoreInterfaceInternal event_loop_core; +extern const SpiceCoreInterfaceInternal core_interface_adapter; typedef struct RedsState RedsState; diff --git a/server/reds.c b/server/reds.c index a3795ab90..f432f55a4 100644 --- a/server/reds.c +++ b/server/reds.c @@ -83,60 +83,6 @@ static void reds_client_monitors_config(RedsState *reds, VDAgentMonitorsConfig * static gboolean reds_use_client_monitors_config(RedsState *reds); static void reds_set_video_codecs(RedsState *reds, GArray *video_codecs); -static SpiceTimer *adapter_timer_add(const SpiceCoreInterfaceInternal *iface, SpiceTimerFunc func, void *opaque) -{ - return iface->public_interface->timer_add(func, opaque); -} - -static void adapter_timer_start(const SpiceCoreInterfaceInternal *iface, SpiceTimer *timer, uint32_t ms) -{ - iface->public_interface->timer_start(timer, ms); -} - -static void adapter_timer_cancel(const SpiceCoreInterfaceInternal *iface, SpiceTimer *timer) -{ - iface->public_interface->timer_cancel(timer); -} - -static void adapter_timer_remove(const SpiceCoreInterfaceInternal *iface, SpiceTimer *timer) -{ - iface->public_interface->timer_remove(timer); -} - -static SpiceWatch *adapter_watch_add(const SpiceCoreInterfaceInternal *iface, - int fd, int event_mask, SpiceWatchFunc func, void *opaque) -{ - // note: Qemu API is fine having a SOCKET on Windows - return iface->public_interface->watch_add(fd, event_mask, func, opaque); -} - -static void adapter_watch_update_mask(const SpiceCoreInterfaceInternal *iface, SpiceWatch *watch, int event_mask) -{ - iface->public_interface->watch_update_mask(watch, event_mask); -} - -static void adapter_watch_remove(const SpiceCoreInterfaceInternal *iface, SpiceWatch *watch) -{ - iface->public_interface->watch_remove(watch); -} - -static void adapter_channel_event(const SpiceCoreInterfaceInternal *iface, int event, SpiceChannelEventInfo *info) -{ - if (iface->public_interface->base.minor_version >= 3 && iface->public_interface->channel_event != NULL) - iface->public_interface->channel_event(event, info); -} - -static const SpiceCoreInterfaceInternal core_interface_adapter = { - .timer_add = adapter_timer_add, - .timer_start = adapter_timer_start, - .timer_cancel = adapter_timer_cancel, - .timer_remove = adapter_timer_remove, - .watch_add = adapter_watch_add, - .watch_update_mask = adapter_watch_update_mask, - .watch_remove = adapter_watch_remove, - .channel_event = adapter_channel_event, -}; - /* Debugging only variable: allow multiple client connections to the spice * server */ #define SPICE_DEBUG_ALLOW_MC_ENV "SPICE_DEBUG_ALLOW_MC" -- 2.20.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel