[grilo-plugins] All: Removed deprecated g_type_class_add_private()



commit 770b11088c1b99ec979015faf95078c1e0dfe69e
Author: Victor Toso <me victortoso com>
Date:   Mon Jul 23 22:40:41 2018 +0200

    All: Removed deprecated g_type_class_add_private()
    
    Instead we define the class with G_DEFINE_TYPE_WITH_PRIVATE() or
    include G_ADD_PRIVATE() when defining with code.
    
    This also removes the usage of G_TYPE_INSTANCE_GET_PRIVATE() as we use
    instead the _get_instance_private()
    
    Notes:
    - Only plugin skipped is Tracker as it needs more adjustments
    - Some Private structures had to be renamed
      e.g: GrlLocalMetadataSourcePriv -> GrlLocalMetadataSourcePrivate
      e.g: GrlMetadataStorePrivate -> GrlMetadataStoreSourcePrivate
    - The G_DEFINE_TYPE_WITH_PRIVATE() declaration might be moved as it
      must be after the private struct definition and before the call for
      _get_instance_private()
    - Tested with grilo-test-ui and totem

 src/bookmarks/bookmarks-resource.c          |  9 +++----
 src/bookmarks/grl-bookmarks.c               | 13 +++-------
 src/bookmarks/grl-bookmarks.h               |  4 ++--
 src/chromaprint/grl-chromaprint.c           | 13 +++-------
 src/chromaprint/grl-chromaprint.h           |  4 ++--
 src/dleyna/grl-dleyna-server.c              |  6 ++---
 src/dleyna/grl-dleyna-servers-manager.c     |  7 ++----
 src/dleyna/grl-dleyna-source.c              |  9 ++-----
 src/dmap/grl-daap-db.c                      |  5 ++--
 src/dmap/grl-daap-record.c                  |  3 +--
 src/dmap/grl-daap.c                         | 13 ++--------
 src/dmap/grl-dpap-db.c                      |  5 ++--
 src/dmap/grl-dpap-record.c                  | 17 ++++++-------
 src/dmap/grl-dpap.c                         |  8 ++-----
 src/filesystem/grl-filesystem.c             | 13 ++--------
 src/flickr/gflickr.c                        | 12 ++--------
 src/flickr/grl-flickr.c                     | 11 ++-------
 src/freebox/freebox-monitor.c               |  8 ++-----
 src/freebox/grl-freebox.c                   | 14 ++---------
 src/jamendo/grl-jamendo.c                   | 17 ++++---------
 src/jamendo/grl-jamendo.h                   |  4 ++--
 src/local-metadata/grl-local-metadata.c     | 37 +++++++++++------------------
 src/local-metadata/grl-local-metadata.h     |  4 ++--
 src/lua-factory/grl-lua-factory.c           |  6 ++---
 src/magnatune/grl-magnatune.c               | 13 +++-------
 src/magnatune/grl-magnatune.h               |  4 ++--
 src/metadata-store/grl-metadata-store.c     | 11 ++-------
 src/metadata-store/grl-metadata-store.h     |  4 ++--
 src/opensubtitles/grl-opensubtitles.c       | 27 ++++++++-------------
 src/opensubtitles/grl-opensubtitles.h       |  4 ++--
 src/optical-media/grl-optical-media.c       | 13 ++--------
 src/podcasts/grl-podcasts.c                 | 13 +++-------
 src/podcasts/grl-podcasts.h                 |  4 ++--
 src/raitv/grl-raitv.c                       | 13 ++--------
 src/shoutcast/grl-shoutcast.c               | 17 ++++---------
 src/shoutcast/grl-shoutcast.h               |  4 ++--
 src/thetvdb/grl-thetvdb.c                   | 13 +++-------
 src/thetvdb/grl-thetvdb.h                   |  4 ++--
 src/thetvdb/thetvdb-resources-episodes.c    |  5 ++--
 src/thetvdb/thetvdb-resources-fuzzy-names.c |  9 +++----
 src/thetvdb/thetvdb-resources-series.c      |  9 +++----
 src/tmdb/grl-tmdb-request.c                 |  8 ++-----
 src/tmdb/grl-tmdb.c                         | 12 +++-------
 src/vimeo/grl-vimeo.c                       | 13 +++-------
 src/vimeo/gvimeo.c                          |  6 ++---
 src/youtube/grl-youtube.c                   | 11 ++-------
 src/youtube/grl-youtube.h                   |  4 ++--
 47 files changed, 135 insertions(+), 328 deletions(-)
---
diff --git a/src/bookmarks/bookmarks-resource.c b/src/bookmarks/bookmarks-resource.c
index 734be13..4c51f8a 100644
--- a/src/bookmarks/bookmarks-resource.c
+++ b/src/bookmarks/bookmarks-resource.c
@@ -22,8 +22,6 @@
 
 #include "bookmarks-resource.h"
 
-G_DEFINE_TYPE(BookmarksResource, bookmarks_resource, GOM_TYPE_RESOURCE)
-
 struct _BookmarksResourcePrivate
 {
    int            id;
@@ -54,6 +52,8 @@ enum
 
 static GParamSpec *specs[LAST_PROP];
 
+G_DEFINE_TYPE_WITH_PRIVATE (BookmarksResource, bookmarks_resource, GOM_TYPE_RESOURCE)
+
 static void
 bookmarks_resource_finalize (GObject *object)
 {
@@ -167,7 +167,6 @@ bookmarks_resource_class_init (BookmarksResourceClass *klass)
    object_class->finalize = bookmarks_resource_finalize;
    object_class->get_property = bookmarks_resource_get_property;
    object_class->set_property = bookmarks_resource_set_property;
-   g_type_class_add_private(object_class, sizeof(BookmarksResourcePrivate));
 
    resource_class = GOM_RESOURCE_CLASS(klass);
    gom_resource_class_set_table(resource_class, "bookmarks");
@@ -262,9 +261,7 @@ bookmarks_resource_class_init (BookmarksResourceClass *klass)
 static void
 bookmarks_resource_init (BookmarksResource *resource)
 {
-   resource->priv = G_TYPE_INSTANCE_GET_PRIVATE(resource,
-                                                BOOKMARKS_TYPE_RESOURCE,
-                                                BookmarksResourcePrivate);
+   resource->priv = bookmarks_resource_get_instance_private (resource);
 }
 
 GType
diff --git a/src/bookmarks/grl-bookmarks.c b/src/bookmarks/grl-bookmarks.c
index 671d2f3..b83b4e3 100644
--- a/src/bookmarks/grl-bookmarks.c
+++ b/src/bookmarks/grl-bookmarks.c
@@ -35,11 +35,6 @@
 #include "grl-bookmarks.h"
 #include "bookmarks-resource.h"
 
-#define GRL_BOOKMARKS_GET_PRIVATE(object)                         \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                         \
-                               GRL_BOOKMARKS_SOURCE_TYPE,        \
-                               GrlBookmarksPrivate))
-
 #define GRL_ROOT_TITLE "Bookmarks"
 
 /* --------- Logging  -------- */
@@ -211,8 +206,6 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
    source_class->resolve = grl_bookmarks_source_resolve;
    source_class->notify_change_start = grl_bookmarks_source_notify_change_start;
    source_class->notify_change_stop = grl_bookmarks_source_notify_change_stop;
-
-   g_type_class_add_private (klass, sizeof (GrlBookmarksPrivate));
 }
 
 static void
@@ -230,6 +223,8 @@ migrate_cb (GObject      *object,
    }
 }
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlBookmarksSource, grl_bookmarks_source, GRL_TYPE_SOURCE)
+
 static void
 grl_bookmarks_source_init (GrlBookmarksSource *source)
 {
@@ -238,7 +233,7 @@ grl_bookmarks_source_init (GrlBookmarksSource *source)
   gchar *db_path;
   GList *object_types;
 
-  source->priv = GRL_BOOKMARKS_GET_PRIVATE (source);
+  source->priv = grl_bookmarks_source_get_instance_private (source);
 
   path = g_build_filename (g_get_user_data_dir (), "grilo-plugins", NULL);
 
@@ -264,8 +259,6 @@ grl_bookmarks_source_init (GrlBookmarksSource *source)
   gom_repository_automatic_migrate_async (source->priv->repository, 2, object_types, migrate_cb, source);
 }
 
-G_DEFINE_TYPE (GrlBookmarksSource, grl_bookmarks_source, GRL_TYPE_SOURCE);
-
 static void
 grl_bookmarks_source_finalize (GObject *object)
 {
diff --git a/src/bookmarks/grl-bookmarks.h b/src/bookmarks/grl-bookmarks.h
index c743d77..aa1bc99 100644
--- a/src/bookmarks/grl-bookmarks.h
+++ b/src/bookmarks/grl-bookmarks.h
@@ -51,7 +51,7 @@
                               GRL_BOOKMARKS_SOURCE_TYPE, \
                               GrlBookmarksSourceClass))
 
-typedef struct _GrlBookmarksPrivate GrlBookmarksPrivate;
+typedef struct _GrlBookmarksPrivate GrlBookmarksSourcePrivate;
 typedef struct _GrlBookmarksSource  GrlBookmarksSource;
 
 struct _GrlBookmarksSource {
@@ -59,7 +59,7 @@ struct _GrlBookmarksSource {
   GrlSource parent;
 
   /*< private >*/
-  GrlBookmarksPrivate *priv;
+  GrlBookmarksSourcePrivate *priv;
 };
 
 typedef struct _GrlBookmarksSourceClass GrlBookmarksSourceClass;
diff --git a/src/chromaprint/grl-chromaprint.c b/src/chromaprint/grl-chromaprint.c
index 3a22229..5a3598b 100644
--- a/src/chromaprint/grl-chromaprint.c
+++ b/src/chromaprint/grl-chromaprint.c
@@ -29,11 +29,6 @@
 
 #include "grl-chromaprint.h"
 
-#define GRL_CHROMAPRINT_GET_PRIVATE(object)                  \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                  \
-                               GRL_CHROMAPRINT_SOURCE_TYPE,  \
-                               GrlChromaprintPrivate))
-
 /* --------- Logging  -------- */
 
 #define GRL_LOG_DOMAIN_DEFAULT chromaprint_log_domain
@@ -154,6 +149,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== Chromaprint GObject ================= */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlChromaprintSource, grl_chromaprint_source, GRL_TYPE_SOURCE)
+
 static GrlChromaprintSource *
 grl_chromaprint_source_new ()
 {
@@ -183,8 +180,6 @@ grl_chromaprint_source_class_init (GrlChromaprintSourceClass * klass)
   source_class->may_resolve = grl_chromaprint_source_may_resolve;
   source_class->resolve = grl_chromaprint_source_resolve;
   gobject_class->finalize = grl_chromaprint_source_finalize;
-
-  g_type_class_add_private (klass, sizeof (GrlChromaprintPrivate));
 }
 
 static void
