Support new GCond/GMutex interface with former GLib. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/glib-compat.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++ server/gstreamer-encoder.c | 1 + 2 files changed, 70 insertions(+) diff --git a/server/glib-compat.h b/server/glib-compat.h index 8a27afe..d4ff550 100644 --- a/server/glib-compat.h +++ b/server/glib-compat.h @@ -44,4 +44,73 @@ g_queue_remove_boolean(GQueue *queue, gconstpointer data) #define g_queue_remove g_queue_remove_boolean #endif +#if !GLIB_CHECK_VERSION(2,32,0) +typedef struct { + GMutex *mtx_compat; +} GMutexCompat; +#define GMutex GMutexCompat + +static inline void +g_mutex_lock_compat(GMutexCompat *mtx) +{ + g_mutex_lock(mtx->mtx_compat); +} +#undef g_mutex_lock +#define g_mutex_lock(mtx) g_mutex_lock_compat(mtx) +static inline void +g_mutex_unlock_compat(GMutexCompat *mtx) +{ + g_mutex_unlock(mtx->mtx_compat); +} +#undef g_mutex_unlock +#define g_mutex_unlock(mtx) g_mutex_unlock_compat(mtx) + +typedef struct { + GCond *cond_compat; +} GCondCompat; +#define GCond GCondCompat + +static inline void +g_cond_signal_compat(GCondCompat *cond) +{ + g_cond_signal(cond->cond_compat); +} +#undef g_cond_signal +#define g_cond_signal(cond) g_cond_signal_compat(cond) + +static inline void +g_cond_wait_compat(GCondCompat *cond, GMutexCompat *mtx) +{ + g_cond_wait(cond->cond_compat, mtx->mtx_compat); +} +#undef g_cond_wait +#define g_cond_wait(cond, mtx) g_cond_wait_compat(cond, mtx) + +static inline void +g_mutex_init(GMutexCompat *mtx) +{ + mtx->mtx_compat = g_mutex_new(); +} + +static inline void +g_cond_init(GCondCompat *cond) +{ + cond->cond_compat = g_cond_new(); +} + +static inline void +g_mutex_clear(GMutexCompat *mtx) +{ + g_mutex_free(mtx->mtx_compat); + mtx->mtx_compat = NULL; +} + +static inline void +g_cond_clear(GCondCompat *cond) +{ + g_cond_free(cond->cond_compat); + cond->cond_compat = NULL; +} +#endif + #endif /* GLIB_COMPAT_H_ */ diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c index 3d5f8a0..c419bb6 100644 --- a/server/gstreamer-encoder.c +++ b/server/gstreamer-encoder.c @@ -29,6 +29,7 @@ #include "red-common.h" #include "video-encoder.h" #include "utils.h" +#include "glib-compat.h" #define SPICE_GST_DEFAULT_FPS 30 -- 2.7.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel