diff options
author | Gary Kramlich <grim@reaperworld.com> | 2018-11-02 01:24:29 +0000 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2018-11-02 01:24:29 +0000 |
commit | 26b5794b68a8d0f4e2238fc3a0bc4aa133d0a37e (patch) | |
tree | 2cbd490990c59f26122e835d49807355b5b7a6b6 | |
parent | 2571dc4a789d6a1d5a76d262f735107e61503ef9 (diff) | |
parent | 8cd45fecf36d902fae0370420e2aa0f67a04744b (diff) | |
download | pidgin-26b5794b68a8d0f4e2238fc3a0bc4aa133d0a37e.tar.gz |
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
-rw-r--r-- | libpurple/media.c | 45 | ||||
-rw-r--r-- | libpurple/media/backend-fs2.c | 77 | ||||
-rw-r--r-- | libpurple/media/candidate.c | 28 | ||||
-rw-r--r-- | libpurple/media/codec.c | 35 | ||||
-rw-r--r-- | libpurple/media/codec.h | 2 | ||||
-rw-r--r-- | libpurple/mediamanager.c | 67 |
6 files changed, 105 insertions, 149 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 diff --git a/libpurple/media/backend-fs2.c b/libpurple/media/backend-fs2.c index 393accfdb9..0e6e73178f 100644 --- a/libpurple/media/backend-fs2.c +++ b/libpurple/media/backend-fs2.c @@ -48,10 +48,6 @@ typedef struct _PurpleMediaBackendFs2Session PurpleMediaBackendFs2Session; /** @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 @@ struct _PurpleMediaBackendFs2 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 @@ enum { 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 @@ static void 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 @@ static void 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 @@ purple_media_backend_fs2_set_property(GObject *object, guint prop_id, 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 @@ purple_media_backend_fs2_get_property(GObject *object, guint prop_id, 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 @@ purple_media_backend_fs2_class_init(PurpleMediaBackendFs2Class *klass) "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 @@ get_session(PurpleMediaBackendFs2 *self, const gchar *sess_id) 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 @@ get_participant(PurpleMediaBackendFs2 *self, const gchar *name) 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 @@ get_stream(PurpleMediaBackendFs2 *self, 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 @@ get_streams(PurpleMediaBackendFs2 *self, 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 @@ static PurpleMediaBackendFs2Session * 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 @@ gst_handle_message_element(GstBus *bus, GstMessage *msg, 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 @@ gst_handle_message_error(GstBus *bus, GstMessage *msg, 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 @@ state_changed_cb(PurpleMedia *media, PurpleMediaState state, { 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 @@ stream_info_cb(PurpleMedia *media, PurpleMediaInfoType type, } 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 @@ static gboolean 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 @@ create_src(PurpleMediaBackendFs2 *self, const gchar *sess_id, 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 @@ create_session(PurpleMediaBackendFs2 *self, const gchar *sess_id, 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 @@ static gboolean 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 @@ src_pad_added_cb_cb(PurpleMediaBackendFs2Stream *stream) 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 @@ src_pad_added_cb(FsStream *fsstream, GstPad *srcpad, 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 @@ create_stream(PurpleMediaBackendFs2 *self, 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 @@ purple_media_backend_fs2_add_stream(PurpleMediaBackend *self, { 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 @@ purple_media_backend_fs2_add_remote_candidates(PurpleMediaBackend *self, 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 @@ purple_media_backend_fs2_codecs_ready(PurpleMediaBackend *self, 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 @@ purple_media_backend_fs2_set_params(PurpleMediaBackend *self, 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 @@ purple_media_backend_fs2_set_input_volume(PurpleMediaBackendFs2 *self, 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); diff --git a/libpurple/media/candidate.c b/libpurple/media/candidate.c index be9d9dd3c4..9ff451ee7e 100644 --- a/libpurple/media/candidate.c +++ b/libpurple/media/candidate.c @@ -26,12 +26,6 @@ typedef struct _PurpleMediaCandidateClass PurpleMediaCandidateClass; /** @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 @@ struct _PurpleMediaCandidate GObject parent; }; -G_DEFINE_TYPE(PurpleMediaCandidate, purple_media_candidate, G_TYPE_OBJECT); - struct _PurpleMediaCandidatePrivate { gchar *foundation; @@ -76,11 +68,14 @@ enum { 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 @@ static void 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 @@ purple_media_candidate_set_property (GObject *object, guint prop_id, 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 @@ purple_media_candidate_get_property (GObject *object, guint prop_id, 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 @@ purple_media_candidate_class_init(PurpleMediaCandidateClass *klass) "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 @@ purple_media_candidate_copy(PurpleMediaCandidate *candidate) 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, diff --git a/libpurple/media/codec.c b/libpurple/media/codec.c index b97268d9d2..bab41f5977 100644 --- a/libpurple/media/codec.c +++ b/libpurple/media/codec.c @@ -28,10 +28,6 @@ typedef struct _PurpleMediaCodecClass PurpleMediaCodecClass; /** @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 @@ struct _PurpleMediaCodec GObject parent; }; -G_DEFINE_TYPE(PurpleMediaCodec, purple_media_codec, G_TYPE_OBJECT); - struct _PurpleMediaCodecPrivate { gint id; @@ -67,11 +61,13 @@ enum { 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 @@ static void 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 @@ purple_media_codec_finalize(GObject *info) g_free(param->value); g_free(param); } + + G_OBJECT_CLASS(purple_media_codec_parent_class)->finalize(info); } static void @@ -98,7 +97,8 @@ purple_media_codec_set_property (GObject *object, guint prop_id, 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 @@ purple_media_codec_get_property (GObject *object, guint prop_id, 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 @@ purple_media_codec_class_init(PurpleMediaCodecClass *klass) 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 @@ purple_media_codec_add_optional_parameter(PurpleMediaCodec *codec, 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 @@ purple_media_codec_remove_optional_parameter(PurpleMediaCodec *codec, 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 @@ purple_media_codec_get_optional_parameter(PurpleMediaCodec *codec, 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 @@ purple_media_codec_copy(PurpleMediaCodec *codec) 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 @@ purple_media_codec_list_free(GList *codecs) } 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 @@ purple_media_codec_to_string(const PurpleMediaCodec *codec) 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(""); diff --git a/libpurple/media/codec.h b/libpurple/media/codec.h index 0cad74e11d..e35b0453bc 100644 --- a/libpurple/media/codec.h +++ b/libpurple/media/codec.h @@ -198,7 +198,7 @@ void purple_media_codec_list_free(GList *codecs); * * 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 diff --git a/libpurple/mediamanager.c b/libpurple/mediamanager.c index 613221b31f..1d926115e5 100644 --- a/libpurple/mediamanager.c +++ b/libpurple/mediamanager.c @@ -113,12 +113,7 @@ typedef struct { } 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 free_appdata_info_locked (PurpleMediaAppDataInfo *info); 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 @@ enum { 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 @@ purple_media_manager_class_init (PurpleMediaManagerClass *klass) 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 @@ purple_media_manager_init (PurpleMediaManager *media) { 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 @@ purple_media_manager_init (PurpleMediaManager *media) 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 @@ purple_media_manager_finalize (GObject *media) } #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 @@ enum { 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 @@ static void 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 @@ purple_media_element_info_set_property (GObject *object, guint prop_id, 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 @@ purple_media_element_info_get_property (GObject *object, guint prop_id, 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 @@ purple_media_element_info_class_init(PurpleMediaElementInfoClass *klass) "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) { |