@@ -192,7 +187,7 @@ grl_chromaprint_source_init (GrlChromaprintSource *source)
 {
   GRL_DEBUG ("chromaprint_source_init");
 
-  source->priv = GRL_CHROMAPRINT_GET_PRIVATE (source);
+  source->priv = grl_chromaprint_source_get_instance_private (source);
 
   /* All supported keys in a GList */
   source->priv->supported_keys =
@@ -201,8 +196,6 @@ grl_chromaprint_source_init (GrlChromaprintSource *source)
                                GRL_METADATA_KEY_INVALID);
 }
 
-G_DEFINE_TYPE (GrlChromaprintSource, grl_chromaprint_source, GRL_TYPE_SOURCE);
-
 static void
 grl_chromaprint_source_finalize (GObject *object)
 {
diff --git a/src/chromaprint/grl-chromaprint.h b/src/chromaprint/grl-chromaprint.h
index 018505c..a6b9bcc 100644
--- a/src/chromaprint/grl-chromaprint.h
+++ b/src/chromaprint/grl-chromaprint.h
@@ -47,12 +47,12 @@
                              GRL_CHROMAPRINT_SOURCE_TYPE,  \
                              GrlCHROMAPRINTSourceClass))
 
-typedef struct _GrlChromaprintPrivate GrlChromaprintPrivate;
+typedef struct _GrlChromaprintPrivate GrlChromaprintSourcePrivate;
 typedef struct _GrlChromaprintSource  GrlChromaprintSource;
 
 struct _GrlChromaprintSource {
   GrlSource parent;
-  GrlChromaprintPrivate *priv;
+  GrlChromaprintSourcePrivate *priv;
 };
 
 typedef struct _GrlChromaprintSourceClass GrlChromaprintSourceClass;
diff --git a/src/dleyna/grl-dleyna-server.c b/src/dleyna/grl-dleyna-server.c
index 73d8d00..5ab7ea1 100644
--- a/src/dleyna/grl-dleyna-server.c
+++ b/src/dleyna/grl-dleyna-server.c
@@ -56,6 +56,7 @@ enum
 static void grl_dleyna_server_async_initable_iface_init (GAsyncInitableIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (GrlDleynaServer, grl_dleyna_server, G_TYPE_OBJECT,
+                         G_ADD_PRIVATE (GrlDleynaServer)
                          G_IMPLEMENT_INTERFACE (G_TYPE_ASYNC_INITABLE, 
grl_dleyna_server_async_initable_iface_init))
 
 static void
@@ -152,8 +153,7 @@ grl_dleyna_server_init (GrlDleynaServer *self)
 {
   GrlDleynaServerPrivate *priv;
 
-  self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GRL_TYPE_DLEYNA_SERVER,
-                                                   GrlDleynaServerPrivate);
+  self->priv = priv = grl_dleyna_server_get_instance_private (self);
 }
 
 static void
@@ -217,8 +217,6 @@ grl_dleyna_server_class_init (GrlDleynaServerClass *class)
                                                         G_PARAM_STATIC_NAME |
                                                         G_PARAM_STATIC_BLURB |
                                                         G_PARAM_STATIC_NICK));
-
-  g_type_class_add_private (class, sizeof (GrlDleynaServerPrivate));
 }
 
 void
diff --git a/src/dleyna/grl-dleyna-servers-manager.c b/src/dleyna/grl-dleyna-servers-manager.c
index 28fb6a4..701567c 100644
--- a/src/dleyna/grl-dleyna-servers-manager.c
+++ b/src/dleyna/grl-dleyna-servers-manager.c
@@ -47,7 +47,7 @@ static guint signals[LAST_SIGNAL] = { 0 };
 
 static GObject *grl_dleyna_servers_manager_singleton = NULL;
 
-G_DEFINE_TYPE (GrlDleynaServersManager, grl_dleyna_servers_manager, G_TYPE_OBJECT)
+G_DEFINE_TYPE_WITH_PRIVATE (GrlDleynaServersManager, grl_dleyna_servers_manager, G_TYPE_OBJECT)
 
 static void
 grl_dleyna_servers_manager_dispose (GObject *object)
@@ -202,8 +202,7 @@ grl_dleyna_servers_manager_init (GrlDleynaServersManager *self)
 {
   GrlDleynaServersManagerPrivate *priv;
 
-  self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GRL_TYPE_DLEYNA_SERVERS_MANAGER,
-                                                   GrlDleynaServersManagerPrivate);
+  self->priv = priv = grl_dleyna_servers_manager_get_instance_private (self);
 
   grl_dleyna_manager_proxy_new_for_bus (G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE,
                                         "com.intel.dleyna-server", "/com/intel/dLeynaServer", NULL,
@@ -228,8 +227,6 @@ grl_dleyna_servers_manager_class_init (GrlDleynaServersManagerClass *class)
                                        G_SIGNAL_RUN_LAST, 0, NULL, NULL,
                                        g_cclosure_marshal_VOID__OBJECT,
                                        G_TYPE_NONE, 1, GRL_TYPE_DLEYNA_SERVER);
-
-  g_type_class_add_private (class, sizeof (GrlDleynaServersManagerPrivate));
 }
 
 GrlDleynaServersManager *
diff --git a/src/dleyna/grl-dleyna-source.c b/src/dleyna/grl-dleyna-source.c
index c433ef0..6da7855 100644
--- a/src/dleyna/grl-dleyna-source.c
+++ b/src/dleyna/grl-dleyna-source.c
@@ -81,9 +81,6 @@ typedef enum {
   DLEYNA_CHANGE_TYPE_CONTAINER = 5
 } DleynaChangeType;
 
-#define GRL_DLEYNA_GET_PRIVATE(object)                                    \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object), GRL_DLEYNA_SOURCE_TYPE, GrlDleynaSourcePrivate))
-
 /* ================== Prototypes ================== */
 
 static void            grl_dleyna_source_dispose              (GObject *object);
@@ -126,7 +123,7 @@ static void            grl_dleyna_source_set_server           (GrlDleynaSource *
 
 /* ================== GObject API implementation ================== */
 
-G_DEFINE_TYPE (GrlDleynaSource, grl_dleyna_source, GRL_TYPE_SOURCE)
+G_DEFINE_TYPE_WITH_PRIVATE (GrlDleynaSource, grl_dleyna_source, GRL_TYPE_SOURCE)
 
 static void
 grl_dleyna_source_class_init (GrlDleynaSourceClass * klass)
@@ -164,14 +161,12 @@ grl_dleyna_source_class_init (GrlDleynaSourceClass * klass)
                                                         G_PARAM_STATIC_NAME |
                                                         G_PARAM_STATIC_BLURB |
                                                         G_PARAM_STATIC_NICK));
-
-  g_type_class_add_private (klass, sizeof (GrlDleynaSourcePrivate));
 }
 
 static void
 grl_dleyna_source_init (GrlDleynaSource *source)
 {
-  source->priv = GRL_DLEYNA_GET_PRIVATE (source);
+  source->priv = grl_dleyna_source_get_instance_private (source);
   source->priv->uploads = g_hash_table_new_full (g_direct_hash, g_direct_equal, NULL,
                                                  (GDestroyNotify)grl_dleyna_source_upload_destroy);
 }
diff --git a/src/dmap/grl-daap-db.c b/src/dmap/grl-daap-db.c
index 5bcd804..6621094 100644
--- a/src/dmap/grl-daap-db.c
+++ b/src/dmap/grl-daap-db.c
@@ -375,6 +375,7 @@ dmap_db_interface_init (gpointer iface, gpointer data)
 }
 
 G_DEFINE_TYPE_WITH_CODE (GrlDAAPDb, grl_daap_db, G_TYPE_OBJECT,
+                         G_ADD_PRIVATE (GrlDAAPDb)
                          G_IMPLEMENT_INTERFACE (DMAP_TYPE_DB, dmap_db_interface_init))
 
 static GObject*
@@ -390,7 +391,7 @@ grl_daap_db_constructor (GType type, guint n_construct_params, GObjectConstructP
 static void
 grl_daap_db_init (GrlDAAPDb *db)
 {
-  db->priv = GRL_DAAP_DB_GET_PRIVATE (db);
+  db->priv = grl_daap_db_get_instance_private (db);
 
   db->priv->albums_container  = grl_media_container_new ();
   db->priv->artists_container = grl_media_container_new ();
@@ -455,8 +456,6 @@ grl_daap_db_class_init (GrlDAAPDbClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (GrlDAAPDbPrivate));
-
   object_class->finalize = grl_daap_db_finalize;
   object_class->constructor = grl_daap_db_constructor;
   object_class->set_property = grl_daap_db_set_property;
diff --git a/src/dmap/grl-daap-record.c b/src/dmap/grl-daap-record.c
index bbc7243..d1721d2 100644
--- a/src/dmap/grl-daap-record.c
+++ b/src/dmap/grl-daap-record.c
@@ -256,8 +256,6 @@ grl_daap_record_class_init (GrlDAAPRecordClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (GrlDAAPRecordPrivate));
-
   gobject_class->set_property = grl_daap_record_set_property;
   gobject_class->get_property = grl_daap_record_get_property;
   gobject_class->finalize     = grl_daap_record_finalize;
@@ -303,6 +301,7 @@ grl_daap_record_dmap_iface_init (gpointer iface, gpointer data)
 
 
 G_DEFINE_TYPE_WITH_CODE (GrlDAAPRecord, grl_daap_record, G_TYPE_OBJECT,
+                         G_ADD_PRIVATE (GrlDAAPRecord)
                          G_IMPLEMENT_INTERFACE (DAAP_TYPE_RECORD, grl_daap_record_daap_iface_init)
                          G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD, grl_daap_record_dmap_iface_init))
 
diff --git a/src/dmap/grl-daap.c b/src/dmap/grl-daap.c
index e8beb98..13cc7e3 100644
--- a/src/dmap/grl-daap.c
+++ b/src/dmap/grl-daap.c
@@ -51,11 +51,6 @@ GRL_LOG_DOMAIN_STATIC(daap_log_domain);
 
 /* --- Grilo DAAP Private --- */
 
-#define GRL_DAAP_SOURCE_GET_PRIVATE(object)           \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),              \
-                               GRL_DAAP_SOURCE_TYPE,  \
-                               GrlDaapSourcePrivate))
-
 struct _GrlDaapSourcePrivate {
   DMAPMdnsBrowserService *service;
 };
@@ -155,9 +150,7 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== DAAP GObject ====================== */
 
-G_DEFINE_TYPE (GrlDaapSource,
-               grl_daap_source,
-               GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlDaapSource, grl_daap_source, GRL_TYPE_SOURCE)
 
 static GrlDaapSource *
 grl_daap_source_new (DMAPMdnsBrowserService *service)
@@ -197,14 +190,12 @@ grl_daap_source_class_init (GrlDaapSourceClass * klass)
   source_class->supported_keys = grl_daap_source_supported_keys;
 
   G_OBJECT_CLASS (source_class)->finalize = grl_daap_source_finalize;
