[grilo/master.msvc: 7/13] src/*.h: Mark all public symbols with _GRL_EXTERN



commit cc7f93335b8080efe646970fd69b1b362d02500f
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Wed Apr 22 14:33:02 2020 +0800

    src/*.h: Mark all public symbols with _GRL_EXTERN
    
    This way, we can export symbols in the main Grilo library by using compiler
    directives, where needed, such as on Visual Studio.

 src/data/grl-config.h            |  32 ++++++++
 src/data/grl-data.h              |  37 +++++++++
 src/data/grl-media.h             | 170 ++++++++++++++++++++++++++++++++++++++-
 src/data/grl-related-keys.h      |  24 ++++++
 src/grilo.h                      |   3 +
 src/grl-caps.h                   |  11 +++
 src/grl-log.h                    |   8 +-
 src/grl-metadata-key.h           |   6 ++
 src/grl-multiple.h               |   3 +
 src/grl-operation-options.h      |  21 +++++
 src/grl-operation.h              |   6 ++
 src/grl-plugin.h                 |  12 +++
 src/grl-range-value.h            |   7 ++
 src/grl-registry.h               |  28 +++++++
 src/grl-source.h                 |  38 +++++++++
 src/grl-type-builtins.h.template |   3 +-
 src/grl-util.h                   |   4 +
 src/grl-value-helper.h           |   6 ++
 18 files changed, 415 insertions(+), 4 deletions(-)
---
diff --git a/src/data/grl-config.h b/src/data/grl-config.h
index df5536c..de4150f 100644
--- a/src/data/grl-config.h
+++ b/src/data/grl-config.h
@@ -100,69 +100,101 @@ struct _GrlConfigClass
   gpointer _grl_reserved[GRL_PADDING];
 };
 
+_GRL_EXTERN
 void grl_config_set_plugin (GrlConfig *config, const gchar *plugin);
 
+_GRL_EXTERN
 void grl_config_set_source (GrlConfig *config, const gchar *source);
 
+_GRL_EXTERN
 void grl_config_set_api_key (GrlConfig *config, const gchar *key);
 
+_GRL_EXTERN
 void grl_config_set_api_key_blob (GrlConfig *config, const guint8 *blob, gsize size);
 
+_GRL_EXTERN
 void grl_config_set_api_token (GrlConfig *config, const gchar *token);
 
+_GRL_EXTERN
 void grl_config_set_api_token_secret (GrlConfig *config, const gchar *secret);
 
+_GRL_EXTERN
 void grl_config_set_api_secret (GrlConfig *config, const gchar *secret);
 
+_GRL_EXTERN
 void grl_config_set_username (GrlConfig *config, const gchar *username);
 
+_GRL_EXTERN
 void grl_config_set_password (GrlConfig *config, const gchar *password);
 
+_GRL_EXTERN
 gchar *grl_config_get_plugin (GrlConfig *config);
 
+_GRL_EXTERN
 gchar *grl_config_get_source (GrlConfig *config);
 
+_GRL_EXTERN
 gchar *grl_config_get_api_key (GrlConfig *config);
 
+_GRL_EXTERN
 guint8 *grl_config_get_api_key_blob (GrlConfig *config, gsize *size);
 
+_GRL_EXTERN
 gchar *grl_config_get_api_token (GrlConfig *config);
 
+_GRL_EXTERN
 gchar *grl_config_get_api_token_secret (GrlConfig *config);
 
+_GRL_EXTERN
 gchar *grl_config_get_api_secret (GrlConfig *config);
 
+_GRL_EXTERN
 gchar *grl_config_get_username (GrlConfig *config);
 
+_GRL_EXTERN
 gchar *grl_config_get_password (GrlConfig *config);
 
+_GRL_EXTERN
 GType grl_config_get_type (void) G_GNUC_CONST;
+_GRL_EXTERN
 GrlConfig *grl_config_new (const gchar *plugin, const gchar *source);
 
+_GRL_EXTERN
 void grl_config_set (GrlConfig *config, const gchar *param, const GValue *value);
 
+_GRL_EXTERN
 void grl_config_set_string (GrlConfig *config,
                            const gchar *param,
                            const gchar *value);
 
+_GRL_EXTERN
 void grl_config_set_int (GrlConfig *config, const gchar *param, gint value);
 
+_GRL_EXTERN
 void grl_config_set_float (GrlConfig *config, const gchar *param, gfloat value);
 
+_GRL_EXTERN
 void grl_config_set_boolean (GrlConfig *config, const gchar *param, gboolean value);
 
+_GRL_EXTERN
 void grl_config_set_binary (GrlConfig *config, const gchar *param, const guint8 *blob, gsize size);
 
+_GRL_EXTERN
 gchar *grl_config_get_string (GrlConfig *config, const gchar *param);
 
+_GRL_EXTERN
 gint grl_config_get_int (GrlConfig *config, const gchar *param);
 
+_GRL_EXTERN
 gfloat grl_config_get_float (GrlConfig *config, const gchar *param);
 
+_GRL_EXTERN
 gboolean grl_config_get_boolean (GrlConfig *config, const gchar *param);
 
+_GRL_EXTERN
 guint8 *grl_config_get_binary (GrlConfig *config, const gchar *param, gsize *size);
 
+_GRL_EXTERN
 gboolean grl_config_has_param (GrlConfig *config, const gchar *param);
 
 G_END_DECLS
diff --git a/src/data/grl-data.h b/src/data/grl-data.h
index c2cc370..5d4e860 100644
--- a/src/data/grl-data.h
+++ b/src/data/grl-data.h
@@ -91,82 +91,119 @@ struct _GrlDataClass
   gpointer _grl_reserved[GRL_PADDING];
 };
 
+_GRL_EXTERN
 GType grl_data_get_type (void) G_GNUC_CONST;
 
+_GRL_EXTERN
 GrlData *grl_data_new (void);
 
+_GRL_EXTERN
 void grl_data_set (GrlData *data, GrlKeyID key, const GValue *value);
 
+_GRL_EXTERN
 void grl_data_set_string (GrlData *data,
                           GrlKeyID key,
                           const gchar *strvalue);
 
+_GRL_EXTERN
 void grl_data_set_int (GrlData *data, GrlKeyID key, gint intvalue);
 
+_GRL_EXTERN
 void grl_data_set_float (GrlData *data,
                          GrlKeyID key,
                          gfloat floatvalue);
 
+_GRL_EXTERN
 void grl_data_set_boolean (GrlData *data, GrlKeyID key, gboolean boolvalue);
 
+_GRL_EXTERN
 void grl_data_set_binary(GrlData *data, GrlKeyID key, const guint8 *buf, gsize size);
 
+_GRL_EXTERN
 void grl_data_set_boxed (GrlData *data, GrlKeyID key, gconstpointer boxed);
 
+_GRL_EXTERN
 void grl_data_set_int64 (GrlData *data, GrlKeyID key, gint64 intvalue);
 
+_GRL_EXTERN
 gboolean grl_data_set_for_id (GrlData *data, const gchar *key_name, const GValue *value);
 
+_GRL_EXTERN
 const GValue *grl_data_get (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 const gchar *grl_data_get_string (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 gint grl_data_get_int (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 gfloat grl_data_get_float (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 gboolean grl_data_get_boolean (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 const guint8 *grl_data_get_binary(GrlData *data, GrlKeyID key, gsize *size);
 
+_GRL_EXTERN
 gpointer grl_data_get_boxed (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 gint64 grl_data_get_int64 (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 void grl_data_remove (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 gboolean grl_data_has_key (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 GList *grl_data_get_keys (GrlData *data);
 
+_GRL_EXTERN
 void grl_data_add_related_keys (GrlData *data, GrlRelatedKeys *relkeys);
 
+_GRL_EXTERN
 void grl_data_add_string (GrlData *data, GrlKeyID key, const gchar *strvalue);
 
+_GRL_EXTERN
 void grl_data_add_int (GrlData *data, GrlKeyID key, gint intvalue);
 
+_GRL_EXTERN
 void grl_data_add_float (GrlData *data, GrlKeyID key, gfloat floatvalue);
 
+_GRL_EXTERN
 void grl_data_add_binary (GrlData *data, GrlKeyID key, const guint8 *buf, gsize size);
 
+_GRL_EXTERN
 void grl_data_add_boxed (GrlData *data, GrlKeyID key, gconstpointer boxed);
 
+_GRL_EXTERN
 void grl_data_add_int64 (GrlData *data, GrlKeyID key, gint64 intvalue);
 
+_GRL_EXTERN
 gboolean grl_data_add_for_id (GrlData *data, const gchar *key_name, const GValue *value);
 
+_GRL_EXTERN
 guint grl_data_length (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 GrlRelatedKeys *grl_data_get_related_keys (GrlData *data, GrlKeyID key, guint index);
 
+_GRL_EXTERN
 GList *grl_data_get_single_values_for_key (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 GList *grl_data_get_single_values_for_key_string (GrlData *data, GrlKeyID key);
 
+_GRL_EXTERN
 void grl_data_remove_nth (GrlData *data, GrlKeyID key, guint index);
 
+_GRL_EXTERN
 void grl_data_set_related_keys (GrlData *data, GrlRelatedKeys *relkeys, guint index);
 
+_GRL_EXTERN
 GrlData *grl_data_dup (GrlData *data);
 
 G_END_DECLS
diff --git a/src/data/grl-media.h b/src/data/grl-media.h
index 9b22bef..34e71d6 100644
--- a/src/data/grl-media.h
+++ b/src/data/grl-media.h
@@ -106,362 +106,528 @@ struct _GrlMediaClass
   gpointer _grl_reserved[GRL_PADDING];
 };
 
+_GRL_EXTERN
 void grl_media_set_id (GrlMedia *media, const gchar *id);
 
+_GRL_EXTERN
 void grl_media_set_url (GrlMedia *media, const gchar *url);
 
+_GRL_EXTERN
 void grl_media_set_author (GrlMedia *media, const gchar *author);
 
+_GRL_EXTERN
 void grl_media_set_title (GrlMedia *media, const gchar *title);
 
+_GRL_EXTERN
 void grl_media_set_description (GrlMedia *media, const gchar *description);
 
+_GRL_EXTERN
 void grl_media_set_source (GrlMedia *media, const gchar *source);
 
+_GRL_EXTERN
 void grl_media_set_thumbnail (GrlMedia *media, const gchar *thumbnail);
 
+_GRL_EXTERN
 void grl_media_set_thumbnail_binary (GrlMedia *media, const guint8 *thumbnail, gsize size);
 
+_GRL_EXTERN
 void grl_media_set_site (GrlMedia *media, const gchar *site);
 
+_GRL_EXTERN
 void grl_media_set_duration (GrlMedia *media, gint duration);
 
+_GRL_EXTERN
 void grl_media_set_publication_date (GrlMedia *media, const GDateTime *date);
 
+_GRL_EXTERN
 void grl_media_set_region (GrlMedia *media,
                            const gchar *region);
 
+_GRL_EXTERN
 void grl_media_set_region_data (GrlMedia *media,
                                 const gchar *region,
                                 const GDateTime *publication_date,
                                 const gchar *certificate);
 
+_GRL_EXTERN
 void grl_media_add_region_data (GrlMedia *media,
                                 const gchar *region,
                                 const GDateTime *publication_date,
                                 const gchar *certificate);
 
+_GRL_EXTERN
 void grl_media_set_creation_date (GrlMedia *media,
                                   const GDateTime *creation_date);
 
+_GRL_EXTERN
 void grl_media_set_modification_date (GrlMedia *media,
                                       const GDateTime *modification_date);
 
+_GRL_EXTERN
 void grl_media_set_mime (GrlMedia *media, const gchar *mime);
 
+_GRL_EXTERN
 void grl_media_set_play_count (GrlMedia *media, gint play_count);
 
+_GRL_EXTERN
 void grl_media_set_last_played (GrlMedia *media, const GDateTime *last_played);
 
+_GRL_EXTERN
 void grl_media_set_last_position (GrlMedia *media, gint last_position);
 
+_GRL_EXTERN
 void grl_media_set_external_player (GrlMedia *media, const gchar *player);
 
+_GRL_EXTERN
 void grl_media_set_external_url (GrlMedia *media, const gchar *url);
 
+_GRL_EXTERN
 void grl_media_set_studio (GrlMedia *media, const gchar *studio);
 
+_GRL_EXTERN
 void grl_media_set_certificate (GrlMedia *media, const gchar *certificate);
 
+_GRL_EXTERN
 void grl_media_set_license (GrlMedia *media, const gchar *license);
 
+_GRL_EXTERN
 void grl_media_set_rating (GrlMedia *media, gfloat rating, gfloat max);
 
+_GRL_EXTERN
 void grl_media_set_url_data (GrlMedia *media, const gchar *url, const gchar *mime, gint bitrate, gfloat 
framerate, gint width, gint height);
 
+_GRL_EXTERN
 void grl_media_set_favourite (GrlMedia *media, gboolean favourite);
 
+_GRL_EXTERN
 void grl_media_set_keyword (GrlMedia *media, const gchar *keyword);
 
+_GRL_EXTERN
 void grl_media_set_size (GrlMedia *media, gint64 size);
 
+_GRL_EXTERN
 void grl_media_set_track_number (GrlMedia *media, gint track_number);
 
+_GRL_EXTERN
 void grl_media_set_bitrate (GrlMedia *media, gint bitrate);
 
+_GRL_EXTERN
 void grl_media_set_mb_track_id (GrlMedia *media, const gchar *mb_track_id);
 
+_GRL_EXTERN
 void grl_media_set_mb_recording_id (GrlMedia *media, const gchar *mb_recording_id);
 
+_GRL_EXTERN
 void grl_media_set_mb_artist_id (GrlMedia *media, const gchar *mb_artist_id);
 
-G_DEPRECATED
+_GRL_EXTERN G_DEPRECATED
 void grl_media_set_mb_album_id (GrlMedia *media, const gchar *mb_album_id);
 
+_GRL_EXTERN
 void grl_media_set_mb_release_id (GrlMedia *media, const gchar *mb_release_id);
 
+_GRL_EXTERN
 void grl_media_set_mb_release_group_id (GrlMedia *media, const gchar *mb_release_group_id);
 
+_GRL_EXTERN
 void grl_media_set_lyrics (GrlMedia *media, const gchar *lyrics);
 
+_GRL_EXTERN
 void grl_media_set_genre (GrlMedia *media, const gchar *genre);
 
+_GRL_EXTERN
 void grl_media_set_album (GrlMedia *media, const gchar *album);
 
+_GRL_EXTERN
 void grl_media_set_album_artist (GrlMedia *media, const gchar *album_artist);
 
+_GRL_EXTERN
 void grl_media_set_album_disc_number (GrlMedia *media, gint disc_number);
 
+_GRL_EXTERN
 void grl_media_set_artist (GrlMedia *media, const gchar *artist);
 
+_GRL_EXTERN
 void grl_media_set_composer (GrlMedia *media, const gchar *composer);
 
+_GRL_EXTERN
 void grl_media_set_width (GrlMedia *media, gint width);
 
+_GRL_EXTERN
 void grl_media_set_height (GrlMedia *media, gint height);
 
+_GRL_EXTERN
 void grl_media_set_framerate (GrlMedia *media, gfloat framerate);
 
+_GRL_EXTERN
 void grl_media_set_season (GrlMedia *media, gint season);
 
+_GRL_EXTERN
 void grl_media_set_episode (GrlMedia *media, gint episode);
 
+_GRL_EXTERN
 void grl_media_set_episode_title (GrlMedia *media, const gchar *episode_title);
 
+_GRL_EXTERN
 void grl_media_set_show (GrlMedia *media, const gchar *show);
 
+_GRL_EXTERN
 void grl_media_set_performer (GrlMedia *media, const gchar *performer);
 
+_GRL_EXTERN
 void grl_media_set_producer (GrlMedia *media, const gchar *producer);
 
+_GRL_EXTERN
 void grl_media_set_director (GrlMedia *media, const gchar *director);
 
+_GRL_EXTERN
 void grl_media_set_original_title (GrlMedia *media, const gchar *original_title);
 
+_GRL_EXTERN
 void grl_media_set_camera_model (GrlMedia *media, const gchar *camera_model);
 
+_GRL_EXTERN
 void grl_media_set_flash_used (GrlMedia *media, const gchar *flash_used);
 
+_GRL_EXTERN
 void grl_media_set_exposure_time (GrlMedia *media, gfloat exposure_time);
 
+_GRL_EXTERN
 void grl_media_set_iso_speed (GrlMedia *media, gfloat iso_speed);
 
+_GRL_EXTERN
 void grl_media_set_orientation (GrlMedia *media, gint orientation);
 
+_GRL_EXTERN
 void grl_media_set_childcount (GrlMedia *media, gint childcount);
 
+_GRL_EXTERN
 void grl_media_add_url_data (GrlMedia *media, const gchar *url, const gchar *mime, gint bitrate, gfloat 
framerate, gint width, gint height);
 
+_GRL_EXTERN
 void grl_media_add_author (GrlMedia *media, const gchar *author);
 
+_GRL_EXTERN
 void grl_media_add_thumbnail (GrlMedia *media, const gchar *thumbnail);
 
+_GRL_EXTERN
 void grl_media_add_thumbnail_binary (GrlMedia *media, const guint8 *thumbnail, gsize size);
 
+_GRL_EXTERN
 void grl_media_add_external_player (GrlMedia *media, const gchar *player);
 
+_GRL_EXTERN
 void grl_media_add_external_url (GrlMedia *media, const gchar *url);
 
+_GRL_EXTERN
 void grl_media_add_keyword (GrlMedia *media, const gchar *keyword);
 
+_GRL_EXTERN
 void grl_media_add_artist (GrlMedia *media, const gchar *artist);
 
+_GRL_EXTERN
 void grl_media_add_genre (GrlMedia *media, const gchar *genre);
 
+_GRL_EXTERN
 void grl_media_add_lyrics (GrlMedia *media, const gchar *lyrics);
 
+_GRL_EXTERN
 void grl_media_add_mb_artist_id (GrlMedia *media, const gchar *mb_artist_id);
 
+_GRL_EXTERN
 void grl_media_add_performer (GrlMedia *media, const gchar *performer);
 
+_GRL_EXTERN
 void grl_media_add_producer (GrlMedia *media, const gchar *producer);
 
+_GRL_EXTERN
 void grl_media_add_director (GrlMedia *media, const gchar *director);
 
+_GRL_EXTERN
 const gchar *grl_media_get_id (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_url (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_url_data (GrlMedia *media, gchar **mime, gint *bitrate, gfloat *framerate, gint 
*width, gint *height);
 
+_GRL_EXTERN
 const gchar *grl_media_get_url_data_nth (GrlMedia *media, guint index, gchar **mime, gint *bitrate, gfloat 
*framerate, gint *width, gint *height);
 
+_GRL_EXTERN
 const gchar *grl_media_get_author (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_author_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_title (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_description (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_source (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_thumbnail (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_thumbnail_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const guint8 *grl_media_get_thumbnail_binary (GrlMedia *media, gsize *size);
 
+_GRL_EXTERN
 const guint8 *grl_media_get_thumbnail_binary_nth (GrlMedia *media, gsize *size, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_site (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_duration (GrlMedia *media);
 
+_GRL_EXTERN
 GDateTime *grl_media_get_publication_date (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_region (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_region_data(GrlMedia *media,
                                        const GDateTime **publication_date,
                                        const gchar **certificate);
 
+_GRL_EXTERN
 const gchar *grl_media_get_region_data_nth(GrlMedia *media,
                                            guint index,
                                            const GDateTime **publication_date,
                                            const gchar **certificate);
 
+_GRL_EXTERN
 GDateTime *grl_media_get_creation_date (GrlMedia *media);
 
+_GRL_EXTERN
 GDateTime *grl_media_get_modification_date (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_mime (GrlMedia *media);
 
+_GRL_EXTERN
 gfloat grl_media_get_rating (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_play_count (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_last_position (GrlMedia *media);
 
+_GRL_EXTERN
 GDateTime *grl_media_get_last_played (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_player (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_player_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_external_url (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_external_url_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_studio (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_certificate (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_license (GrlMedia *media);
 
+_GRL_EXTERN
 gfloat grl_media_get_start_time (GrlMedia *media);
 
+_GRL_EXTERN
 gboolean grl_media_get_favourite (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_keyword (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar * grl_media_get_keyword_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 gint64 grl_media_get_size (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_track_number (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_bitrate (GrlMedia *media);
 
-G_DEPRECATED
+_GRL_EXTERN G_DEPRECATED
 const gchar *grl_media_get_mb_album_id (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_mb_artist_id (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_mb_artist_id_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_mb_recording_id (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_mb_track_id (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_mb_release_id (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_mb_release_group_id (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_lyrics (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_lyrics_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_genre (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_genre_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_album (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_album_artist (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_album_disc_number (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_artist (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_artist_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_composer (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_composer_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 GrlMediaType grl_media_get_media_type (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_width (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_height (GrlMedia *media);
 
+_GRL_EXTERN
 gfloat grl_media_get_framerate (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_season (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_episode (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_episode_title (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_show (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_performer (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_performer_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_producer (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_producer_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_director (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_director_nth (GrlMedia *media, guint index);
 
+_GRL_EXTERN
 const gchar *grl_media_get_original_title (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_camera_model (GrlMedia *media);
 
+_GRL_EXTERN
 const gchar *grl_media_get_flash_used (GrlMedia *media);
 
+_GRL_EXTERN
 gfloat grl_media_get_exposure_time (GrlMedia *media);
 
+_GRL_EXTERN
 gfloat grl_media_get_iso_speed (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_orientation (GrlMedia *media);
 
+_GRL_EXTERN
 gint grl_media_get_childcount (GrlMedia *media);
 
+_GRL_EXTERN
 GType grl_media_get_type (void) G_GNUC_CONST;
 
+_GRL_EXTERN
 GrlMedia *grl_media_new (void);
 
+_GRL_EXTERN
 GrlMedia *grl_media_audio_new (void);
 
+_GRL_EXTERN
 GrlMedia *grl_media_video_new (void);
 
+_GRL_EXTERN
 GrlMedia *grl_media_image_new (void);
 
+_GRL_EXTERN
 GrlMedia *grl_media_container_new (void);
 
+_GRL_EXTERN
 gboolean
 grl_media_is_audio (GrlMedia *media);
 
+_GRL_EXTERN
 gboolean
 grl_media_is_video (GrlMedia *media);
 
+_GRL_EXTERN
 gboolean
 grl_media_is_image (GrlMedia *media);
 
+_GRL_EXTERN
 gboolean
 grl_media_is_container (GrlMedia *media);
 
+_GRL_EXTERN
 gchar *grl_media_serialize (GrlMedia *media);
 
+_GRL_EXTERN
 gchar *grl_media_serialize_extended (GrlMedia *media,
                                      GrlMediaSerializeType serial_type,
                                      ...);
 
+_GRL_EXTERN
 GrlMedia *grl_media_unserialize (const gchar *serial);
 
 G_END_DECLS
diff --git a/src/data/grl-related-keys.h b/src/data/grl-related-keys.h
index c370bb6..273ab5a 100644
--- a/src/data/grl-related-keys.h
+++ b/src/data/grl-related-keys.h
@@ -91,80 +91,104 @@ struct _GrlRelatedKeysClass
   gpointer _grl_reserved[GRL_PADDING];
 };
 
+_GRL_EXTERN
 GType grl_related_keys_get_type (void) G_GNUC_CONST;
 
+_GRL_EXTERN
 GrlRelatedKeys *grl_related_keys_new (void);
 
+_GRL_EXTERN
 GrlRelatedKeys *grl_related_keys_new_valist (GrlKeyID key, va_list args);
 
+_GRL_EXTERN
 GrlRelatedKeys *grl_related_keys_new_with_keys (GrlKeyID key, ...);
 
+_GRL_EXTERN
 void grl_related_keys_set (GrlRelatedKeys *relkeys,
                            GrlKeyID key,
                            const GValue *value);
 
+_GRL_EXTERN
 void grl_related_keys_set_string (GrlRelatedKeys *relkeys,
                                   GrlKeyID key,
                                   const gchar *strvalue);
 
+_GRL_EXTERN
 void grl_related_keys_set_int (GrlRelatedKeys *relkeys,
                                GrlKeyID key,
                                gint intvalue);
 
+_GRL_EXTERN
 void grl_related_keys_set_float (GrlRelatedKeys *relkeys,
                                  GrlKeyID key,
                                  gfloat floatvalue);
 
+_GRL_EXTERN
 void grl_related_keys_set_boolean (GrlRelatedKeys *relkeys,
                                    GrlKeyID key,
                                    gboolean booleanvalue);
 
+_GRL_EXTERN
 void grl_related_keys_set_binary(GrlRelatedKeys *relkeys,
                                  GrlKeyID key,
                                  const guint8 *buf,
                                  gsize size);
 
+_GRL_EXTERN
 void grl_related_keys_set_boxed (GrlRelatedKeys *relkeys,
                                  GrlKeyID key,
                                  gconstpointer boxed);
 
+_GRL_EXTERN
 void grl_related_keys_set_int64 (GrlRelatedKeys *relkeys,
                                  GrlKeyID key,
                                  gint64 intvalue);
 
+_GRL_EXTERN
 const GValue *grl_related_keys_get (GrlRelatedKeys *relkeys,
                                     GrlKeyID key);
 
+_GRL_EXTERN
 const gchar *grl_related_keys_get_string (GrlRelatedKeys *relkeys,
                                           GrlKeyID key);
 
+_GRL_EXTERN
 gint grl_related_keys_get_int (GrlRelatedKeys *relkeys,
                                GrlKeyID key);
 
+_GRL_EXTERN
 gfloat grl_related_keys_get_float (GrlRelatedKeys *relkeys,
                                    GrlKeyID key);
 
+_GRL_EXTERN
 gboolean grl_related_keys_get_boolean (GrlRelatedKeys *relkeys,
                                        GrlKeyID key);
 
+_GRL_EXTERN
 const guint8 *grl_related_keys_get_binary(GrlRelatedKeys *relkeys,
                                           GrlKeyID key,
                                           gsize *size);
 
+_GRL_EXTERN
 gconstpointer grl_related_keys_get_boxed (GrlRelatedKeys *relkeys,
                                           GrlKeyID key);
 
+_GRL_EXTERN
 gint64 grl_related_keys_get_int64 (GrlRelatedKeys *relkeys,
                                    GrlKeyID key);
 
+_GRL_EXTERN
 void grl_related_keys_remove (GrlRelatedKeys *relkeys,
                               GrlKeyID key);
 
+_GRL_EXTERN
 gboolean grl_related_keys_has_key (GrlRelatedKeys *relkeys,
                                    GrlKeyID key);
 
+_GRL_EXTERN
 GList *grl_related_keys_get_keys (GrlRelatedKeys *relkeys);
 
+_GRL_EXTERN
 GrlRelatedKeys *grl_related_keys_dup (GrlRelatedKeys *relkeys);
 
 G_END_DECLS
diff --git a/src/grilo.h b/src/grilo.h
index 86680b8..c7da426 100644
--- a/src/grilo.h
+++ b/src/grilo.h
@@ -46,10 +46,13 @@
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 void grl_init (gint *argc, gchar **argv[]);
 
+_GRL_EXTERN
 void grl_deinit (void);
 
+_GRL_EXTERN
 GOptionGroup *grl_init_get_option_group (void);
 
 G_END_DECLS
diff --git a/src/grl-caps.h b/src/grl-caps.h
index df2e939..1b03c7f 100644
--- a/src/grl-caps.h
+++ b/src/grl-caps.h
@@ -85,28 +85,39 @@ typedef enum {
 } GrlTypeFilter;
 
 
+_GRL_EXTERN
 GType grl_caps_get_type (void);
 
+_GRL_EXTERN
 GrlCaps *grl_caps_new (void);
 
+_GRL_EXTERN
 gboolean grl_caps_test_option (GrlCaps *caps,
                                const gchar *key,
                                const GValue *value);
 
+_GRL_EXTERN
 GrlTypeFilter grl_caps_get_type_filter (GrlCaps *caps);
 
+_GRL_EXTERN
 void grl_caps_set_type_filter (GrlCaps *caps, GrlTypeFilter filter);
 
+_GRL_EXTERN
 GList *grl_caps_get_key_filter (GrlCaps *caps);
 
+_GRL_EXTERN
 void grl_caps_set_key_filter (GrlCaps *caps, GList *keys);
 
+_GRL_EXTERN
 gboolean grl_caps_is_key_filter (GrlCaps *caps, GrlKeyID key);
 
+_GRL_EXTERN
 GList *grl_caps_get_key_range_filter (GrlCaps *caps);
 
+_GRL_EXTERN
 void grl_caps_set_key_range_filter (GrlCaps *caps, GList *keys);
 
+_GRL_EXTERN
 gboolean grl_caps_is_key_range_filter (GrlCaps *caps, GrlKeyID key);
 
 G_END_DECLS
diff --git a/src/grl-log.h b/src/grl-log.h
index 3f0b69f..cd28c04 100644
--- a/src/grl-log.h
+++ b/src/grl-log.h
@@ -34,6 +34,8 @@
 
 #include <glib.h>
 
+#include <grl-definitions.h>
+
 G_BEGIN_DECLS
 
 /**
@@ -62,7 +64,7 @@ typedef enum {
 /* Opaque type */
 typedef struct _GrlLogDomain GrlLogDomain;
 
