summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGary Kramlich <grim@reaperworld.com>2018-11-02 01:24:29 +0000
committerGary Kramlich <grim@reaperworld.com>2018-11-02 01:24:29 +0000
commit26b5794b68a8d0f4e2238fc3a0bc4aa133d0a37e (patch)
tree2cbd490990c59f26122e835d49807355b5b7a6b6
parent2571dc4a789d6a1d5a76d262f735107e61503ef9 (diff)
parent8cd45fecf36d902fae0370420e2aa0f67a04744b (diff)
downloadpidgin-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.c45
-rw-r--r--libpurple/media/backend-fs2.c77
-rw-r--r--libpurple/media/candidate.c28
-rw-r--r--libpurple/media/codec.c35
-rw-r--r--libpurple/media/codec.h2
-rw-r--r--libpurple/mediamanager.c67
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)
{