From b722d3d7f365b106794a3f40435ab220098959c5 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 10 Nov 2009 21:14:22 +0100 Subject: configure.ac: require GLib 2.12 Drop the required GLib version from 2.16 to 2.12, because many current systems still don't have GLib 2.16. This requires several new compatibility functions in glib_compat.h. --- src/conf.c | 1 + src/glib_compat.h | 21 ++++++++++++++++++++- src/input/curl_input_plugin.c | 1 + src/input_stream.h | 4 ++++ src/listen.c | 1 + src/main.c | 2 ++ src/output/httpd_client.c | 1 + src/playlist_list.c | 12 ++++++++++++ src/state_file.c | 1 + 9 files changed, 43 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/conf.c b/src/conf.c index 4da44c775..647ddec38 100644 --- a/src/conf.c +++ b/src/conf.c @@ -21,6 +21,7 @@ #include "utils.h" #include "tokenizer.h" #include "path.h" +#include "glib_compat.h" #include diff --git a/src/glib_compat.h b/src/glib_compat.h index 679307fb3..641fef99a 100644 --- a/src/glib_compat.h +++ b/src/glib_compat.h @@ -28,9 +28,28 @@ #include +#if !GLIB_CHECK_VERSION(2,14,0) + +#define g_queue_clear(q) do { g_queue_free(q); q = g_queue_new(); } while (0) + +static inline guint +g_timeout_add_seconds(guint interval, GSourceFunc function, gpointer data) +{ + return g_timeout_add(interval * 1000, function, data); +} + +#endif /* !2.14 */ + #if !GLIB_CHECK_VERSION(2,16,0) -static char * +static inline void +g_propagate_prefixed_error(GError **dest_r, GError *src, + G_GNUC_UNUSED const gchar *format, ...) +{ + g_propagate_error(dest_r, src); +} + +static inline char * g_uri_escape_string(const char *unescaped, G_GNUC_UNUSED const char *reserved_chars_allowed, G_GNUC_UNUSED gboolean allow_utf8) diff --git a/src/input/curl_input_plugin.c b/src/input/curl_input_plugin.c index c3928a09b..b8e9435a0 100644 --- a/src/input/curl_input_plugin.c +++ b/src/input/curl_input_plugin.c @@ -23,6 +23,7 @@ #include "config.h" #include "tag.h" #include "icy_metadata.h" +#include "glib_compat.h" #include diff --git a/src/input_stream.h b/src/input_stream.h index 9e4a526ef..edecb8460 100644 --- a/src/input_stream.h +++ b/src/input_stream.h @@ -26,6 +26,10 @@ #include #include +#if !GLIB_CHECK_VERSION(2,14,0) +typedef gint64 goffset; +#endif + struct input_stream { /** * the plugin which implements this input stream diff --git a/src/listen.c b/src/listen.c index 668a8077c..c1611d4f0 100644 --- a/src/listen.c +++ b/src/listen.c @@ -22,6 +22,7 @@ #include "client.h" #include "conf.h" #include "fd_util.h" +#include "glib_compat.h" #include "config.h" #include diff --git a/src/main.c b/src/main.c index 70166fefb..2c970ba0a 100644 --- a/src/main.c +++ b/src/main.c @@ -111,8 +111,10 @@ glue_mapper_init(void) const char *music_dir, *playlist_dir; music_dir = config_get_path(CONF_MUSIC_DIR); +#if GLIB_CHECK_VERSION(2,14,0) if (music_dir == NULL) music_dir = g_get_user_special_dir(G_USER_DIRECTORY_MUSIC); +#endif playlist_dir = config_get_path(CONF_PLAYLIST_DIR); diff --git a/src/output/httpd_client.c b/src/output/httpd_client.c index 8157ebb44..62ede81be 100644 --- a/src/output/httpd_client.c +++ b/src/output/httpd_client.c @@ -22,6 +22,7 @@ #include "fifo_buffer.h" #include "page.h" #include "icy_server.h" +#include "glib_compat.h" #include #include diff --git a/src/playlist_list.c b/src/playlist_list.c index 2c6237ed4..d6359463e 100644 --- a/src/playlist_list.c +++ b/src/playlist_list.c @@ -104,6 +104,18 @@ playlist_list_global_finish(void) playlist_plugin_finish(playlist_plugins[i]); } +/* g_uri_parse_scheme() was introduced in GLib 2.16 */ +#if !GLIB_CHECK_VERSION(2,16,0) +static char * +g_uri_parse_scheme(const char *uri) +{ + const char *end = strstr(uri, "://"); + if (end == NULL) + return NULL; + return g_strndup(uri, end - uri); +} +#endif + struct playlist_provider * playlist_list_open_uri(const char *uri) { diff --git a/src/state_file.c b/src/state_file.c index aa66720c1..4c7dab426 100644 --- a/src/state_file.c +++ b/src/state_file.c @@ -22,6 +22,7 @@ #include "playlist.h" #include "playlist_state.h" #include "volume.h" +#include "glib_compat.h" #include #include -- cgit v1.2.3