X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Finit.c;h=bcf1ad3db9821231cb1b3a11dc1533b85cf6f85c;hb=HEAD;hp=bfc67dd033bb4d994a9d2fc9cb21c29ea89c228f;hpb=030e31fda2fd37c7cd4237bc325c82cac9d31689;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/init.c b/libchimara/init.c index bfc67dd..bcf1ad3 100644 --- a/libchimara/init.c +++ b/libchimara/init.c @@ -1,11 +1,14 @@ #include #include #include +#if defined(GSTREAMER_0_10_SOUND) || defined(GSTREAMER_1_0_SOUND) +#include +#endif static gboolean chimara_initialized = FALSE; /* This function is called at every entry point of the library, to set up -threads and gettext. It is NOT called from Glk functions. */ +gettext and GStreamer. It is NOT called from Glk functions. */ void chimara_init(void) { @@ -14,17 +17,15 @@ chimara_init(void) /* Setup gettext */ bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); - - /* Make sure threads have been initialized */ - if(!g_thread_supported()) - g_error(_("In order to use the Chimara library, you must initialize" - " the thread system by calling g_threads_init() and " - "gdk_threads_init() BEFORE the initial call to gtk_init() in " - "your main program.")); - - /* Initialize thread-private data */ - extern GPrivate *glk_data_key; - glk_data_key = g_private_new(NULL); + +#if defined(GSTREAMER_0_10_SOUND) || defined(GSTREAMER_1_0_SOUND) + /* Make sure GStreamer has been initialized if it hasn't been already; + in particular, if you want your program to parse GStreamer command line + options then you should do it yourself, before gtk_init(). */ + + if( !gst_is_initialized() ) + gst_init(NULL, NULL); +#endif } }