-
-  g_type_class_add_private (klass, sizeof (GrlDaapSourcePrivate));
 }
 
 static void
 grl_daap_source_init (GrlDaapSource *source)
 {
-  source->priv = GRL_DAAP_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_daap_source_get_instance_private (source);
 }
 
 static void
diff --git a/src/dmap/grl-dpap-db.c b/src/dmap/grl-dpap-db.c
index 69f8e34..1f2d5ca 100644
--- a/src/dmap/grl-dpap-db.c
+++ b/src/dmap/grl-dpap-db.c
@@ -314,6 +314,7 @@ dmap_db_interface_init (gpointer iface, gpointer data)
 }
 
 G_DEFINE_TYPE_WITH_CODE (GrlDPAPDb, grl_dpap_db, G_TYPE_OBJECT,
+                         G_ADD_PRIVATE (GrlDPAPDb)
                          G_IMPLEMENT_INTERFACE (DMAP_TYPE_DB, dmap_db_interface_init))
 
 static GObject*
@@ -329,7 +330,7 @@ grl_dpap_db_constructor (GType type, guint n_construct_params, GObjectConstructP
 static void
 grl_dpap_db_init (GrlDPAPDb *db)
 {
-  db->priv = GRL_DPAP_DB_GET_PRIVATE (db);
+  db->priv = grl_dpap_db_get_instance_private (db);
 
   db->priv->photos_container  = grl_media_container_new ();
 
@@ -359,8 +360,6 @@ grl_dpap_db_class_init (GrlDPAPDbClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (GrlDPAPDbPrivate));
-
   object_class->finalize = grl_dpap_db_finalize;
   object_class->constructor = grl_dpap_db_constructor;
 }
diff --git a/src/dmap/grl-dpap-record.c b/src/dmap/grl-dpap-record.c
index c4a73db..6281417 100644
--- a/src/dmap/grl-dpap-record.c
+++ b/src/dmap/grl-dpap-record.c
@@ -51,6 +51,14 @@ enum {
   PROP_THUMBNAIL
 };
 
+static void grl_dpap_record_dmap_iface_init (gpointer iface, gpointer data);
+static void grl_dpap_record_dpap_iface_init (gpointer iface, gpointer data);
+
+G_DEFINE_TYPE_WITH_CODE (GrlDPAPRecord, grl_dpap_record, G_TYPE_OBJECT,
+                         G_ADD_PRIVATE (GrlDPAPRecord)
+                         G_IMPLEMENT_INTERFACE (DPAP_TYPE_RECORD, grl_dpap_record_dpap_iface_init)
+                         G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD, grl_dpap_record_dmap_iface_init))
+
 static void
 grl_dpap_record_set_property (GObject *object,
                                 guint prop_id,
@@ -177,7 +185,7 @@ grl_dpap_record_read (DPAPRecord *record, GError **error)
 static void
 grl_dpap_record_init (GrlDPAPRecord *record)
 {
-  record->priv = SIMPLE_DPAP_RECORD_GET_PRIVATE (record);
+  record->priv = grl_dpap_record_get_instance_private (record);
 }
 
 static void grl_dpap_record_finalize (GObject *object);
@@ -187,8 +195,6 @@ grl_dpap_record_class_init (GrlDPAPRecordClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (GrlDPAPRecordPrivate));
-
   gobject_class->set_property = grl_dpap_record_set_property;
   gobject_class->get_property = grl_dpap_record_get_property;
   gobject_class->finalize     = grl_dpap_record_finalize;
@@ -224,11 +230,6 @@ grl_dpap_record_dmap_iface_init (gpointer iface, gpointer data)
   g_assert (G_TYPE_FROM_INTERFACE (dmap_record) == DMAP_TYPE_RECORD);
 }
 
-
-G_DEFINE_TYPE_WITH_CODE (GrlDPAPRecord, grl_dpap_record, G_TYPE_OBJECT,
-                         G_IMPLEMENT_INTERFACE (DPAP_TYPE_RECORD, grl_dpap_record_dpap_iface_init)
-                         G_IMPLEMENT_INTERFACE (DMAP_TYPE_RECORD, grl_dpap_record_dmap_iface_init))
-
 static void
 grl_dpap_record_finalize (GObject *object)
 {
diff --git a/src/dmap/grl-dpap.c b/src/dmap/grl-dpap.c
index 9e0071e..744de80 100644
--- a/src/dmap/grl-dpap.c
+++ b/src/dmap/grl-dpap.c
@@ -155,9 +155,7 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== DMAP GObject ====================== */
 
-G_DEFINE_TYPE (GrlDpapSource,
-               grl_dpap_source,
-               GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlDpapSource, grl_dpap_source, GRL_TYPE_SOURCE)
 
 static GrlDpapSource *
 grl_dpap_source_new (DMAPMdnsBrowserService *service)
@@ -197,14 +195,12 @@ grl_dpap_source_class_init (GrlDpapSourceClass * klass)
   source_class->supported_keys = grl_dpap_source_supported_keys;
 
   G_OBJECT_CLASS (source_class)->finalize = grl_dpap_source_finalize;
-
-  g_type_class_add_private (klass, sizeof (GrlDpapSourcePrivate));
 }
 
 static void
 grl_dpap_source_init (GrlDpapSource *source)
 {
-  source->priv = GRL_DPAP_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_dpap_source_get_instance_private (source);
 }
 
 static void
diff --git a/src/filesystem/grl-filesystem.c b/src/filesystem/grl-filesystem.c
index 1bda4f0..846be06 100644
--- a/src/filesystem/grl-filesystem.c
+++ b/src/filesystem/grl-filesystem.c
@@ -60,11 +60,6 @@ GRL_LOG_DOMAIN_STATIC(filesystem_log_domain);
 
 /* --- Grilo Filesystem Private --- */
 
-#define GRL_FILESYSTEM_SOURCE_GET_PRIVATE(object)         \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                  \
-                            GRL_FILESYSTEM_SOURCE_TYPE,  \
-                            GrlFilesystemSourcePrivate))
-
 struct _GrlFilesystemSourcePrivate {
   GList *chosen_uris;
   guint max_search_depth;
@@ -212,9 +207,7 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 /* ================== Filesystem GObject ================ */
 
 
-G_DEFINE_TYPE (GrlFilesystemSource,
-               grl_filesystem_source,
-               GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlFilesystemSource, grl_filesystem_source, GRL_TYPE_SOURCE)
 
 static GrlFilesystemSource *
 grl_filesystem_source_new (void)
@@ -245,14 +238,12 @@ grl_filesystem_source_class_init (GrlFilesystemSourceClass * klass)
   source_class->resolve = grl_filesystem_source_resolve;
   source_class->test_media_from_uri = grl_filesystem_test_media_from_uri;
   source_class->media_from_uri = grl_filesystem_get_media_from_uri;
-
-  g_type_class_add_private (klass, sizeof (GrlFilesystemSourcePrivate));
 }
 
 static void
 grl_filesystem_source_init (GrlFilesystemSource *source)
 {
-  source->priv = GRL_FILESYSTEM_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_filesystem_source_get_instance_private (source);
   source->priv->cancellables = g_hash_table_new (NULL, NULL);
   source->priv->monitors = g_hash_table_new_full (g_str_hash, g_str_equal,
                                                   g_free, g_object_unref);
diff --git a/src/flickr/gflickr.c b/src/flickr/gflickr.c
index 16fe796..d9aca42 100644
--- a/src/flickr/gflickr.c
+++ b/src/flickr/gflickr.c
@@ -9,12 +9,6 @@
 #include <grilo.h>
 #include <net/grl-net.h>
 
-
-#define G_FLICKR_GET_PRIVATE(object)            \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),        \
-                               G_FLICKR_TYPE,   \
-                               GFlickrPrivate))
-
 #define GRL_LOG_DOMAIN_DEFAULT flickr_log_domain
 
 #define FLICKR_PHOTO_ORIG_URL                           \
@@ -65,21 +59,19 @@ static void g_flickr_finalize (GObject *object);
 
 /* -------------------- GOBJECT -------------------- */
 
-G_DEFINE_TYPE (GFlickr, g_flickr, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (GFlickr, g_flickr, G_TYPE_OBJECT)
 
 static void
 g_flickr_class_init (GFlickrClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = g_flickr_finalize;
-
-  g_type_class_add_private (klass, sizeof (GFlickrPrivate));
 }
 
 static void
 g_flickr_init (GFlickr *f)
 {
-  f->priv = G_FLICKR_GET_PRIVATE (f);
+  f->priv = g_flickr_get_instance_private (f);
 
   f->priv->consumer_key = NULL;
   f->priv->consumer_secret = NULL;
diff --git a/src/flickr/grl-flickr.c b/src/flickr/grl-flickr.c
index 0e0fff1..a2a7407 100644
--- a/src/flickr/grl-flickr.c
+++ b/src/flickr/grl-flickr.c
@@ -43,11 +43,6 @@
 #include "grl-flickr.h"
 #include "gflickr.h"
 
-#define GRL_FLICKR_SOURCE_GET_PRIVATE(object)                          \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                               \
-                               GRL_FLICKR_SOURCE_TYPE,                 \
-                               GrlFlickrSourcePrivate))
-
 /* --------- Logging  -------- */
 
 #define GRL_LOG_DOMAIN_DEFAULT flickr_log_domain
@@ -263,7 +258,7 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== Flickr GObject ================ */
 
-G_DEFINE_TYPE (GrlFlickrSource, grl_flickr_source, GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlFlickrSource, grl_flickr_source, GRL_TYPE_SOURCE)
 
 static GrlFlickrSource *
 grl_flickr_source_public_new (const gchar *flickr_api_key,
@@ -341,14 +336,12 @@ grl_flickr_source_class_init (GrlFlickrSourceClass * klass)
   source_class->browse = grl_flickr_source_browse;
   source_class->resolve = grl_flickr_source_resolve;
   source_class->search = grl_flickr_source_search;
-
-  g_type_class_add_private (klass, sizeof (GrlFlickrSourcePrivate));
 }
 
 static void
 grl_flickr_source_init (GrlFlickrSource *source)
 {
-  source->priv = GRL_FLICKR_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_flickr_source_get_instance_private (source);
 
   grl_source_set_auto_split_threshold (GRL_SOURCE (source), SEARCH_MAX);
 }
diff --git a/src/freebox/freebox-monitor.c b/src/freebox/freebox-monitor.c
index 286eb5b..f4a038d 100644
--- a/src/freebox/freebox-monitor.c
+++ b/src/freebox/freebox-monitor.c
@@ -34,9 +34,7 @@ struct _FreeboxMonitorPrivate {
   AvahiServiceBrowser *browser;
 };
 
