Fri, 02 Nov 2018 01:24:29 +0000
Merged in default (pull request #410)
Port purple media code away from deprecated g_type_class_add_private()
Approved-by: Elliott Sales de Andrade
Approved-by: Gary Kramlich
Approved-by: Eion Robb
--- a/libpurple/media.c Fri Nov 02 01:08:17 2018 +0000 +++ b/libpurple/media.c Fri Nov 02 01:24:29 2018 +0000 @@ -82,8 +82,6 @@ }; #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_codecs_changed_cb(PurpleMediaBackend *backend, const gchar *sess_id, PurpleMedia *media); -static GObjectClass *parent_class = NULL; - - enum { S_ERROR, @@ -131,42 +126,21 @@ 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 @@ 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 @@ 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 @@ 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 @@ g_hash_table_destroy(priv->sessions); } - G_OBJECT_CLASS(parent_class)->finalize(media); + G_OBJECT_CLASS(purple_media_parent_class)->finalize(media); } static void
--- a/libpurple/media/backend-fs2.c Fri Nov 02 01:08:17 2018 +0000 +++ b/libpurple/media/backend-fs2.c Fri Nov 02 01:24:29 2018 +0000 @@ -48,10 +48,6 @@ /** @copydoc _PurpleMediaBackendFs2Stream */ typedef struct _PurpleMediaBackendFs2Stream PurpleMediaBackendFs2Stream; -#define PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ - PURPLE_TYPE_MEDIA_BACKEND_FS2, PurpleMediaBackendFs2Private)) - static void purple_media_backend_iface_init(PurpleMediaBackendIface *iface); static gboolean @@ -118,10 +114,6 @@ GObject parent; }; -G_DEFINE_TYPE_WITH_CODE(PurpleMediaBackendFs2, purple_media_backend_fs2, - G_TYPE_OBJECT, G_IMPLEMENT_INTERFACE( - PURPLE_TYPE_MEDIA_BACKEND, purple_media_backend_iface_init)); - struct _PurpleMediaBackendFs2Stream { PurpleMediaBackendFs2Session *session; @@ -181,6 +173,12 @@ PROP_MEDIA, }; +G_DEFINE_TYPE_WITH_CODE(PurpleMediaBackendFs2, purple_media_backend_fs2, + G_TYPE_OBJECT, + G_ADD_PRIVATE(PurpleMediaBackendFs2) + G_IMPLEMENT_INTERFACE(PURPLE_TYPE_MEDIA_BACKEND, + purple_media_backend_iface_init)); + static void purple_media_backend_fs2_init(PurpleMediaBackendFs2 *self) { @@ -300,7 +298,8 @@ purple_media_backend_fs2_dispose(GObject *obj) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(obj); + purple_media_backend_fs2_get_instance_private( + PURPLE_MEDIA_BACKEND_FS2(obj)); GList *iter = NULL; purple_debug_info("backend-fs2", "purple_media_backend_fs2_dispose\n"); @@ -397,7 +396,8 @@ purple_media_backend_fs2_finalize(GObject *obj) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(obj); + purple_media_backend_fs2_get_instance_private( + PURPLE_MEDIA_BACKEND_FS2(obj)); purple_debug_info("backend-fs2", "purple_media_backend_fs2_finalize\n"); @@ -432,7 +432,8 @@ PurpleMediaBackendFs2Private *priv; g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(object)); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(object); + priv = purple_media_backend_fs2_get_instance_private( + PURPLE_MEDIA_BACKEND_FS2(object)); switch (prop_id) { case PROP_CONFERENCE_TYPE: @@ -469,7 +470,8 @@ PurpleMediaBackendFs2Private *priv; g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(object)); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(object); + priv = purple_media_backend_fs2_get_instance_private( + PURPLE_MEDIA_BACKEND_FS2(object)); switch (prop_id) { case PROP_CONFERENCE_TYPE: @@ -501,8 +503,6 @@ "conference-type"); g_object_class_override_property(gobject_class, PROP_MEDIA, "media"); - g_type_class_add_private(klass, sizeof(PurpleMediaBackendFs2Private)); - /* VA-API elements aren't well supported in Farstream. Ignore them. */ features = gst_registry_get_feature_list_by_plugin(gst_registry_get(), "vaapi"); @@ -798,7 +798,7 @@ g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private(self); if (priv->sessions != NULL) session = g_hash_table_lookup(priv->sessions, sess_id); @@ -814,7 +814,7 @@ g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private(self); if (priv->participants != NULL) participant = g_hash_table_lookup(priv->participants, name); @@ -831,7 +831,7 @@ g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private(self); streams = priv->streams; for (; streams; streams = g_list_next(streams)) { @@ -853,7 +853,7 @@ g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), NULL); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private(self); streams = priv->streams; for (; streams; streams = g_list_next(streams)) { @@ -875,7 +875,7 @@ get_session_from_fs_stream(PurpleMediaBackendFs2 *self, FsStream *stream) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); FsSession *fssession; GList *values; @@ -933,7 +933,7 @@ PurpleMediaBackendFs2 *self) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); GstElement *src = GST_ELEMENT(GST_MESSAGE_SRC(msg)); static guint level_id = 0; const GstStructure *structure = gst_message_get_structure(msg); @@ -1232,7 +1232,7 @@ PurpleMediaBackendFs2 *self) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); GstElement *element = GST_ELEMENT(GST_MESSAGE_SRC(msg)); GstElement *lastElement = NULL; GList *sessions; @@ -1316,7 +1316,8 @@ { if (state == PURPLE_MEDIA_STATE_END) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private( + self); if (sid && name) { PurpleMediaBackendFs2Stream *stream = get_stream(self, sid, name); @@ -1394,7 +1395,8 @@ } else if (local == TRUE && (type == PURPLE_MEDIA_INFO_MUTE || type == PURPLE_MEDIA_INFO_UNMUTE)) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private( + self); gboolean active = (type == PURPLE_MEDIA_INFO_MUTE); GList *sessions; @@ -1458,7 +1460,7 @@ init_conference(PurpleMediaBackendFs2 *self) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); GstElement *pipeline; GstBus *bus; gchar *name; @@ -1546,7 +1548,7 @@ PurpleMediaSessionType type) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); PurpleMediaBackendFs2Session *session; PurpleMediaSessionType session_type; FsMediaType media_type = session_type_to_fs_media_type(type); @@ -1656,7 +1658,7 @@ const gchar *transmitter) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); PurpleMediaBackendFs2Session *session; GError *err = NULL; GList *codec_conf = NULL; @@ -1756,7 +1758,7 @@ create_participant(PurpleMediaBackendFs2 *self, const gchar *name) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); FsParticipant *participant; GError *err = NULL; @@ -1798,7 +1800,8 @@ g_return_val_if_fail(stream != NULL, FALSE); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(stream->session->backend); + priv = purple_media_backend_fs2_get_instance_private( + stream->session->backend); stream->connected_cb_id = 0; purple_media_manager_create_output_window( @@ -1821,7 +1824,8 @@ g_return_if_fail(FS_IS_STREAM(fsstream)); g_return_if_fail(stream != NULL); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(stream->session->backend); + priv = purple_media_backend_fs2_get_instance_private( + stream->session->backend); if (stream->src == NULL) { GstElement *sink = NULL; @@ -1927,7 +1931,7 @@ guint num_params, GParameter *params) { PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + purple_media_backend_fs2_get_instance_private(self); GError *err = NULL; FsStream *fsstream = NULL; const gchar *stun_ip = purple_network_get_stun_ip(); @@ -2152,7 +2156,7 @@ { PurpleMediaBackendFs2 *backend = PURPLE_MEDIA_BACKEND_FS2(self); PurpleMediaBackendFs2Private *priv = - PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(backend); + purple_media_backend_fs2_get_instance_private(backend); PurpleMediaBackendFs2Stream *stream; if (priv->conference == NULL && !init_conference(backend)) { @@ -2209,7 +2213,8 @@ g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self)); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private( + PURPLE_MEDIA_BACKEND_FS2(self)); stream = get_stream(PURPLE_MEDIA_BACKEND_FS2(self), sess_id, participant); @@ -2253,7 +2258,8 @@ g_return_val_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self), FALSE); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private( + PURPLE_MEDIA_BACKEND_FS2(self)); if (sess_id != NULL) { PurpleMediaBackendFs2Session *session = get_session( @@ -2540,7 +2546,8 @@ g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self)); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private( + PURPLE_MEDIA_BACKEND_FS2(self)); if (priv->conference == NULL && !init_conference(PURPLE_MEDIA_BACKEND_FS2(self))) { @@ -2672,7 +2679,7 @@ g_return_if_fail(PURPLE_IS_MEDIA_BACKEND_FS2(self)); - priv = PURPLE_MEDIA_BACKEND_FS2_GET_PRIVATE(self); + priv = purple_media_backend_fs2_get_instance_private(self); purple_prefs_set_int("/purple/media/audio/volume/input", level);
--- a/libpurple/media/candidate.c Fri Nov 02 01:08:17 2018 +0000 +++ b/libpurple/media/candidate.c Fri Nov 02 01:24:29 2018 +0000 @@ -26,12 +26,6 @@ /** @copydoc _PurpleMediaCandidatePrivate */ typedef struct _PurpleMediaCandidatePrivate PurpleMediaCandidatePrivate; -#define PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ - PURPLE_TYPE_MEDIA_CANDIDATE, \ - PurpleMediaCandidatePrivate)) - - struct _PurpleMediaCandidateClass { GObjectClass parent_class; @@ -42,8 +36,6 @@ GObject parent; }; -G_DEFINE_TYPE(PurpleMediaCandidate, purple_media_candidate, G_TYPE_OBJECT); - struct _PurpleMediaCandidatePrivate { gchar *foundation; @@ -76,11 +68,14 @@ PROP_TTL, }; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaCandidate, purple_media_candidate, + G_TYPE_OBJECT); + static void purple_media_candidate_init(PurpleMediaCandidate *info) { PurpleMediaCandidatePrivate *priv = - PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(info); + purple_media_candidate_get_instance_private(info); priv->foundation = NULL; priv->component_id = 0; priv->ip = NULL; @@ -98,13 +93,16 @@ purple_media_candidate_finalize(GObject *info) { PurpleMediaCandidatePrivate *priv = - PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(info); + purple_media_candidate_get_instance_private( + PURPLE_MEDIA_CANDIDATE(info)); g_free(priv->foundation); g_free(priv->ip); g_free(priv->base_ip); g_free(priv->username); g_free(priv->password); + + G_OBJECT_CLASS(purple_media_candidate_parent_class)->finalize(info); } static void @@ -114,7 +112,8 @@ PurpleMediaCandidatePrivate *priv; g_return_if_fail(PURPLE_IS_MEDIA_CANDIDATE(object)); - priv = PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(object); + priv = purple_media_candidate_get_instance_private( + PURPLE_MEDIA_CANDIDATE(object)); switch (prop_id) { case PROP_FOUNDATION: @@ -172,7 +171,8 @@ PurpleMediaCandidatePrivate *priv; g_return_if_fail(PURPLE_IS_MEDIA_CANDIDATE(object)); - priv = PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(object); + priv = purple_media_candidate_get_instance_private( + PURPLE_MEDIA_CANDIDATE(object)); switch (prop_id) { case PROP_FOUNDATION: @@ -312,8 +312,6 @@ "The TTL of the candidate.", 0, G_MAXUINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - g_type_class_add_private(klass, sizeof(PurpleMediaCandidatePrivate)); } PurpleMediaCandidate * @@ -340,7 +338,7 @@ if (candidate == NULL) return NULL; - priv = PURPLE_MEDIA_CANDIDATE_GET_PRIVATE(candidate); + priv = purple_media_candidate_get_instance_private(candidate); new_candidate = purple_media_candidate_new(priv->foundation, priv->component_id, priv->type, priv->proto,
--- a/libpurple/media/codec.c Fri Nov 02 01:08:17 2018 +0000 +++ b/libpurple/media/codec.c Fri Nov 02 01:24:29 2018 +0000 @@ -28,10 +28,6 @@ /** @copydoc _PurpleMediaCodecPrivate */ typedef struct _PurpleMediaCodecPrivate PurpleMediaCodecPrivate; -#define PURPLE_MEDIA_CODEC_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE((obj), \ - PURPLE_TYPE_MEDIA_CODEC, PurpleMediaCodecPrivate)) - struct _PurpleMediaCodecClass { GObjectClass parent_class; @@ -42,8 +38,6 @@ GObject parent; }; -G_DEFINE_TYPE(PurpleMediaCodec, purple_media_codec, G_TYPE_OBJECT); - struct _PurpleMediaCodecPrivate { gint id; @@ -67,11 +61,13 @@ static GParamSpec *properties[PROP_LAST]; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaCodec, purple_media_codec, G_TYPE_OBJECT); + static void purple_media_codec_init(PurpleMediaCodec *info) { PurpleMediaCodecPrivate *priv = - PURPLE_MEDIA_CODEC_GET_PRIVATE(info); + purple_media_codec_get_instance_private(info); priv->encoding_name = NULL; priv->optional_params = NULL; } @@ -80,7 +76,8 @@ purple_media_codec_finalize(GObject *info) { PurpleMediaCodecPrivate *priv = - PURPLE_MEDIA_CODEC_GET_PRIVATE(info); + purple_media_codec_get_instance_private( + PURPLE_MEDIA_CODEC(info)); g_free(priv->encoding_name); for (; priv->optional_params; priv->optional_params = g_list_delete_link(priv->optional_params, priv->optional_params)) { @@ -89,6 +86,8 @@ g_free(param->value); g_free(param); } + + G_OBJECT_CLASS(purple_media_codec_parent_class)->finalize(info); } static void @@ -98,7 +97,8 @@ PurpleMediaCodecPrivate *priv; g_return_if_fail(PURPLE_IS_MEDIA_CODEC(object)); - priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(object); + priv = purple_media_codec_get_instance_private( + PURPLE_MEDIA_CODEC(object)); switch (prop_id) { case PROP_ID: @@ -134,7 +134,8 @@ PurpleMediaCodecPrivate *priv; g_return_if_fail(PURPLE_IS_MEDIA_CODEC(object)); - priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(object); + priv = purple_media_codec_get_instance_private( + PURPLE_MEDIA_CODEC(object)); switch (prop_id) { case PROP_ID: @@ -171,8 +172,6 @@ gobject_class->set_property = purple_media_codec_set_property; gobject_class->get_property = purple_media_codec_get_property; - g_type_class_add_private(klass, sizeof(PurpleMediaCodecPrivate)); - properties[PROP_ID] = g_param_spec_uint("id", "ID", "The numeric identifier of the codec.", @@ -283,7 +282,7 @@ g_return_if_fail(codec != NULL); g_return_if_fail(name != NULL && value != NULL); - priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); + priv = purple_media_codec_get_instance_private(codec); new_param = g_new0(PurpleKeyValuePair, 1); new_param->key = g_strdup(name); @@ -302,7 +301,7 @@ g_return_if_fail(codec != NULL && param != NULL); - priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); + priv = purple_media_codec_get_instance_private(codec); g_free(param->key); g_free(param->value); @@ -324,7 +323,7 @@ g_return_val_if_fail(codec != NULL, NULL); g_return_val_if_fail(name != NULL, NULL); - priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); + priv = purple_media_codec_get_instance_private(codec); for (iter = priv->optional_params; iter; iter = g_list_next(iter)) { PurpleKeyValuePair *param = iter->data; @@ -347,7 +346,7 @@ if (codec == NULL) return NULL; - priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); + priv = purple_media_codec_get_instance_private(codec); new_codec = purple_media_codec_new(priv->id, priv->encoding_name, priv->media_type, priv->clock_rate); @@ -387,7 +386,7 @@ } gchar * -purple_media_codec_to_string(const PurpleMediaCodec *codec) +purple_media_codec_to_string(PurpleMediaCodec *codec) { PurpleMediaCodecPrivate *priv; GString *string = NULL; @@ -398,7 +397,7 @@ if (codec == NULL) return g_strdup("(NULL)"); - priv = PURPLE_MEDIA_CODEC_GET_PRIVATE(codec); + priv = purple_media_codec_get_instance_private(codec); string = g_string_new("");
--- a/libpurple/media/codec.h Fri Nov 02 01:08:17 2018 +0000 +++ b/libpurple/media/codec.h Fri Nov 02 01:24:29 2018 +0000 @@ -198,7 +198,7 @@ * * Returns: The new string representation. */ -gchar *purple_media_codec_to_string(const PurpleMediaCodec *codec); +gchar *purple_media_codec_to_string(PurpleMediaCodec *codec); G_END_DECLS
--- a/libpurple/mediamanager.c Fri Nov 02 01:08:17 2018 +0000 +++ b/libpurple/mediamanager.c Fri Nov 02 01:24:29 2018 +0000 @@ -113,12 +113,7 @@ } PurpleMediaAppDataInfo; #endif -#define PURPLE_MEDIA_MANAGER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MEDIA_MANAGER, PurpleMediaManagerPrivate)) -#define PURPLE_MEDIA_ELEMENT_INFO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), PURPLE_TYPE_MEDIA_ELEMENT_INFO, PurpleMediaElementInfoPrivate)) - #ifdef USE_VV -static void purple_media_manager_class_init (PurpleMediaManagerClass *klass); -static void purple_media_manager_init (PurpleMediaManager *media); static void purple_media_manager_finalize (GObject *object); #ifdef HAVE_MEDIA_APPLICATION static void free_appdata_info_locked (PurpleMediaAppDataInfo *info); @@ -126,9 +121,6 @@ static void purple_media_manager_init_device_monitor(PurpleMediaManager *manager); static void purple_media_manager_register_static_elements(PurpleMediaManager *manager); -static GObjectClass *parent_class = NULL; - - enum { INIT_MEDIA, @@ -138,41 +130,22 @@ LAST_SIGNAL }; static guint purple_media_manager_signals[LAST_SIGNAL] = {0}; -#endif - + +G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaManager, purple_media_manager, + G_TYPE_OBJECT); +#else GType purple_media_manager_get_type() { -#ifdef USE_VV - static GType type = 0; - - if (type == 0) { - static const GTypeInfo info = { - sizeof(PurpleMediaManagerClass), - NULL, - NULL, - (GClassInitFunc) purple_media_manager_class_init, - NULL, - NULL, - sizeof(PurpleMediaManager), - 0, - (GInstanceInitFunc) purple_media_manager_init, - NULL - }; - type = g_type_register_static(G_TYPE_OBJECT, "PurpleMediaManager", &info, 0); - } - return type; -#else return G_TYPE_NONE; -#endif } +#endif /* USE_VV */ #ifdef USE_VV static void purple_media_manager_class_init (PurpleMediaManagerClass *klass) { GObjectClass *gobject_class = (GObjectClass*)klass; - parent_class = g_type_class_peek_parent(klass); gobject_class->finalize = purple_media_manager_finalize; @@ -204,8 +177,6 @@ G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); - - g_type_class_add_private(klass, sizeof(PurpleMediaManagerPrivate)); } static void @@ -213,7 +184,7 @@ { GError *error; - media->priv = PURPLE_MEDIA_MANAGER_GET_PRIVATE(media); + media->priv = purple_media_manager_get_instance_private(media); media->priv->medias = NULL; media->priv->private_medias = NULL; media->priv->next_output_window_id = 1; @@ -245,7 +216,10 @@ static void purple_media_manager_finalize (GObject *media) { - PurpleMediaManagerPrivate *priv = PURPLE_MEDIA_MANAGER_GET_PRIVATE(media); + PurpleMediaManagerPrivate *priv = + purple_media_manager_get_instance_private( + PURPLE_MEDIA_MANAGER(media)); + for (; priv->medias; priv->medias = g_list_delete_link(priv->medias, priv->medias)) { g_object_unref(priv->medias->data); @@ -273,7 +247,7 @@ } #endif /* GST_CHECK_VERSION(1, 4, 0) */ - parent_class->finalize(media); + G_OBJECT_CLASS(purple_media_manager_parent_class)->finalize(media); } #endif @@ -2409,11 +2383,14 @@ PROP_CREATE_CB, }; +G_DEFINE_TYPE_WITH_PRIVATE(PurpleMediaElementInfo, + purple_media_element_info, G_TYPE_OBJECT); + static void purple_media_element_info_init(PurpleMediaElementInfo *info) { PurpleMediaElementInfoPrivate *priv = - PURPLE_MEDIA_ELEMENT_INFO_GET_PRIVATE(info); + purple_media_element_info_get_instance_private(info); priv->id = NULL; priv->name = NULL; priv->type = PURPLE_MEDIA_ELEMENT_NONE; @@ -2424,9 +2401,12 @@ purple_media_element_info_finalize(GObject *info) { PurpleMediaElementInfoPrivate *priv = - PURPLE_MEDIA_ELEMENT_INFO_GET_PRIVATE(info); + purple_media_element_info_get_instance_private( + PURPLE_MEDIA_ELEMENT_INFO(info)); g_free(priv->id); g_free(priv->name); + + G_OBJECT_CLASS(purple_media_element_info_parent_class)->finalize(info); } static void @@ -2436,7 +2416,8 @@ PurpleMediaElementInfoPrivate *priv; g_return_if_fail(PURPLE_IS_MEDIA_ELEMENT_INFO(object)); - priv = PURPLE_MEDIA_ELEMENT_INFO_GET_PRIVATE(object); + priv = purple_media_element_info_get_instance_private( + PURPLE_MEDIA_ELEMENT_INFO(object)); switch (prop_id) { case PROP_ID: @@ -2468,7 +2449,8 @@ PurpleMediaElementInfoPrivate *priv; g_return_if_fail(PURPLE_IS_MEDIA_ELEMENT_INFO(object)); - priv = PURPLE_MEDIA_ELEMENT_INFO_GET_PRIVATE(object); + priv = purple_media_element_info_get_instance_private( + PURPLE_MEDIA_ELEMENT_INFO(object)); switch (prop_id) { case PROP_ID: @@ -2530,13 +2512,8 @@ "The function called to create this element.", G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - g_type_class_add_private(klass, sizeof(PurpleMediaElementInfoPrivate)); } -G_DEFINE_TYPE(PurpleMediaElementInfo, - purple_media_element_info, G_TYPE_OBJECT); - gchar * purple_media_element_info_get_id(PurpleMediaElementInfo *info) {