-extern GrlLogDomain *GRL_LOG_DOMAIN_DEFAULT;
+_GRL_EXTERN GrlLogDomain *GRL_LOG_DOMAIN_DEFAULT;
 
 /**
  * GRL_LOG_DOMAIN:
@@ -270,10 +272,14 @@ GRL_DEBUG (GrlLogDomain *domain, const char *format, ...)
 
 #endif /* G_HAVE_ISO_VARARGS */
 
+_GRL_EXTERN
 GrlLogDomain *  grl_log_domain_new    (const gchar *name);
+_GRL_EXTERN
 void            grl_log_domain_free   (GrlLogDomain *domain);
 
+_GRL_EXTERN
 void            grl_log_configure     (const gchar  *config);
+_GRL_EXTERN
 void            grl_log               (GrlLogDomain *domain,
                                        GrlLogLevel   level,
                                        const gchar  *strloc,
diff --git a/src/grl-metadata-key.h b/src/grl-metadata-key.h
index 9d58031..bfa4216 100644
--- a/src/grl-metadata-key.h
+++ b/src/grl-metadata-key.h
@@ -30,6 +30,8 @@
 #include <glib.h>
 #include <glib-object.h>
 
+#include <grl-definitions.h>
+
 #define GRL_METADATA_KEY_GET_ID(key)   (key)
 #define GRL_METADATA_KEY_GET_NAME(key) (grl_metadata_key_get_name (key))
 #define GRL_METADATA_KEY_GET_DESC(key) (grl_metadata_key_get_desc (key))
@@ -132,12 +134,16 @@ typedef enum {
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 const gchar *grl_metadata_key_get_name (GrlKeyID key);
 
+_GRL_EXTERN
 const gchar *grl_metadata_key_get_desc (GrlKeyID key);
 
+_GRL_EXTERN
 GType grl_metadata_key_get_type (GrlKeyID key);
 
+_GRL_EXTERN
 GList *grl_metadata_key_list_new(GrlKeyID first_key, ...);
 
 G_END_DECLS
diff --git a/src/grl-multiple.h b/src/grl-multiple.h
index 36c5c8c..b36ca00 100644
--- a/src/grl-multiple.h
+++ b/src/grl-multiple.h
@@ -34,6 +34,7 @@
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 guint grl_multiple_search (const GList *sources,
                           const gchar *text,
                           const GList *keys,
@@ -41,12 +42,14 @@ guint grl_multiple_search (const GList *sources,
                           GrlSourceResultCb callback,
                           gpointer user_data);
 
+_GRL_EXTERN
 GList *grl_multiple_search_sync (const GList *sources,
                                  const gchar *text,
                                  const GList *keys,
                                  GrlOperationOptions *options,
                                  GError **error);
 
+_GRL_EXTERN
 void grl_multiple_get_media_from_uri (const gchar *uri,
                                      const GList *keys,
                                      GrlOperationOptions *options,
diff --git a/src/grl-operation-options.h b/src/grl-operation-options.h
index 60bb10d..7ba47e2 100644
--- a/src/grl-operation-options.h
+++ b/src/grl-operation-options.h
@@ -95,62 +95,83 @@ typedef enum {
 
 #define GRL_COUNT_INFINITY (-1)
 
+_GRL_EXTERN
 GType grl_operation_options_get_type (void);
 
+_GRL_EXTERN
 GrlOperationOptions *grl_operation_options_new (GrlCaps *caps);
 
+_GRL_EXTERN
 gboolean grl_operation_options_obey_caps (GrlOperationOptions *options,
                                           GrlCaps *caps,
                                           GrlOperationOptions **supported_options,
                                           GrlOperationOptions **unsupported_options);
 
+_GRL_EXTERN
 GrlOperationOptions *grl_operation_options_copy (GrlOperationOptions *options);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_skip (GrlOperationOptions *options, guint skip);
+_GRL_EXTERN
 guint grl_operation_options_get_skip (GrlOperationOptions *options);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_count (GrlOperationOptions *options, gint count);
+_GRL_EXTERN
 gint grl_operation_options_get_count (GrlOperationOptions *options);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_resolution_flags (GrlOperationOptions *options,
                                                      GrlResolutionFlags flags);
+_GRL_EXTERN
 GrlResolutionFlags
     grl_operation_options_get_resolution_flags (GrlOperationOptions *options);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_type_filter (GrlOperationOptions *options,
                                                 GrlTypeFilter filter);
 
+_GRL_EXTERN
 GrlTypeFilter grl_operation_options_get_type_filter (GrlOperationOptions *options);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_key_filter_value (GrlOperationOptions *options,
                                                      GrlKeyID key,
                                                      GValue *value);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_key_filters (GrlOperationOptions *options,
                                                 ...) G_GNUC_NULL_TERMINATED;
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_key_filter_dictionary (GrlOperationOptions *options,
                                                           GHashTable *filters);
 
+_GRL_EXTERN
 GValue *grl_operation_options_get_key_filter (GrlOperationOptions *options,
                                               GrlKeyID key);
 
+_GRL_EXTERN
 GList *grl_operation_options_get_key_filter_list (GrlOperationOptions *options);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_key_range_filter_value (GrlOperationOptions *options,
                                                            GrlKeyID key,
                                                            GValue *min_value,
                                                            GValue *max_value);
 
+_GRL_EXTERN
 gboolean grl_operation_options_set_key_range_filter (GrlOperationOptions *options,
                                                      ...);
 
+_GRL_EXTERN
 void grl_operation_options_get_key_range_filter (GrlOperationOptions *options,
                                                  GrlKeyID key,
                                                  GValue **min_value,
                                                  GValue **max_value);
 
 
+_GRL_EXTERN
 GList *grl_operation_options_get_key_range_filter_list (GrlOperationOptions *options);
 
 G_END_DECLS
diff --git a/src/grl-operation.h b/src/grl-operation.h
index 715278f..0a8b1fc 100644
--- a/src/grl-operation.h
+++ b/src/grl-operation.h
@@ -29,14 +29,20 @@
 
 #include <glib.h>
 
+#include <grl-definitions.h>
+
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 void grl_operation_cancel (guint operation_id);
 
+_GRL_EXTERN
 gpointer grl_operation_get_data (guint operation_id);
 
+_GRL_EXTERN
 void grl_operation_set_data (guint operation_id, gpointer user_data);
 
+_GRL_EXTERN
 void grl_operation_set_data_full (guint operation_id, gpointer user_data, GDestroyNotify destroy_func);
 
 G_END_DECLS
diff --git a/src/grl-plugin.h b/src/grl-plugin.h
index ee81bcd..af04560 100644
--- a/src/grl-plugin.h
+++ b/src/grl-plugin.h
@@ -107,28 +107,40 @@ struct _GrlPluginClass {
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 GType grl_plugin_get_type (void);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_name (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_description (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_version (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_license (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_author (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_site (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_id (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_filename (GrlPlugin *plugin);
 
+_GRL_EXTERN
 const gchar *grl_plugin_get_module_name (GrlPlugin *plugin);
 
+_GRL_EXTERN
 GModule *grl_plugin_get_module (GrlPlugin *plugin);
 
+_GRL_EXTERN
 GList *grl_plugin_get_sources (GrlPlugin *plugin);
 
 G_END_DECLS
diff --git a/src/grl-range-value.h b/src/grl-range-value.h
index 5bce911..3467f92 100644
--- a/src/grl-range-value.h
+++ b/src/grl-range-value.h
@@ -28,6 +28,7 @@
 #define _GRL_RANGE_VALUE_HELPER_H_
 
 #include <glib-object.h>
+#include <grl-definitions.h>
 
 typedef struct {
   GValue *min;
@@ -36,20 +37,26 @@ typedef struct {
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 GrlRangeValue *grl_range_value_new (GValue *min,
                                     GValue *max);
 
+_GRL_EXTERN
 void grl_range_value_free (GrlRangeValue *range);
 
+_GRL_EXTERN
 GHashTable *grl_range_value_hashtable_new (void);
 
+_GRL_EXTERN
 GrlRangeValue *grl_range_value_dup (const GrlRangeValue *range);
 
+_GRL_EXTERN
 void grl_range_value_hashtable_insert (GHashTable *hash_table,
                                        gpointer key,
                                        GValue *min,
                                        GValue *max);
 
+_GRL_EXTERN
 GType grl_range_value_get_type (void);
 
 G_END_DECLS
diff --git a/src/grl-registry.h b/src/grl-registry.h
index 349c967..57abc95 100644
--- a/src/grl-registry.h
+++ b/src/grl-registry.h
@@ -223,99 +223,127 @@ struct _GrlRegistryClass {
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 GType grl_registry_get_type (void);
 
+_GRL_EXTERN
 GrlRegistry *grl_registry_get_default (void);
 
+_GRL_EXTERN
 void grl_registry_add_directory (GrlRegistry *registry,
                                  const gchar *path);
 
+_GRL_EXTERN
 gboolean grl_registry_load_plugin (GrlRegistry *registry,
                                    const gchar *library_filename,
                                    GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_load_plugin_from_desc (GrlRegistry *registry,
                                              GrlPluginDescriptor *plugin_desc,
                                              GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_load_plugin_directory (GrlRegistry *registry,
                                              const gchar *path,
                                              GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_unload_plugin (GrlRegistry *registry,
                                      const gchar *plugin_id,
                                      GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_activate_all_plugins (GrlRegistry *registry);
 
+_GRL_EXTERN
 gboolean grl_registry_load_all_plugins (GrlRegistry *registry,
                                         gboolean activate,
                                         GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_activate_plugin_by_id (GrlRegistry *registry,
                                              const gchar *plugin_id,
                                              GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_register_source (GrlRegistry *registry,
                                        GrlPlugin *plugin,
                                        GrlSource *source,
                                        GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_unregister_source (GrlRegistry *registry,
                                          GrlSource *source,
                                          GError **error);
 
+_GRL_EXTERN
 GrlSource *grl_registry_lookup_source (GrlRegistry *registry,
                                        const gchar *source_id);
 
+_GRL_EXTERN
 GList *grl_registry_get_sources (GrlRegistry *registry,
                                  gboolean ranked);
 
+_GRL_EXTERN
 GList *grl_registry_get_sources_by_operations (GrlRegistry *registry,
                                                GrlSupportedOps ops,
                                                gboolean ranked);
 
+_GRL_EXTERN
 GrlPlugin *grl_registry_lookup_plugin (GrlRegistry *registry,
                                        const gchar *plugin_id);
 
+_GRL_EXTERN
 GList *grl_registry_get_plugins (GrlRegistry *registry,
                                  gboolean only_loaded);
 
 
+_GRL_EXTERN
 GrlKeyID grl_registry_register_metadata_key (GrlRegistry *registry,
                                              GParamSpec *param_spec,
                                              GrlKeyID bind_key,
                                              GError **error);
 
+_GRL_EXTERN
 GrlKeyID grl_registry_lookup_metadata_key (GrlRegistry *registry,
                                            const gchar *key_name);
 
+_GRL_EXTERN
 const GList *grl_registry_lookup_metadata_key_relation (GrlRegistry *registry,
                                                         GrlKeyID key);
 
+_GRL_EXTERN
 const gchar *grl_registry_lookup_metadata_key_name (GrlRegistry *registry,
                                                     GrlKeyID key);
 
+_GRL_EXTERN
 const gchar *grl_registry_lookup_metadata_key_desc (GrlRegistry *registry,
                                                     GrlKeyID key);
 
+_GRL_EXTERN
 GType grl_registry_lookup_metadata_key_type (GrlRegistry *registry,
                                              GrlKeyID key);
 
+_GRL_EXTERN
 gboolean grl_registry_metadata_key_validate (GrlRegistry *registry,
                                              GrlKeyID key,
                                              GValue *value);
 
+_GRL_EXTERN
 GList *grl_registry_get_metadata_keys (GrlRegistry *registry);
 
+_GRL_EXTERN
 gboolean grl_registry_add_config (GrlRegistry *registry,
                                   GrlConfig *config,
                                   GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_add_config_from_file (GrlRegistry *registry,
                                             const gchar *config_file,
                                             GError **error);
 
+_GRL_EXTERN
 gboolean grl_registry_add_config_from_resource (GrlRegistry *registry,
                                                 const gchar *resource_path,
                                                 GError **error);
diff --git a/src/grl-source.h b/src/grl-source.h
index 574d608..591975f 100644
--- a/src/grl-source.h
+++ b/src/grl-source.h
@@ -496,25 +496,34 @@ struct _GrlSourceClass {
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 GType grl_source_get_type (void);
 
+_GRL_EXTERN
 GrlSupportedOps grl_source_supported_operations (GrlSource *source);
 
+_GRL_EXTERN
 const GList *grl_source_supported_keys (GrlSource *source);
 
+_GRL_EXTERN
 const GList *grl_source_slow_keys (GrlSource *source);
 
+_GRL_EXTERN
 const GList *grl_source_writable_keys (GrlSource *source);
 
+_GRL_EXTERN
 GrlCaps *grl_source_get_caps (GrlSource *source,
                               GrlSupportedOps operation);
 
+_GRL_EXTERN
 void grl_source_set_auto_split_threshold (GrlSource *source,
                                           guint threshold);
 
+_GRL_EXTERN
 guint grl_source_get_auto_split_threshold (GrlSource *source);
 
 
+_GRL_EXTERN
 guint grl_source_resolve (GrlSource *source,
                           GrlMedia *media,
                           const GList *keys,
@@ -522,20 +531,24 @@ guint grl_source_resolve (GrlSource *source,
                           GrlSourceResolveCb callback,
                           gpointer user_data);
 
+_GRL_EXTERN
 GrlMedia *grl_source_resolve_sync (GrlSource *source,
                                    GrlMedia *media,
                                    const GList *keys,
                                    GrlOperationOptions *options,
                                    GError **error);
 
+_GRL_EXTERN
 gboolean grl_source_may_resolve (GrlSource *source,
                                  GrlMedia *media,
                                  GrlKeyID key_id,
                                  GList **missing_keys);
 
+_GRL_EXTERN
 gboolean grl_source_test_media_from_uri (GrlSource *source,
                                          const gchar *uri);
 
+_GRL_EXTERN
 guint grl_source_get_media_from_uri (GrlSource *source,
                                      const gchar *uri,
                                      const GList *keys,
@@ -543,12 +556,14 @@ guint grl_source_get_media_from_uri (GrlSource *source,
                                      GrlSourceResolveCb callback,
                                      gpointer user_data);
 
+_GRL_EXTERN
 GrlMedia *grl_source_get_media_from_uri_sync (GrlSource *source,
                                               const gchar *uri,
                                               const GList *keys,
                                               GrlOperationOptions *options,
                                               GError **error);
 
+_GRL_EXTERN
 guint grl_source_browse (GrlSource *source,
                          GrlMedia *container,
                          const GList *keys,
@@ -556,12 +571,14 @@ guint grl_source_browse (GrlSource *source,
                          GrlSourceResultCb callback,
                          gpointer user_data);
 
+_GRL_EXTERN
 GList *grl_source_browse_sync (GrlSource *source,
                                GrlMedia *container,
                                const GList *keys,
                                GrlOperationOptions *options,
                                GError **error);
 
+_GRL_EXTERN
 guint grl_source_search (GrlSource *source,
                          const gchar *text,
                          const GList *keys,
@@ -569,12 +586,14 @@ guint grl_source_search (GrlSource *source,
                          GrlSourceResultCb callback,
                          gpointer user_data);
 
+_GRL_EXTERN
 GList *grl_source_search_sync (GrlSource *source,
                                const gchar *text,
                                const GList *keys,
                                GrlOperationOptions *options,
                                GError **error);
 
+_GRL_EXTERN
 guint grl_source_query (GrlSource *source,
                         const gchar *query,
                         const GList *keys,
@@ -582,21 +601,25 @@ guint grl_source_query (GrlSource *source,
                         GrlSourceResultCb callback,
                         gpointer user_data);
 
+_GRL_EXTERN
 GList *grl_source_query_sync (GrlSource *source,
                               const gchar *query,
                               const GList *keys,
                               GrlOperationOptions *options,
                               GError **error);
 
+_GRL_EXTERN
 void grl_source_remove (GrlSource *source,
                         GrlMedia *media,
                         GrlSourceRemoveCb callback,
                         gpointer user_data);
 
+_GRL_EXTERN
 void grl_source_remove_sync (GrlSource *source,
                              GrlMedia *media,
                              GError **error);
 
+_GRL_EXTERN
 void grl_source_store (GrlSource *source,
                        GrlMedia *parent,
                        GrlMedia *media,
@@ -604,12 +627,14 @@ void grl_source_store (GrlSource *source,
                        GrlSourceStoreCb callback,
                        gpointer user_data);
 
+_GRL_EXTERN
 void grl_source_store_sync (GrlSource *source,
                             GrlMedia *parent,
                             GrlMedia *media,
                             GrlWriteFlags flags,
                             GError **error);
 
+_GRL_EXTERN
 void grl_source_store_metadata (GrlSource *source,
                                 GrlMedia *media,
                                 GList *keys,
@@ -617,42 +642,55 @@ void grl_source_store_metadata (GrlSource *source,
                                 GrlSourceStoreCb callback,
                                 gpointer user_data);
 
+_GRL_EXTERN
 GList *grl_source_store_metadata_sync (GrlSource *source,
                                        GrlMedia *media,
                                        GList *keys,
                                        GrlWriteFlags flags,
                                        GError **error);
 
+_GRL_EXTERN
 gboolean grl_source_notify_change_start (GrlSource *source,
                                          GError **error);
 
+_GRL_EXTERN
 gboolean grl_source_notify_change_stop (GrlSource *source,
                                         GError **error);
 
+_GRL_EXTERN
 void grl_source_notify_change_list (GrlSource *source,
                                     GPtrArray *changed_medias,
                                     GrlSourceChangeType change_type,
                                     gboolean location_unknown);
 
+_GRL_EXTERN
 void grl_source_notify_change (GrlSource *source,
                                GrlMedia *media,
                                GrlSourceChangeType change_type,
                                gboolean location_unknown);
 
+_GRL_EXTERN
 const gchar *grl_source_get_id (GrlSource *source);
 
+_GRL_EXTERN
 const gchar *grl_source_get_name (GrlSource *source);
 
+_GRL_EXTERN
 GIcon *grl_source_get_icon (GrlSource *source);
 
+_GRL_EXTERN
 const gchar *grl_source_get_description (GrlSource *source);
 
+_GRL_EXTERN
 GrlPlugin *grl_source_get_plugin (GrlSource *source);
 
+_GRL_EXTERN
 gint grl_source_get_rank (GrlSource *source);
 
+_GRL_EXTERN
 GrlSupportedMedia grl_source_get_supported_media (GrlSource *source);
 
+_GRL_EXTERN
 const char ** grl_source_get_tags (GrlSource *source);
 
 G_END_DECLS
diff --git a/src/grl-type-builtins.h.template b/src/grl-type-builtins.h.template
index 6714f84..b4be92d 100644
--- a/src/grl-type-builtins.h.template
+++ b/src/grl-type-builtins.h.template
@@ -3,6 +3,7 @@
 #define _GRL_TYPE_BUILTINS_H_
 
 #include <glib-object.h>
+#include <grl-definitions.h>
 
 G_BEGIN_DECLS
 /*** END file-header ***/
@@ -13,7 +14,7 @@ G_BEGIN_DECLS
 /*** END file-production ***/
 
 /*** BEGIN value-header ***/
-GType @enum_name@_get_type (void) G_GNUC_CONST;
+_GRL_EXTERN GType @enum_name@_get_type (void) G_GNUC_CONST;
 #define @ENUMPREFIX@_TYPE_@ENUMSHORT@ (@enum_name@_get_type())
 /*** END value-header ***/
 
diff --git a/src/grl-util.h b/src/grl-util.h
index f2864b7..9981067 100644
--- a/src/grl-util.h
+++ b/src/grl-util.h
@@ -28,9 +28,11 @@
 #define _GRL_UTIL_H_
 
 #include <glib.h>
+#include <grl-definitions.h>
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 void grl_paging_translate (guint skip,
                            guint count,
                            guint max_page_size,
@@ -38,8 +40,10 @@ void grl_paging_translate (guint skip,
                            guint *page_number,
                            guint *internal_offset);
 
+_GRL_EXTERN
 GList *grl_list_from_va (gpointer p, ...) G_GNUC_NULL_TERMINATED;
 
+_GRL_EXTERN
 GDateTime * grl_date_time_from_iso8601 (const gchar *date);
 
 G_END_DECLS
diff --git a/src/grl-value-helper.h b/src/grl-value-helper.h
index bda9069..320d148 100644
--- a/src/grl-value-helper.h
+++ b/src/grl-value-helper.h
@@ -28,17 +28,23 @@
 #define _GRL_VALUE_HELPER_H_
 
 #include <glib-object.h>
+#include <grl-definitions.h>
 
 G_BEGIN_DECLS
 
+_GRL_EXTERN
 GValue *grl_g_value_new (GType g_type);
 
+_GRL_EXTERN
 void grl_g_value_free (GValue *value);
 
+_GRL_EXTERN
 GHashTable *grl_g_value_hashtable_new (void);
 
+_GRL_EXTERN
 GHashTable *grl_g_value_hashtable_new_direct (void);
 
+_GRL_EXTERN
 GValue *grl_g_value_dup (const GValue *value);
 
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]