-#define GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), FREEBOX_TYPE_MONITOR, FreeboxMonitorPrivate))
-
-G_DEFINE_TYPE (FreeboxMonitor, freebox_monitor, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (FreeboxMonitor, freebox_monitor, G_TYPE_OBJECT)
 
 enum {
   FOUND,
@@ -126,8 +124,6 @@ freebox_monitor_class_init (FreeboxMonitorClass *klass)
 {
     GObjectClass *o_class = (GObjectClass *)klass;
 
-    g_type_class_add_private (klass, sizeof (FreeboxMonitorPrivate));
-
     o_class->finalize = freebox_monitor_finalize;
 
     signals[FOUND] = g_signal_new ("found",
@@ -154,7 +150,7 @@ freebox_monitor_init (FreeboxMonitor *self)
   FreeboxMonitorPrivate *priv;
   int error;
 
-  priv = self->priv = GET_PRIVATE (self);
+  priv = self->priv = freebox_monitor_get_instance_private (self);
 
   priv->poll = avahi_glib_poll_new (NULL, G_PRIORITY_DEFAULT);
   priv->client = avahi_client_new (avahi_glib_poll_get (priv->poll),
diff --git a/src/freebox/grl-freebox.c b/src/freebox/grl-freebox.c
index e89eb7e..b07dc85 100644
--- a/src/freebox/grl-freebox.c
+++ b/src/freebox/grl-freebox.c
@@ -54,11 +54,6 @@ GRL_LOG_DOMAIN_STATIC(freebox_log_domain);
 
 /* --- Grilo Freebox Private --- */
 
-#define GRL_FREEBOX_SOURCE_GET_PRIVATE(object)           \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                       \
-                               GRL_FREEBOX_SOURCE_TYPE,  \
-                               GrlFreeboxSourcePrivate))
-
 struct _GrlFreeboxSourcePrivate {
   GrlMedia *media;
   int       last_seen_channel;
@@ -182,10 +177,7 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== Freebox GObject ================ */
 
-
-G_DEFINE_TYPE (GrlFreeboxSource,
-               grl_freebox_source,
-               GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlFreeboxSource, grl_freebox_source, GRL_TYPE_SOURCE)
 
 static GrlFreeboxSource *
 grl_freebox_source_new_tv (void)
@@ -259,8 +251,6 @@ grl_freebox_source_class_init (GrlFreeboxSourceClass * klass)
 
   source_class->supported_keys = grl_freebox_source_supported_keys;
   source_class->browse = grl_freebox_source_browse;
-
-  g_type_class_add_private (klass, sizeof (GrlFreeboxSourcePrivate));
 }
 
 static void
@@ -268,7 +258,7 @@ grl_freebox_source_init (GrlFreeboxSource *source)
 {
   GrlFreeboxSourcePrivate *priv;
 
-  priv = source->priv = GRL_FREEBOX_SOURCE_GET_PRIVATE(source);
+  priv = source->priv = grl_freebox_source_get_instance_private (source);
 
   priv->media = grl_media_new ();
 }
diff --git a/src/jamendo/grl-jamendo.c b/src/jamendo/grl-jamendo.c
index d271f60..8b1aefd 100644
--- a/src/jamendo/grl-jamendo.c
+++ b/src/jamendo/grl-jamendo.c
@@ -165,11 +165,6 @@ struct _GrlJamendoSourcePriv {
   GCancellable *cancellable;
 };
 
-#define GRL_JAMENDO_SOURCE_GET_PRIVATE(object)         \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                \
-                               GRL_JAMENDO_SOURCE_TYPE,        \
-                               GrlJamendoSourcePriv))
-
 static GrlJamendoSource *grl_jamendo_source_new (void);
 
 gboolean grl_jamendo_plugin_init (GrlRegistry *registry,
@@ -231,6 +226,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== Jamendo GObject ================ */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlJamendoSource, grl_jamendo_source, GRL_TYPE_SOURCE)
+
 static GrlJamendoSource *
 grl_jamendo_source_new (void)
 {
@@ -249,8 +246,6 @@ grl_jamendo_source_new (void)
                       NULL);
 }
 
-G_DEFINE_TYPE (GrlJamendoSource, grl_jamendo_source, GRL_TYPE_SOURCE);
-
 static void
 grl_jamendo_source_finalize (GObject *object)
 {
@@ -278,14 +273,12 @@ grl_jamendo_source_class_init (GrlJamendoSourceClass * klass)
   source_class->browse = grl_jamendo_source_browse;
   source_class->query = grl_jamendo_source_query;
   source_class->search = grl_jamendo_source_search;
-
-  g_type_class_add_private (klass, sizeof (GrlJamendoSourcePriv));
 }
 
 static void
 grl_jamendo_source_init (GrlJamendoSource *source)
 {
-  source->priv = GRL_JAMENDO_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_jamendo_source_get_instance_private (source);
 
   /* If we try to get too much elements in a single step, Jamendo might return
      nothing. So limit the maximum amount of elements in each query */
@@ -1397,11 +1390,11 @@ static void
 grl_jamendo_source_cancel (GrlSource *source, guint operation_id)
 {
   XmlParseEntries *xpe;
-  GrlJamendoSourcePriv *priv;
+  GrlJamendoSourcePrivate *priv;
 
   g_return_if_fail (GRL_IS_JAMENDO_SOURCE (source));
 
-  priv = GRL_JAMENDO_SOURCE_GET_PRIVATE (source);
+  priv = GRL_JAMENDO_SOURCE (source)->priv;
 
   if (priv->cancellable && G_IS_CANCELLABLE (priv->cancellable))
     g_cancellable_cancel (priv->cancellable);
diff --git a/src/jamendo/grl-jamendo.h b/src/jamendo/grl-jamendo.h
index 74f02e3..6c41691 100644
--- a/src/jamendo/grl-jamendo.h
+++ b/src/jamendo/grl-jamendo.h
@@ -54,14 +54,14 @@
                               GrlJamendoSourceClass))
 
 typedef struct _GrlJamendoSource GrlJamendoSource;
-typedef struct _GrlJamendoSourcePriv GrlJamendoSourcePriv;
+typedef struct _GrlJamendoSourcePriv GrlJamendoSourcePrivate;
 
 struct _GrlJamendoSource {
 
   GrlSource parent;
 
   /*< private >*/
-  GrlJamendoSourcePriv *priv;
+  GrlJamendoSourcePrivate *priv;
 
 };
 
diff --git a/src/local-metadata/grl-local-metadata.c b/src/local-metadata/grl-local-metadata.c
index 8c641b0..3fb1d19 100644
--- a/src/local-metadata/grl-local-metadata.c
+++ b/src/local-metadata/grl-local-metadata.c
@@ -44,11 +44,6 @@ GRL_LOG_DOMAIN_STATIC(local_metadata_log_domain);
 
 /**/
 
-#define GRL_LOCAL_METADATA_SOURCE_GET_PRIVATE(object)           \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                        \
-                               GRL_LOCAL_METADATA_SOURCE_TYPE, \
-                               GrlLocalMetadataSourcePriv))
-
 struct _GrlLocalMetadataSourcePriv {
   GrlKeyID hash_keyid;
 };
@@ -80,8 +75,8 @@ static gboolean grl_local_metadata_source_may_resolve (GrlSource *source,
 gboolean grl_local_metadata_source_plugin_init (GrlRegistry *registry,
                                                 GrlPlugin *plugin,
                                                 GList *configs);
-static resolution_flags_t get_resolution_flags (GList                      *keys,
-                                                GrlLocalMetadataSourcePriv *priv);
+static resolution_flags_t get_resolution_flags (GList                         *keys,
+                                                GrlLocalMetadataSourcePrivate *priv);
 
 /**/
 
@@ -123,6 +118,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== GrlLocalMetadata GObject ================ */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlLocalMetadataSource, grl_local_metadata_source, GRL_TYPE_SOURCE)
+
 static GrlLocalMetadataSource *
 grl_local_metadata_source_new (void)
 {
@@ -143,18 +140,14 @@ grl_local_metadata_source_class_init (GrlLocalMetadataSourceClass * klass)
   source_class->cancel = grl_local_metadata_source_cancel;
   source_class->may_resolve = grl_local_metadata_source_may_resolve;
   source_class->resolve = grl_local_metadata_source_resolve;
-
-  g_type_class_add_private (klass, sizeof (GrlLocalMetadataSourcePriv));
 }
 
 static void
 grl_local_metadata_source_init (GrlLocalMetadataSource *source)
 {
+    source->priv = grl_local_metadata_source_get_instance_private (source);
 }
 
-G_DEFINE_TYPE (GrlLocalMetadataSource,
-               grl_local_metadata_source,
-               GRL_TYPE_SOURCE);
 
 /* ======================= Utilities ==================== */
 
