summaryrefslogtreecommitdiff
path: root/libpurple/media.c
diff options
context:
space:
mode:
authorMike Ruprecht <cmaiku@gmail.com>2018-10-18 21:28:34 -0500
committerMike Ruprecht <cmaiku@gmail.com>2018-10-18 21:28:34 -0500
commit8ef82cded1219d14ebca03e0ebbee3e6205220b3 (patch)
tree7855b000b792ef8a762a070d91d9a994b740e35e /libpurple/media.c
parent813d277d0160ae91aded9c3591b819f4880c1f64 (diff)
downloadpidgin-8ef82cded1219d14ebca03e0ebbee3e6205220b3.tar.gz
Port purple media code away from deprecated g_type_class_add_private()
This patch ports libpurple's media code away from the deprecated g_type_class_add_private() function in favor of the G_DEFINE_TYPE_WITH_PRIVATE() macro. It also chains up some finalize functions which weren't.
Diffstat (limited to 'libpurple/media.c')
-rw-r--r--libpurple/media.c45
1 files changed, 10 insertions, 35 deletions
diff --git a/libpurple/media.c b/libpurple/media.c
index 358a70110c..0a21d10e5e 100644
--- a/libpurple/media.c
+++ b/libpurple/media.c
@@ -82,8 +82,6 @@ struct _PurpleMediaPrivate
};
#ifdef USE_VV
-#define PURPLE_MEDIA_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MEDIA, PurpleMediaPrivate))
-
static void purple_media_class_init (PurpleMediaClass *klass);
static void purple_media_init (PurpleMedia *media);
static void purple_media_dispose (GObject *object);
@@ -105,9 +103,6 @@ static void purple_media_candidate_pair_established_cb(
static void purple_media_codecs_changed_cb(PurpleMediaBackend *backend,
const gchar *sess_id, PurpleMedia *media);
-static GObjectClass *parent_class = NULL;
-
-
enum {
S_ERROR,
@@ -131,42 +126,21 @@ enum {
PROP_INITIATOR,
PROP_PROTOCOL_DATA,
};
-#endif
-
+G_DEFINE_TYPE_WITH_PRIVATE(PurpleMedia, purple_media, G_TYPE_OBJECT);
+#else
GType
purple_media_get_type()
{
-#ifdef USE_VV
- static GType type = 0;
-
- if (type == 0) {
- static const GTypeInfo info = {
- sizeof(PurpleMediaClass),
- NULL,
- NULL,
- (GClassInitFunc) purple_media_class_init,
- NULL,
- NULL,
- sizeof(PurpleMedia),
- 0,
- (GInstanceInitFunc) purple_media_init,
- NULL
- };
- type = g_type_register_static(G_TYPE_OBJECT, "PurpleMedia", &info, 0);
- }
- return type;
-#else
return G_TYPE_NONE;
-#endif
}
+#endif /* USE_VV */
#ifdef USE_VV
static void
purple_media_class_init (PurpleMediaClass *klass)
{
GObjectClass *gobject_class = (GObjectClass*)klass;
- parent_class = g_type_class_peek_parent(klass);
gobject_class->dispose = purple_media_dispose;
gobject_class->finalize = purple_media_finalize;
@@ -252,14 +226,13 @@ purple_media_class_init (PurpleMediaClass *klass)
G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
G_TYPE_NONE, 4, G_TYPE_POINTER, G_TYPE_POINTER,
PURPLE_TYPE_MEDIA_CANDIDATE, PURPLE_TYPE_MEDIA_CANDIDATE);
- g_type_class_add_private(klass, sizeof(PurpleMediaPrivate));
}
static void
purple_media_init (PurpleMedia *media)
{
- media->priv = PURPLE_MEDIA_GET_PRIVATE(media);
+ media->priv = purple_media_get_instance_private(media);
memset(media->priv, 0, sizeof(*media->priv));
}
@@ -299,7 +272,8 @@ purple_media_session_free(PurpleMediaSession *session)
static void
purple_media_dispose(GObject *media)
{
- PurpleMediaPrivate *priv = PURPLE_MEDIA_GET_PRIVATE(media);
+ PurpleMediaPrivate *priv =
+ purple_media_get_instance_private(PURPLE_MEDIA(media));
purple_debug_info("media","purple_media_dispose\n");
@@ -315,13 +289,14 @@ purple_media_dispose(GObject *media)
priv->manager = NULL;
}
- G_OBJECT_CLASS(parent_class)->dispose(media);
+ G_OBJECT_CLASS(purple_media_parent_class)->dispose(media);
}
static void
purple_media_finalize(GObject *media)
{
- PurpleMediaPrivate *priv = PURPLE_MEDIA_GET_PRIVATE(media);
+ PurpleMediaPrivate *priv =
+ purple_media_get_instance_private(PURPLE_MEDIA(media));
purple_debug_info("media","purple_media_finalize\n");
for (; priv->streams; priv->streams = g_list_delete_link(priv->streams, priv->streams))
@@ -339,7 +314,7 @@ purple_media_finalize(GObject *media)
g_hash_table_destroy(priv->sessions);
}
- G_OBJECT_CLASS(parent_class)->finalize(media);
+ G_OBJECT_CLASS(purple_media_parent_class)->finalize(media);
}
static void