@@ -257,9 +250,9 @@ extract_gibest_hash (GTask        *task,
   gint i;
   char *str;
   ResolveData *resolve_data = task_data;
-  GrlLocalMetadataSourcePriv *priv;
+  GrlLocalMetadataSourcePrivate *priv;
 
-  priv = GRL_LOCAL_METADATA_SOURCE_GET_PRIVATE (resolve_data->source);
+  priv = GRL_LOCAL_METADATA_SOURCE (resolve_data->source)->priv;
 
   stream = G_INPUT_STREAM (g_file_read (file, cancellable, &error));
   if (stream == NULL)
@@ -327,14 +320,14 @@ got_file_info (GFile *file,
   GError *error = NULL;
   const gchar *thumbnail_path;
   gboolean thumbnail_is_valid;
-  GrlLocalMetadataSourcePriv *priv;
+  GrlLocalMetadataSourcePrivate *priv;
   ResolveData *resolve_data = user_data;
   GrlSourceResolveSpec *rs = resolve_data->rs;
   resolution_flags_t flags;
 
   GRL_DEBUG ("got_file_info");
 
-  priv = GRL_LOCAL_METADATA_SOURCE_GET_PRIVATE (resolve_data->source);
+  priv = GRL_LOCAL_METADATA_SOURCE (resolve_data->source)->priv;
 
   cancellable = resolve_data_ensure_cancellable (resolve_data);
 
@@ -552,8 +545,8 @@ has_compatible_media_url (GrlMedia *media)
 }
 
 static resolution_flags_t
-get_resolution_flags (GList                      *keys,
-                      GrlLocalMetadataSourcePriv *priv)
+get_resolution_flags (GList                         *keys,
+                      GrlLocalMetadataSourcePrivate *priv)
 {
   GList *iter = keys;
   resolution_flags_t flags = 0;
@@ -574,7 +567,7 @@ get_resolution_flags (GList                      *keys,
 /* ================== API Implementation ================ */
 
 static void
-ensure_hash_keyid (GrlLocalMetadataSourcePriv *priv)
+ensure_hash_keyid (GrlLocalMetadataSourcePrivate *priv)
 {
   if (priv->hash_keyid == GRL_METADATA_KEY_INVALID) {
     GrlRegistry *registry = grl_registry_get_default ();
@@ -586,8 +579,7 @@ static const GList *
 grl_local_metadata_source_supported_keys (GrlSource *source)
 {
   static GList *keys = NULL;
-  GrlLocalMetadataSourcePriv *priv =
-          GRL_LOCAL_METADATA_SOURCE_GET_PRIVATE (source);
+  GrlLocalMetadataSourcePrivate *priv = GRL_LOCAL_METADATA_SOURCE (source)->priv;
 
   ensure_hash_keyid (priv);
   if (!keys) {
@@ -658,8 +650,7 @@ grl_local_metadata_source_resolve (GrlSource *source,
 {
   GError *error = NULL;
   resolution_flags_t flags;
-  GrlLocalMetadataSourcePriv *priv =
-    GRL_LOCAL_METADATA_SOURCE_GET_PRIVATE (source);
+  GrlLocalMetadataSourcePrivate *priv = GRL_LOCAL_METADATA_SOURCE (source)->priv;
   gboolean can_access;
   ResolveData *data = NULL;
 
diff --git a/src/local-metadata/grl-local-metadata.h b/src/local-metadata/grl-local-metadata.h
index 7d6bfd9..75e85ab 100644
--- a/src/local-metadata/grl-local-metadata.h
+++ b/src/local-metadata/grl-local-metadata.h
@@ -52,14 +52,14 @@
                               GrlLocalMetadataSourceClass))
 
 typedef struct _GrlLocalMetadataSource     GrlLocalMetadataSource;
-typedef struct _GrlLocalMetadataSourcePriv GrlLocalMetadataSourcePriv;
+typedef struct _GrlLocalMetadataSourcePriv GrlLocalMetadataSourcePrivate;
 
 struct _GrlLocalMetadataSource {
 
   GrlSource parent;
 
   /*< private >*/
-  GrlLocalMetadataSourcePriv *priv;
+  GrlLocalMetadataSourcePrivate *priv;
 
 };
 
diff --git a/src/lua-factory/grl-lua-factory.c b/src/lua-factory/grl-lua-factory.c
index 850c7bc..4f37984 100644
--- a/src/lua-factory/grl-lua-factory.c
+++ b/src/lua-factory/grl-lua-factory.c
@@ -515,16 +515,14 @@ grl_lua_factory_source_class_init (GrlLuaFactorySourceClass *klass)
   source_class->resolve = grl_lua_factory_source_resolve;
   source_class->may_resolve = grl_lua_factory_source_may_resolve;
   source_class->cancel = grl_lua_factory_source_cancel;
-
-  g_type_class_add_private (klass, sizeof (GrlLuaFactorySourcePrivate));
 }
 
-G_DEFINE_TYPE (GrlLuaFactorySource, grl_lua_factory_source, GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlLuaFactorySource, grl_lua_factory_source, GRL_TYPE_SOURCE)
 
 static void
 grl_lua_factory_source_init (GrlLuaFactorySource *source)
 {
-  source->priv = GRL_LUA_FACTORY_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_lua_factory_source_get_instance_private (source);
 }
 
 static void
diff --git a/src/magnatune/grl-magnatune.c b/src/magnatune/grl-magnatune.c
index 39b3899..c90d029 100644
--- a/src/magnatune/grl-magnatune.c
+++ b/src/magnatune/grl-magnatune.c
@@ -33,11 +33,6 @@
 
 #include "grl-magnatune.h"
 
-#define GRL_MAGNATUNE_GET_PRIVATE(object)                 \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                  \
-                               GRL_MAGNATUNE_SOURCE_TYPE, \
-                               GrlMagnatunePrivate))
-
 /* --------- Logging  -------- */
 
 #define GRL_LOG_DOMAIN_DEFAULT magnatune_log_domain
@@ -227,6 +222,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== Magnatune GObject ================= */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlMagnatuneSource, grl_magnatune_source, GRL_TYPE_SOURCE)
+
 static GrlMagnatuneSource *
 grl_magnatune_source_new(void)
 {
@@ -263,8 +260,6 @@ grl_magnatune_source_class_init(GrlMagnatuneSourceClass * klass)
   source_class->supported_keys = grl_magnatune_source_supported_keys;
   source_class->search = grl_magnatune_source_search;
   source_class->browse = grl_magnatune_source_browse;
-
-  g_type_class_add_private(klass, sizeof(GrlMagnatunePrivate));
 }
 
 static void
@@ -279,7 +274,7 @@ grl_magnatune_source_init(GrlMagnatuneSource *source)
 
   GRL_DEBUG("magnatune_source_init");
 
-  source->priv = GRL_MAGNATUNE_GET_PRIVATE(source);
+  source->priv = grl_magnatune_source_get_instance_private (source);
   source->priv->db = NULL;
 
   path = g_build_filename(g_get_user_data_dir(), "grilo-plugins", NULL);
@@ -323,8 +318,6 @@ grl_magnatune_source_init(GrlMagnatuneSource *source)
   g_free(path);
 }
 
-G_DEFINE_TYPE(GrlMagnatuneSource, grl_magnatune_source, GRL_TYPE_SOURCE);
-
 static void
 grl_magnatune_source_finalize(GObject *object)
 {
diff --git a/src/magnatune/grl-magnatune.h b/src/magnatune/grl-magnatune.h
index 7aa6d50..e68240b 100644
--- a/src/magnatune/grl-magnatune.h
+++ b/src/magnatune/grl-magnatune.h
@@ -47,12 +47,12 @@
                               GRL_MAGNATUNE_SOURCE_TYPE, \
                               GrlMagnatuneSourceClass))
 
-typedef struct _GrlMagnatunePrivate GrlMagnatunePrivate;
+typedef struct _GrlMagnatunePrivate GrlMagnatuneSourcePrivate;
 typedef struct _GrlMagnatuneSource  GrlMagnatuneSource;
 
 struct _GrlMagnatuneSource {
   GrlSource parent;
-  GrlMagnatunePrivate *priv;
+  GrlMagnatuneSourcePrivate *priv;
 };
 
 typedef struct _GrlMagnatuneSourceClass GrlMagnatuneSourceClass;
diff --git a/src/metadata-store/grl-metadata-store.c b/src/metadata-store/grl-metadata-store.c
index 29eb55e..9db39e5 100644
--- a/src/metadata-store/grl-metadata-store.c
+++ b/src/metadata-store/grl-metadata-store.c
@@ -33,11 +33,6 @@
 
 #include "grl-metadata-store.h"
 
-#define GRL_METADATA_STORE_GET_PRIVATE(object)                  \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                        \
-                               GRL_METADATA_STORE_SOURCE_TYPE,  \
-                               GrlMetadataStorePrivate))
-
 #define GRL_LOG_DOMAIN_DEFAULT metadata_store_log_domain
 GRL_LOG_DOMAIN_STATIC(metadata_store_log_domain);
 
@@ -150,7 +145,7 @@ gboolean grl_metadata_store_source_plugin_init (GrlRegistry *registry,
                                                 GrlPlugin *plugin,
                                                 GList *configs);
 
-G_DEFINE_TYPE (GrlMetadataStoreSource, grl_metadata_store_source, GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlMetadataStoreSource, grl_metadata_store_source, GRL_TYPE_SOURCE)
 
 /* =================== GrlMetadataStore Plugin  =============== */
 
@@ -216,8 +211,6 @@ grl_metadata_store_source_class_init (GrlMetadataStoreSourceClass * klass)
   source_class->may_resolve = grl_metadata_store_source_may_resolve;
   source_class->resolve = grl_metadata_store_source_resolve;
   source_class->store_metadata = grl_metadata_store_source_store_metadata;
-
-  g_type_class_add_private (klass, sizeof (GrlMetadataStorePrivate));
 }
 
 static void
@@ -238,7 +231,7 @@ grl_metadata_store_source_init (GrlMetadataStoreSource *source)
   gchar *db_path;
   gchar *sql_error = NULL;
 
-  source->priv = GRL_METADATA_STORE_GET_PRIVATE (source);
+  source->priv = grl_metadata_store_source_get_instance_private (source);
 
   path = g_strconcat (g_get_user_data_dir (),
                       G_DIR_SEPARATOR_S, "grilo-plugins",
diff --git a/src/metadata-store/grl-metadata-store.h b/src/metadata-store/grl-metadata-store.h
index 051a5db..20cc2ee 100644
--- a/src/metadata-store/grl-metadata-store.h
+++ b/src/metadata-store/grl-metadata-store.h
@@ -51,7 +51,7 @@
                               GRL_METADATA_STORE_SOURCE_TYPE,    \
                               GrlMetadataStoreSourceClass))
 
-typedef struct _GrlMetadataStorePrivate GrlMetadataStorePrivate;
+typedef struct _GrlMetadataStorePrivate GrlMetadataStoreSourcePrivate;
 typedef struct _GrlMetadataStoreSource GrlMetadataStoreSource;
 
 struct _GrlMetadataStoreSource {
@@ -59,7 +59,7 @@ struct _GrlMetadataStoreSource {
   GrlSource parent;
 
   /*< private >*/
-  GrlMetadataStorePrivate *priv;
+  GrlMetadataStoreSourcePrivate *priv;
 };
 
 typedef struct _GrlMetadataStoreSourceClass GrlMetadataStoreSourceClass;
diff --git a/src/opensubtitles/grl-opensubtitles.c b/src/opensubtitles/grl-opensubtitles.c
index a5f12d2..19963ea 100644
--- a/src/opensubtitles/grl-opensubtitles.c
+++ b/src/opensubtitles/grl-opensubtitles.c
@@ -166,6 +166,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== GrlOpenSubtitles GObject ================ */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlOpenSubtitlesSource, grl_opensubtitles_source, GRL_TYPE_SOURCE)
+
 static GrlOpenSubtitlesSource *
 grl_opensubtitles_source_new (void)
 {
@@ -189,28 +191,23 @@ grl_opensubtitles_source_class_init (GrlOpenSubtitlesSourceClass * klass)
   source_class->resolve = grl_opensubtitles_source_resolve;
 
   gobject_class->finalize = grl_opensubtitles_source_finalize;
-
-  g_type_class_add_private (klass, sizeof (GrlOpenSubtitlesSourcePriv));
 }
 
 static void
 grl_opensubtitles_source_init (GrlOpenSubtitlesSource *source)
 {
-  GrlOpenSubtitlesSourcePriv *priv = GRL_OPENSUBTITLES_SOURCE_GET_PRIVATE (source);
+  GrlOpenSubtitlesSourcePrivate *priv = grl_opensubtitles_source_get_instance_private (source);
 
+  source->priv = priv;
   priv->session = soup_session_new ();
   priv->queue = g_async_queue_new ();
 }
 
-G_DEFINE_TYPE (GrlOpenSubtitlesSource,
-               grl_opensubtitles_source,
-               GRL_TYPE_SOURCE);
-
 static void
 grl_opensubtitles_source_finalize (GObject *object)
 {
   GrlOpenSubtitlesSource *source = GRL_OPENSUBTITLES_SOURCE (object);
-  GrlOpenSubtitlesSourcePriv *priv = GRL_OPENSUBTITLES_SOURCE_GET_PRIVATE (source);
+  GrlOpenSubtitlesSourcePrivate *priv = source->priv;
 
   GRL_DEBUG ("%s", G_STRFUNC);
 
@@ -224,7 +221,7 @@ grl_opensubtitles_source_finalize (GObject *object)
 /* ======================= Utilities ==================== */
 
 static void
-ensure_hash_keyid (GrlOpenSubtitlesSourcePriv *priv)
+ensure_hash_keyid (GrlOpenSubtitlesSourcePrivate *priv)
 {
   if (priv->hash_keyid == GRL_METADATA_KEY_INVALID) {
     GrlRegistry *registry = grl_registry_get_default ();
@@ -515,11 +512,10 @@ login_done_cb (SoupSession *session,
               SoupMessage *msg,
               gpointer     user_data)
 {
-  GrlOpenSubtitlesSourcePriv *priv =
-    GRL_OPENSUBTITLES_SOURCE_GET_PRIVATE (user_data);
   gboolean failed = FALSE;
   GrlSourceResolveSpec *rs;
   GError *error = NULL;
+  GrlOpenSubtitlesSourcePrivate *priv = GRL_OPENSUBTITLES_SOURCE(user_data)->priv;
 
   if (msg->status_code != 200) {
     GRL_DEBUG ("Failed to login: HTTP code %d", msg->status_code);
@@ -575,8 +571,7 @@ grl_opensubtitles_source_may_resolve (GrlSource *source,
                                       GrlKeyID   key_id,
                                       GList    **missing_keys)
 {
-  GrlOpenSubtitlesSourcePriv *priv =
-    GRL_OPENSUBTITLES_SOURCE_GET_PRIVATE (source);
+  GrlOpenSubtitlesSourcePrivate *priv = GRL_OPENSUBTITLES_SOURCE(source)->priv;
 
   ensure_hash_keyid (priv);
   if (priv->hash_keyid == GRL_METADATA_KEY_INVALID)
@@ -625,8 +620,7 @@ static void
 grl_opensubtitles_source_resolve (GrlSource            *source,
                                   GrlSourceResolveSpec *rs)
 {
-  GrlOpenSubtitlesSourcePriv *priv =
-    GRL_OPENSUBTITLES_SOURCE_GET_PRIVATE (source);
+  GrlOpenSubtitlesSourcePrivate *priv = GRL_OPENSUBTITLES_SOURCE(source)->priv;
   SoupMessage *msg;
 
   GRL_DEBUG (__FUNCTION__);
@@ -654,8 +648,7 @@ static void
 grl_opensubtitles_source_cancel (GrlSource *source,
                                  guint operation_id)
 {
-  GrlOpenSubtitlesSourcePriv *priv =
-    GRL_OPENSUBTITLES_SOURCE_GET_PRIVATE (source);
+  GrlOpenSubtitlesSourcePrivate *priv = GRL_OPENSUBTITLES_SOURCE (source)->priv;
   SoupMessage *msg = grl_operation_get_data (operation_id);
 
   if (msg)
diff --git a/src/opensubtitles/grl-opensubtitles.h b/src/opensubtitles/grl-opensubtitles.h
index 22f8210..6a54715 100644
--- a/src/opensubtitles/grl-opensubtitles.h
+++ b/src/opensubtitles/grl-opensubtitles.h
@@ -50,14 +50,14 @@
                               GrlOpenSubtitlesSourceClass))
 
 typedef struct _GrlOpenSubtitlesSource     GrlOpenSubtitlesSource;
-typedef struct _GrlOpenSubtitlesSourcePriv GrlOpenSubtitlesSourcePriv;
+typedef struct _GrlOpenSubtitlesSourcePriv GrlOpenSubtitlesSourcePrivate;
 
 struct _GrlOpenSubtitlesSource {
 
   GrlSource parent;
 
   /*< private >*/
-  GrlOpenSubtitlesSourcePriv *priv;
+  GrlOpenSubtitlesSourcePrivate *priv;
 
 };
 
diff --git a/src/optical-media/grl-optical-media.c b/src/optical-media/grl-optical-media.c
index f3b88f1..4c2c902 100644
--- a/src/optical-media/grl-optical-media.c
+++ b/src/optical-media/grl-optical-media.c
@@ -46,11 +46,6 @@ GRL_LOG_DOMAIN_STATIC(optical_media_log_domain);
 
 /* --- Grilo OpticalMedia Private --- */
 
-#define GRL_OPTICAL_MEDIA_SOURCE_GET_PRIVATE(object)           \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                       \
-                               GRL_OPTICAL_MEDIA_SOURCE_TYPE,  \
-                               GrlOpticalMediaSourcePrivate))
-
 #define NUM_MONITOR_SIGNALS 3
 
 struct _GrlOpticalMediaSourcePrivate {
@@ -140,9 +135,7 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 /* ================== OpticalMedia GObject ================ */
 
 
-G_DEFINE_TYPE (GrlOpticalMediaSource,
-               grl_optical_media_source,
-               GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlOpticalMediaSource, grl_optical_media_source, GRL_TYPE_SOURCE)
 
 static GrlOpticalMediaSource *
 grl_optical_media_source_new (void)
@@ -170,14 +163,12 @@ grl_optical_media_source_class_init (GrlOpticalMediaSourceClass * klass)
 
   source_class->notify_change_start = grl_optical_media_source_notify_change_start;
   source_class->notify_change_stop = grl_optical_media_source_notify_change_stop;
-
-  g_type_class_add_private (klass, sizeof (GrlOpticalMediaSourcePrivate));
 }
 
 static void
 grl_optical_media_source_init (GrlOpticalMediaSource *source)
 {
-  source->priv = GRL_OPTICAL_MEDIA_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_optical_media_source_get_instance_private (source);
 
   source->priv->cancellable = g_cancellable_new ();
   source->priv->monitor = g_volume_monitor_get ();
diff --git a/src/podcasts/grl-podcasts.c b/src/podcasts/grl-podcasts.c
index 953e63a..0ab414c 100644
--- a/src/podcasts/grl-podcasts.c
+++ b/src/podcasts/grl-podcasts.c
@@ -36,11 +36,6 @@
 
 #include "grl-podcasts.h"
 
-#define GRL_PODCASTS_GET_PRIVATE(object)                        \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                        \
-                               GRL_PODCASTS_SOURCE_TYPE,        \
-                               GrlPodcastsPrivate))
-
 #define GRL_ROOT_TITLE "Podcasts"
 
 /* --------- Logging  -------- */
@@ -330,6 +325,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== Podcasts GObject ================ */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlPodcastsSource, grl_podcasts_source, GRL_TYPE_SOURCE)
+
 static GrlPodcastsSource *
 grl_podcasts_source_new (void)
 {
@@ -363,8 +360,6 @@ grl_podcasts_source_class_init (GrlPodcastsSourceClass * klass)
   source_class->remove = grl_podcasts_source_remove;
   source_class->notify_change_start = grl_podcasts_source_notify_change_start;
   source_class->notify_change_stop = grl_podcasts_source_notify_change_stop;
-
-  g_type_class_add_private (klass, sizeof (GrlPodcastsPrivate));
 }
 
 static void
@@ -375,7 +370,7 @@ grl_podcasts_source_init (GrlPodcastsSource *source)
   gchar *db_path;
   gchar *sql_error = NULL;
 
-  source->priv = GRL_PODCASTS_GET_PRIVATE (source);
+  source->priv = grl_podcasts_source_get_instance_private (source);
 
   path = g_strconcat (g_get_user_data_dir (),
                       G_DIR_SEPARATOR_S, "grilo-plugins",
@@ -423,8 +418,6 @@ grl_podcasts_source_init (GrlPodcastsSource *source)
   GRL_DEBUG ("  OK");
 }
 
-G_DEFINE_TYPE (GrlPodcastsSource, grl_podcasts_source, GRL_TYPE_SOURCE);
-
 static void
 grl_podcasts_source_finalize (GObject *object)
 {
diff --git a/src/podcasts/grl-podcasts.h b/src/podcasts/grl-podcasts.h
index 67c258e..3732170 100644
--- a/src/podcasts/grl-podcasts.h
+++ b/src/podcasts/grl-podcasts.h
@@ -51,7 +51,7 @@
                               GRL_PODCASTS_SOURCE_TYPE, \
                               GrlPodcastsSourceClass))
 
-typedef struct _GrlPodcastsPrivate GrlPodcastsPrivate;
+typedef struct _GrlPodcastsPrivate GrlPodcastsSourcePrivate;
 typedef struct _GrlPodcastsSource  GrlPodcastsSource;
 
 struct _GrlPodcastsSource {
@@ -59,7 +59,7 @@ struct _GrlPodcastsSource {
   GrlSource parent;
 
   /*< private >*/
-  GrlPodcastsPrivate *priv;
+  GrlPodcastsSourcePrivate *priv;
 };
 
 typedef struct _GrlPodcastsSourceClass GrlPodcastsSourceClass;
diff --git a/src/raitv/grl-raitv.c b/src/raitv/grl-raitv.c
index 490e058..d7009b9 100644
--- a/src/raitv/grl-raitv.c
+++ b/src/raitv/grl-raitv.c
@@ -92,14 +92,6 @@ GRL_LOG_DOMAIN_STATIC(raitv_log_domain);
 #define SOURCE_NAME "Rai.tv"
 #define SOURCE_DESC _("A source for browsing and searching Rai.tv videos")
 
-
-G_DEFINE_TYPE (GrlRaitvSource, grl_raitv_source, GRL_TYPE_SOURCE)
-
-#define RAITV_SOURCE_PRIVATE(o)                          \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((o),                     \
-                                GRL_TYPE_RAITV_SOURCE,   \
-                                GrlRaitvSourcePrivate))
-
 typedef enum {
   RAITV_MEDIA_TYPE_ROOT,
   RAITV_MEDIA_TYPE_POPULARS,
@@ -159,6 +151,7 @@ struct _GrlRaitvSourcePrivate
   GList *raitv_browse_mappings;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlRaitvSource, grl_raitv_source, GRL_TYPE_SOURCE)
 
 guint root_dir_size = 2;
 CategoryInfo root_dir[] = {
@@ -323,8 +316,6 @@ grl_raitv_source_class_init (GrlRaitvSourceClass *klass)
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
   GrlSourceClass *source_class = GRL_SOURCE_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (GrlRaitvSourcePrivate));
-
   object_class->dispose = grl_raitv_source_dispose;
   object_class->finalize = grl_raitv_source_finalize;
 
@@ -351,7 +342,7 @@ raitv_build_mapping (GrlKeyID grl_key, const gchar *exp)
 static void
 grl_raitv_source_init (GrlRaitvSource *self)
 {
-  self->priv = RAITV_SOURCE_PRIVATE (self);
+  self->priv = grl_raitv_source_get_instance_private (self);
 
   self->priv->wc = grl_net_wc_new ();
   grl_net_wc_set_throttling (self->priv->wc, 1);
diff --git a/src/shoutcast/grl-shoutcast.c b/src/shoutcast/grl-shoutcast.c
index 7d64a72..272f5ce 100644
--- a/src/shoutcast/grl-shoutcast.c
+++ b/src/shoutcast/grl-shoutcast.c
@@ -34,11 +34,6 @@
 
 #include "grl-shoutcast.h"
 
-#define GRL_SHOUTCAST_SOURCE_GET_PRIVATE(object)            \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                    \
-                               GRL_SHOUTCAST_SOURCE_TYPE,   \
-                               GrlShoutcastSourcePriv))
-
 #define EXPIRE_CACHE_TIMEOUT 300
 
 #define SHOUTCAST_DEV_KEY "dev-key"
@@ -180,6 +175,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== SHOUTcast GObject ================ */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlShoutcastSource, grl_shoutcast_source, GRL_TYPE_SOURCE)
+
 static GrlShoutcastSource *
 grl_shoutcast_source_new (const gchar *dev_key)
 {
@@ -217,19 +214,15 @@ grl_shoutcast_source_class_init (GrlShoutcastSourceClass * klass)
   source_class->resolve = grl_shoutcast_source_resolve;
   source_class->browse = grl_shoutcast_source_browse;
   source_class->search = grl_shoutcast_source_search;
-
-  g_type_class_add_private (klass, sizeof (GrlShoutcastSourcePriv));
 }
 
 static void
 grl_shoutcast_source_init (GrlShoutcastSource *source)
 {
-  source->priv = GRL_SHOUTCAST_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_shoutcast_source_get_instance_private (source);
   source->priv->cached_page_expired = TRUE;
 }
 
-G_DEFINE_TYPE (GrlShoutcastSource, grl_shoutcast_source, GRL_TYPE_SOURCE);
-
 static void
 grl_shoutcast_source_finalize (GObject *object)
 {
@@ -791,12 +784,10 @@ static void
 grl_shoutcast_source_cancel (GrlSource *source, guint operation_id)
 {
   OperationData *op_data;
-  GrlShoutcastSourcePriv *priv;
+  GrlShoutcastSourcePrivate *priv = GRL_SHOUTCAST_SOURCE(source)->priv;
 
   GRL_DEBUG ("grl_shoutcast_source_cancel");
 
-  priv = GRL_SHOUTCAST_SOURCE_GET_PRIVATE (source);
-
   if (priv->cancellable && G_IS_CANCELLABLE (priv->cancellable)) {
     g_cancellable_cancel (priv->cancellable);
   }
diff --git a/src/shoutcast/grl-shoutcast.h b/src/shoutcast/grl-shoutcast.h
index e28b635..ed90a24 100644
--- a/src/shoutcast/grl-shoutcast.h
+++ b/src/shoutcast/grl-shoutcast.h
@@ -54,12 +54,12 @@
                               GrlShoutcastSourceClass))
 
 typedef struct _GrlShoutcastSource GrlShoutcastSource;
-typedef struct _GrlShoutcastSourcePriv GrlShoutcastSourcePriv;
+typedef struct _GrlShoutcastSourcePriv GrlShoutcastSourcePrivate;
 
 struct _GrlShoutcastSource {
 
   GrlSource parent;
-  GrlShoutcastSourcePriv *priv;
+  GrlShoutcastSourcePrivate *priv;
 };
 
 typedef struct _GrlShoutcastSourceClass GrlShoutcastSourceClass;
diff --git a/src/thetvdb/grl-thetvdb.c b/src/thetvdb/grl-thetvdb.c
index a90e0c4..a47f5e9 100644
--- a/src/thetvdb/grl-thetvdb.c
+++ b/src/thetvdb/grl-thetvdb.c
@@ -35,11 +35,6 @@
 #include "grl-thetvdb.h"
 #include "thetvdb-resources.h"
 
-#define GRL_THETVDB_GET_PRIVATE(object)                  \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                 \
-                               GRL_THETVDB_SOURCE_TYPE,  \
-                               GrlTheTVDBPrivate))
-
 /* --------- Logging  -------- */
 
 #define GRL_LOG_DOMAIN_DEFAULT thetvdb_log_domain
@@ -303,6 +298,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== TheTVDB GObject ================= */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlTheTVDBSource, grl_thetvdb_source, GRL_TYPE_SOURCE)
+
 static GrlTheTVDBSource *
 grl_thetvdb_source_new (const gchar *api_key)
 {
@@ -338,8 +335,6 @@ grl_thetvdb_source_class_init (GrlTheTVDBSourceClass * klass)
   source_class->may_resolve = grl_thetvdb_source_may_resolve;
   source_class->resolve = grl_thetvdb_source_resolve;
   gobject_class->finalize = grl_thetvdb_source_finalize;
-
-  g_type_class_add_private (klass, sizeof (GrlTheTVDBPrivate));
 }
 
 static void
@@ -352,7 +347,7 @@ grl_thetvdb_source_init (GrlTheTVDBSource *source)
 
   GRL_DEBUG ("thetvdb_source_init");
 
-  source->priv = GRL_THETVDB_GET_PRIVATE (source);
+  source->priv = grl_thetvdb_source_get_instance_private (source);
 
   /* All supported keys in a GList */
   source->priv->supported_keys =
@@ -412,8 +407,6 @@ grl_thetvdb_source_init (GrlTheTVDBSource *source)
                                           tables, thetvdb_migrate_db_done, source);
 }
 
-G_DEFINE_TYPE (GrlTheTVDBSource, grl_thetvdb_source, GRL_TYPE_SOURCE);
-
 static void
 grl_thetvdb_source_finalize (GObject *object)
 {
diff --git a/src/thetvdb/grl-thetvdb.h b/src/thetvdb/grl-thetvdb.h
index 45a0a1f..d1f935a 100644
--- a/src/thetvdb/grl-thetvdb.h
+++ b/src/thetvdb/grl-thetvdb.h
@@ -47,12 +47,12 @@
                              GRL_THETVDB_SOURCE_TYPE,  \
                              GrlTheTVDBSourceClass))
 
-typedef struct _GrlTheTVDBPrivate GrlTheTVDBPrivate;
+typedef struct _GrlTheTVDBPrivate GrlTheTVDBSourcePrivate;
 typedef struct _GrlTheTVDBSource  GrlTheTVDBSource;
 
 struct _GrlTheTVDBSource {
   GrlSource parent;
-  GrlTheTVDBPrivate *priv;
+  GrlTheTVDBSourcePrivate *priv;
 };
 
 typedef struct _GrlTheTVDBSourceClass GrlTheTVDBSourceClass;
diff --git a/src/thetvdb/thetvdb-resources-episodes.c b/src/thetvdb/thetvdb-resources-episodes.c
index e3f779b..97d7282 100644
--- a/src/thetvdb/thetvdb-resources-episodes.c
+++ b/src/thetvdb/thetvdb-resources-episodes.c
@@ -22,8 +22,6 @@
 
 #include "thetvdb-resources.h"
 
-G_DEFINE_TYPE (EpisodeResource, episode_resource, GOM_TYPE_RESOURCE)
-
 struct _EpisodeResourcePrivate {
   gint64      db_id;
   gdouble     rating;
@@ -66,6 +64,8 @@ enum {
 
 static GParamSpec *specs[LAST_PROP];
 
+G_DEFINE_TYPE_WITH_PRIVATE (EpisodeResource, episode_resource, GOM_TYPE_RESOURCE)
+
 static void
 episode_resource_finalize (GObject *object)
 {
@@ -231,7 +231,6 @@ episode_resource_class_init (EpisodeResourceClass *klass)
   object_class->finalize = episode_resource_finalize;
   object_class->get_property = episode_resource_get_property;
   object_class->set_property = episode_resource_set_property;
-  g_type_class_add_private(object_class, sizeof(EpisodeResourcePrivate));
 
   resource_class = GOM_RESOURCE_CLASS(klass);
   gom_resource_class_set_table(resource_class, EPISODE_TABLE_NAME);
diff --git a/src/thetvdb/thetvdb-resources-fuzzy-names.c b/src/thetvdb/thetvdb-resources-fuzzy-names.c
index 809c24d..550acb9 100644
--- a/src/thetvdb/thetvdb-resources-fuzzy-names.c
+++ b/src/thetvdb/thetvdb-resources-fuzzy-names.c
@@ -22,8 +22,6 @@
 
 #include "thetvdb-resources.h"
 
-G_DEFINE_TYPE (FuzzySeriesNamesResource, fuzzy_series_names_resource, GOM_TYPE_RESOURCE)
-
 struct _FuzzySeriesNamesResourcePrivate {
   gint64      db_id;
   gchar      *series_id;
@@ -40,6 +38,8 @@ enum {
 
 static GParamSpec *specs[LAST_PROP];
 
+G_DEFINE_TYPE_WITH_PRIVATE (FuzzySeriesNamesResource, fuzzy_series_names_resource, GOM_TYPE_RESOURCE)
+
 static void
 fuzzy_series_names_resource_finalize (GObject *object)
 {
@@ -109,7 +109,6 @@ fuzzy_series_names_resource_class_init (FuzzySeriesNamesResourceClass *klass)
   object_class->finalize = fuzzy_series_names_resource_finalize;
   object_class->get_property = fuzzy_series_names_resource_get_property;
   object_class->set_property = fuzzy_series_names_resource_set_property;
-  g_type_class_add_private(object_class, sizeof(FuzzySeriesNamesResourcePrivate));
 
   resource_class = GOM_RESOURCE_CLASS(klass);
   gom_resource_class_set_table(resource_class, FUZZY_SERIES_NAMES_TABLE_NAME);
@@ -149,7 +148,5 @@ fuzzy_series_names_resource_class_init (FuzzySeriesNamesResourceClass *klass)
 static void
 fuzzy_series_names_resource_init (FuzzySeriesNamesResource *resource)
 {
-  resource->priv = G_TYPE_INSTANCE_GET_PRIVATE(resource,
-                                               FUZZY_SERIES_NAMES_TYPE_RESOURCE,
-                                               FuzzySeriesNamesResourcePrivate);
+  resource->priv = fuzzy_series_names_resource_get_instance_private (resource);
 }
diff --git a/src/thetvdb/thetvdb-resources-series.c b/src/thetvdb/thetvdb-resources-series.c
index 10b092c..7fd512d 100644
--- a/src/thetvdb/thetvdb-resources-series.c
+++ b/src/thetvdb/thetvdb-resources-series.c
@@ -22,8 +22,6 @@
 
 #include "thetvdb-resources.h"
 
-G_DEFINE_TYPE (SeriesResource, series_resource, GOM_TYPE_RESOURCE)
-
 struct _SeriesResourcePrivate {
   gint64      db_id;
   gdouble     rating;
@@ -65,6 +63,8 @@ enum {
 
 static GParamSpec *specs[LAST_PROP];
 
+G_DEFINE_TYPE_WITH_PRIVATE (SeriesResource, series_resource, GOM_TYPE_RESOURCE)
+
 static void
 series_resource_finalize (GObject *object)
 {
@@ -229,7 +229,6 @@ series_resource_class_init (SeriesResourceClass *klass)
   object_class->finalize = series_resource_finalize;
   object_class->get_property = series_resource_get_property;
   object_class->set_property = series_resource_set_property;
-  g_type_class_add_private(object_class, sizeof(SeriesResourcePrivate));
 
   resource_class = GOM_RESOURCE_CLASS(klass);
   gom_resource_class_set_table(resource_class, SERIES_TABLE_NAME);
@@ -332,7 +331,5 @@ series_resource_class_init (SeriesResourceClass *klass)
 static void
 series_resource_init (SeriesResource *resource)
 {
-  resource->priv = G_TYPE_INSTANCE_GET_PRIVATE(resource,
-                                               SERIES_TYPE_RESOURCE,
-                                               SeriesResourcePrivate);
+  resource->priv = series_resource_get_instance_private (resource);
 }
diff --git a/src/tmdb/grl-tmdb-request.c b/src/tmdb/grl-tmdb-request.c
index 244d673..5d2e550 100644
--- a/src/tmdb/grl-tmdb-request.c
+++ b/src/tmdb/grl-tmdb-request.c
@@ -91,7 +91,7 @@ struct _GrlTmdbRequestPrivate {
   GList *details;
 };
 
-G_DEFINE_TYPE (GrlTmdbRequest, grl_tmdb_request, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlTmdbRequest, grl_tmdb_request, G_TYPE_OBJECT)
 
 /* Implementation */
 
@@ -104,8 +104,6 @@ grl_tmdb_request_class_init (GrlTmdbRequestClass * klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (GrlTmdbRequestPrivate));
-
   gobject_class->set_property = grl_tmdb_request_set_property;
   gobject_class->finalize = grl_tmdb_request_finalize;
   gobject_class->constructed = grl_tmdb_request_constructed;
@@ -143,9 +141,7 @@ grl_tmdb_request_class_init (GrlTmdbRequestClass * klass)
 static void
 grl_tmdb_request_init (GrlTmdbRequest *self)
 {
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-                                            GRL_TMDB_REQUEST_TYPE,
-                                            GrlTmdbRequestPrivate);
+  self->priv = grl_tmdb_request_get_instance_private (self);
   self->priv->base = soup_uri_new (TMDB_BASE_URI);
   self->priv->parser = json_parser_new ();
   self->priv->detail = GRL_TMDB_REQUEST_DETAIL_COUNT;
diff --git a/src/tmdb/grl-tmdb.c b/src/tmdb/grl-tmdb.c
index df9b289..e195375 100644
--- a/src/tmdb/grl-tmdb.c
+++ b/src/tmdb/grl-tmdb.c
@@ -209,6 +209,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== GrlTmdbMetadata GObject ================ */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlTmdbSource, grl_tmdb_source, GRL_TYPE_SOURCE)
+
 static GrlTmdbSource *
 grl_tmdb_source_new (const char *api_key)
 {
@@ -238,8 +240,6 @@ grl_tmdb_source_class_init (GrlTmdbSourceClass * klass)
   metadata_class->may_resolve = grl_tmdb_source_may_resolve;
   metadata_class->resolve = grl_tmdb_source_resolve;
 
-  g_type_class_add_private (klass, sizeof (GrlTmdbSourcePrivate));
-
   gobject_class->set_property = grl_tmdb_source_set_property;
   gobject_class->finalize = grl_tmdb_source_finalize;
 
@@ -257,9 +257,7 @@ grl_tmdb_source_class_init (GrlTmdbSourceClass * klass)
 static void
 grl_tmdb_source_init (GrlTmdbSource *self)
 {
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
-                                            GRL_TMDB_SOURCE_TYPE,
-                                            GrlTmdbSourcePrivate);
+  self->priv = grl_tmdb_source_get_instance_private (self);
   self->priv->supported_keys = g_hash_table_new (g_direct_hash, g_direct_equal);
   self->priv->slow_keys = g_hash_table_new (g_direct_hash, g_direct_equal);
 
@@ -320,10 +318,6 @@ grl_tmdb_source_init (GrlTmdbSource *self)
   self->priv->pending_resolves = g_queue_new ();
 }
 
-G_DEFINE_TYPE (GrlTmdbSource,
-               grl_tmdb_source,
-               GRL_TYPE_SOURCE);
-
 /* GObject vfuncs */
 static void
 grl_tmdb_source_set_property (GObject *object,
diff --git a/src/vimeo/grl-vimeo.c b/src/vimeo/grl-vimeo.c
index 800c776..12572dc 100644
--- a/src/vimeo/grl-vimeo.c
+++ b/src/vimeo/grl-vimeo.c
@@ -39,11 +39,6 @@
 #include "grl-vimeo.h"
 #include "gvimeo.h"
 
-#define GRL_VIMEO_SOURCE_GET_PRIVATE(object)                           \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                                \
-                               GRL_VIMEO_SOURCE_TYPE,                  \
-                               GrlVimeoSourcePrivate))
-
 /* --------- Logging  -------- */
 
 #define GRL_LOG_DOMAIN_DEFAULT vimeo_log_domain
@@ -175,6 +170,8 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== Vimeo GObject ================ */
 
+G_DEFINE_TYPE_WITH_PRIVATE (GrlVimeoSource, grl_vimeo_source, GRL_TYPE_SOURCE)
+
 static GrlVimeoSource *
 grl_vimeo_source_new (void)
 {
@@ -217,20 +214,16 @@ grl_vimeo_source_class_init (GrlVimeoSourceClass * klass)
   source_class->search = grl_vimeo_source_search;
 
   object_class->finalize = grl_vimeo_source_finalize;
-
-  g_type_class_add_private (klass, sizeof (GrlVimeoSourcePrivate));
 }
 
 static void
 grl_vimeo_source_init (GrlVimeoSource *source)
 {
-  source->priv = GRL_VIMEO_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_vimeo_source_get_instance_private (source);
 
   grl_source_set_auto_split_threshold (GRL_SOURCE (source), MAX_ELEMENTS);
 }
 
-G_DEFINE_TYPE (GrlVimeoSource, grl_vimeo_source, GRL_TYPE_SOURCE);
-
 static void
 grl_vimeo_source_finalize (GObject *object)
 {
diff --git a/src/vimeo/gvimeo.c b/src/vimeo/gvimeo.c
index 066dfb4..04e974f 100644
--- a/src/vimeo/gvimeo.c
+++ b/src/vimeo/gvimeo.c
@@ -104,7 +104,7 @@ static gchar * encode_uri (const gchar *uri);
 
 /* -------------------- GOBJECT -------------------- */
 
-G_DEFINE_TYPE (GVimeo, g_vimeo, G_TYPE_OBJECT);
+G_DEFINE_TYPE_WITH_PRIVATE (GVimeo, g_vimeo, G_TYPE_OBJECT);
 
 static void
 g_vimeo_class_init (GVimeoClass *klass)
@@ -112,8 +112,6 @@ g_vimeo_class_init (GVimeoClass *klass)
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   gobject_class->finalize = g_vimeo_finalize;
   gobject_class->dispose = g_vimeo_dispose;
-
-  g_type_class_add_private (klass, sizeof (GVimeoPrivate));
 }
 
 static void
@@ -128,7 +126,7 @@ entry_parsed_cb (TotemPlParser *parser,
 static void
 g_vimeo_init (GVimeo *vimeo)
 {
-  vimeo->priv = G_VIMEO_GET_PRIVATE (vimeo);
+  vimeo->priv = g_vimeo_get_instance_private (vimeo);
   vimeo->priv->per_page = 50;
   vimeo->priv->wc = grl_net_wc_new ();
   g_object_set (vimeo->priv->wc, "user-agent", PLUGIN_USER_AGENT, NULL);
diff --git a/src/youtube/grl-youtube.c b/src/youtube/grl-youtube.c
index 3006d28..c090565 100644
--- a/src/youtube/grl-youtube.c
+++ b/src/youtube/grl-youtube.c
@@ -39,11 +39,6 @@ enum {
   PROP_SERVICE,
 };
 
-#define GRL_YOUTUBE_SOURCE_GET_PRIVATE(object)            \
-  (G_TYPE_INSTANCE_GET_PRIVATE((object),                  \
-                               GRL_YOUTUBE_SOURCE_TYPE,   \
-                               GrlYoutubeSourcePriv))
-
 /* --------- Logging  -------- */
 
 #define GRL_LOG_DOMAIN_DEFAULT youtube_log_domain
@@ -312,7 +307,7 @@ GRL_PLUGIN_DEFINE (GRL_MAJOR,
 
 /* ================== YouTube GObject ================ */
 
-G_DEFINE_TYPE (GrlYoutubeSource, grl_youtube_source, GRL_TYPE_SOURCE);
+G_DEFINE_TYPE_WITH_PRIVATE (GrlYoutubeSource, grl_youtube_source, GRL_TYPE_SOURCE)
 
 static GrlYoutubeSource *
 grl_youtube_source_new (const gchar *api_key, const gchar *client_id, const gchar *format)
@@ -387,14 +382,12 @@ grl_youtube_source_class_init (GrlYoutubeSourceClass * klass)
                                                         G_PARAM_WRITABLE
                                                         | G_PARAM_CONSTRUCT_ONLY
                                                         | G_PARAM_STATIC_NAME));
-
-  g_type_class_add_private (klass, sizeof (GrlYoutubeSourcePriv));
 }
 
 static void
 grl_youtube_source_init (GrlYoutubeSource *source)
 {
-  source->priv = GRL_YOUTUBE_SOURCE_GET_PRIVATE (source);
+  source->priv = grl_youtube_source_get_instance_private (source);
 }
 
 static void
diff --git a/src/youtube/grl-youtube.h b/src/youtube/grl-youtube.h
index 440d08c..8fc047a 100644
--- a/src/youtube/grl-youtube.h
+++ b/src/youtube/grl-youtube.h
@@ -52,12 +52,12 @@
                               GrlYoutubeSourceClass))
 
 typedef struct _GrlYoutubeSource GrlYoutubeSource;
-typedef struct _GrlYoutubeSourcePriv GrlYoutubeSourcePriv;
+typedef struct _GrlYoutubeSourcePriv GrlYoutubeSourcePrivate;
 
 struct _GrlYoutubeSource {
 
   GrlSource parent;
-  GrlYoutubeSourcePriv *priv;
+  GrlYoutubeSourcePrivate *priv;
 
 };
 


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