From 1b7be3c70417467c424d024dd569d07d441b5362 Mon Sep 17 00:00:00 2001 From: Jens Georg Date: Sun, 4 Jul 2021 08:28:17 +0200 Subject: All: Use new GObject type macros Bump ABI version since I canont guarantee ABI compatibility --- configure.ac | 2 +- libgupnp-dlna/gupnp-dlna-audio-information.c | 54 ++++++------- libgupnp-dlna/gupnp-dlna-audio-information.h | 55 +++++-------- libgupnp-dlna/gupnp-dlna-container-information.c | 30 ++++--- libgupnp-dlna/gupnp-dlna-container-information.h | 53 ++++-------- libgupnp-dlna/gupnp-dlna-image-information.c | 22 +++-- libgupnp-dlna/gupnp-dlna-image-information.h | 54 +++++-------- libgupnp-dlna/gupnp-dlna-info-value.c | 3 +- libgupnp-dlna/gupnp-dlna-information.c | 70 ++++++++-------- libgupnp-dlna/gupnp-dlna-information.h | 52 ++++-------- libgupnp-dlna/gupnp-dlna-profile-guesser.c | 46 +++++------ libgupnp-dlna/gupnp-dlna-profile-guesser.h | 51 ++++-------- libgupnp-dlna/gupnp-dlna-profile-loader.c | 94 +++++++++++++--------- libgupnp-dlna/gupnp-dlna-profile-loader.h | 50 ++++-------- libgupnp-dlna/gupnp-dlna-profile.c | 70 +++++++++------- libgupnp-dlna/gupnp-dlna-profile.h | 54 ++++--------- libgupnp-dlna/gupnp-dlna-video-information.c | 51 ++++++------ libgupnp-dlna/gupnp-dlna-video-information.h | 54 +++++-------- .../gstreamer/gupnp-dlna-gst-audio-information.c | 44 ++++++---- .../gstreamer/gupnp-dlna-gst-audio-information.h | 51 +++++------- .../gupnp-dlna-gst-container-information.c | 46 ++++++++--- .../gupnp-dlna-gst-container-information.h | 53 +++++------- .../gstreamer/gupnp-dlna-gst-image-information.c | 24 ++++-- .../gstreamer/gupnp-dlna-gst-image-information.h | 52 ++++-------- .../gstreamer/gupnp-dlna-gst-information.c | 61 +++++++++----- .../gstreamer/gupnp-dlna-gst-information.h | 51 ++++-------- .../gstreamer/gupnp-dlna-gst-metadata-extractor.c | 33 ++++++-- .../gstreamer/gupnp-dlna-gst-metadata-extractor.h | 47 ++--------- .../gstreamer/gupnp-dlna-gst-video-information.c | 8 ++ .../gstreamer/gupnp-dlna-gst-video-information.h | 47 ++++------- .../metadata/gupnp-dlna-metadata-extractor.c | 19 +++-- .../metadata/gupnp-dlna-metadata-extractor.h | 52 ++++-------- meson.build | 2 +- 33 files changed, 632 insertions(+), 823 deletions(-) diff --git a/configure.ac b/configure.ac index 7a61616..91c8a76 100644 --- a/configure.ac +++ b/configure.ac @@ -21,7 +21,7 @@ AX_CHECK_ENABLE_DEBUG([yes]) dnl library versioning dnl Increase when changing the API -GUPNP_DLNA_CURRENT=3 +GUPNP_DLNA_CURRENT=4 dnl Update when changing implementation of current API, dnl reset to 0 when changing CURRENT. This is the revision of diff --git a/libgupnp-dlna/gupnp-dlna-audio-information.c b/libgupnp-dlna/gupnp-dlna-audio-information.c index 1e646fa..9b0426e 100644 --- a/libgupnp-dlna/gupnp-dlna-audio-information.c +++ b/libgupnp-dlna/gupnp-dlna-audio-information.c @@ -50,6 +50,8 @@ struct _GUPnPDLNAAudioInformationPrivate { gpointer placeholder; }; +typedef struct _GUPnPDLNAAudioInformationPrivate + GUPnPDLNAAudioInformationPrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GUPnPDLNAAudioInformation, gupnp_dlna_audio_information, @@ -76,10 +78,6 @@ gupnp_dlna_audio_information_class_init static void gupnp_dlna_audio_information_init (GUPnPDLNAAudioInformation *info) { - GUPnPDLNAAudioInformationPrivate *priv = - gupnp_dlna_audio_information_get_instance_private (info); - - info->priv = priv; } /** @@ -93,13 +91,13 @@ gupnp_dlna_audio_information_get_bitrate (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_bitrate != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -118,13 +116,13 @@ gupnp_dlna_audio_information_get_channels (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_channels != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -143,13 +141,13 @@ gupnp_dlna_audio_information_get_depth (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_depth != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -168,13 +166,13 @@ gupnp_dlna_audio_information_get_layer (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_layer != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -193,13 +191,13 @@ gupnp_dlna_audio_information_get_level (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_level != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); @@ -219,13 +217,13 @@ gupnp_dlna_audio_information_get_mpeg_audio_version { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_mpeg_audio_version != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -244,13 +242,13 @@ gupnp_dlna_audio_information_get_mpeg_version (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_mpeg_version != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -269,13 +267,13 @@ gupnp_dlna_audio_information_get_profile (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_profile != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); @@ -294,13 +292,13 @@ gupnp_dlna_audio_information_get_rate (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_rate != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -319,13 +317,13 @@ gupnp_dlna_audio_information_get_stream_format (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_stream_format != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); @@ -344,13 +342,13 @@ gupnp_dlna_audio_information_get_wma_version (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_wma_version != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -369,13 +367,13 @@ gupnp_dlna_audio_information_get_mime (GUPnPDLNAAudioInformation *info) { GUPnPDLNAAudioInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_AUDIO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_AUDIO_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_mime != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); diff --git a/libgupnp-dlna/gupnp-dlna-audio-information.h b/libgupnp-dlna/gupnp-dlna-audio-information.h index 7662249..624c33e 100644 --- a/libgupnp-dlna/gupnp-dlna-audio-information.h +++ b/libgupnp-dlna/gupnp-dlna-audio-information.h @@ -27,40 +27,24 @@ G_BEGIN_DECLS -#define GUPNP_TYPE_DLNA_AUDIO_INFORMATION \ - (gupnp_dlna_audio_information_get_type()) +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAAudioInformation, + gupnp_dlna_audio_information, + GUPNP_DLNA, + AUDIO_INFORMATION, + GObject) -#define GUPNP_DLNA_AUDIO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_AUDIO_INFORMATION, \ - GUPnPDLNAAudioInformation)) +#define GUPNP_TYPE_DLNA_AUDIO_INFORMATION \ + (gupnp_dlna_audio_information_get_type ()) -#define GUPNP_DLNA_AUDIO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_AUDIO_INFORMATION, \ - GUPnPDLNAAudioInformationClass)) - -#define GUPNP_IS_DLNA_AUDIO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_AUDIO_INFORMATION)) - -#define GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_AUDIO_INFORMATION)) - -#define GUPNP_DLNA_AUDIO_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_AUDIO_INFORMATION, \ - GUPnPDLNAAudioInformationClass)) - -typedef struct _GUPnPDLNAAudioInformationPrivate - GUPnPDLNAAudioInformationPrivate; - -typedef struct { - GObject parent; - - GUPnPDLNAAudioInformationPrivate *priv; -} GUPnPDLNAAudioInformation; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_AUDIO_INFORMATION: (skip) + */ +#define GUPNP_IS_DLNA_AUDIO_INFORMATION GUPNP_DLNA_IS_AUDIO_INFORMATION +/** + * GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_AUDIO_INFORMATION_CLASS GUPNP_DLNA_IS_AUDIO_INFORMATION_CLASS /** * GUPnPDLNAAudioInformationClass: @@ -91,7 +75,7 @@ typedef struct { * type. * @_reserved: Padding. Ignore it. */ -typedef struct { +struct _GUPnPDLNAAudioInformationClass { GObjectClass parent_class; GUPnPDLNAIntValue @@ -131,10 +115,7 @@ typedef struct { (* get_mime) (GUPnPDLNAAudioInformation *info); gpointer _reserved[12]; -} GUPnPDLNAAudioInformationClass; - -GType -gupnp_dlna_audio_information_get_type (void); +}; GUPnPDLNAIntValue gupnp_dlna_audio_information_get_bitrate (GUPnPDLNAAudioInformation *info); diff --git a/libgupnp-dlna/gupnp-dlna-container-information.c b/libgupnp-dlna/gupnp-dlna-container-information.c index 26aaa85..742449e 100644 --- a/libgupnp-dlna/gupnp-dlna-container-information.c +++ b/libgupnp-dlna/gupnp-dlna-container-information.c @@ -51,6 +51,8 @@ struct _GUPnPDLNAContainerInformationPrivate { gpointer placeholder; }; +typedef struct _GUPnPDLNAContainerInformationPrivate + GUPnPDLNAContainerInformationPrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GUPnPDLNAContainerInformation, gupnp_dlna_container_information, @@ -71,10 +73,6 @@ gupnp_dlna_container_information_class_init static void gupnp_dlna_container_information_init (GUPnPDLNAContainerInformation *info) { - GUPnPDLNAContainerInformationPrivate *priv = - gupnp_dlna_container_information_get_instance_private (info); - - info->priv = priv; } /** @@ -89,13 +87,13 @@ gupnp_dlna_container_information_get_mpeg_version { GUPnPDLNAContainerInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_CONTAINER_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_CONTAINER_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_CONTAINER_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_mpeg_version != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -115,13 +113,13 @@ gupnp_dlna_container_information_get_packet_size { GUPnPDLNAContainerInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_CONTAINER_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_CONTAINER_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_CONTAINER_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_packet_size != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -141,13 +139,13 @@ gupnp_dlna_container_information_get_profile { GUPnPDLNAContainerInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_CONTAINER_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_CONTAINER_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_CONTAINER_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_profile != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); @@ -167,13 +165,13 @@ gupnp_dlna_container_information_is_system_stream { GUPnPDLNAContainerInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_CONTAINER_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_CONTAINER_INFORMATION (info), GUPNP_DLNA_BOOL_VALUE_UNSET); info_class = GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_CONTAINER_INFORMATION_CLASS (info_class), GUPNP_DLNA_BOOL_VALUE_UNSET); g_return_val_if_fail (info_class->is_system_stream != NULL, GUPNP_DLNA_BOOL_VALUE_UNSET); @@ -193,13 +191,13 @@ gupnp_dlna_container_information_get_variant { GUPnPDLNAContainerInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_CONTAINER_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_CONTAINER_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_CONTAINER_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_variant != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); @@ -218,13 +216,13 @@ gupnp_dlna_container_information_get_mime (GUPnPDLNAContainerInformation *info) { GUPnPDLNAContainerInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_CONTAINER_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_CONTAINER_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_CONTAINER_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_mime != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); diff --git a/libgupnp-dlna/gupnp-dlna-container-information.h b/libgupnp-dlna/gupnp-dlna-container-information.h index 156bfd9..8ada6f1 100644 --- a/libgupnp-dlna/gupnp-dlna-container-information.h +++ b/libgupnp-dlna/gupnp-dlna-container-information.h @@ -27,40 +27,24 @@ G_BEGIN_DECLS +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAContainerInformation, + gupnp_dlna_container_information, + GUPNP_DLNA, + CONTAINER_INFORMATION, + GObject) + #define GUPNP_TYPE_DLNA_CONTAINER_INFORMATION \ (gupnp_dlna_container_information_get_type()) -#define GUPNP_DLNA_CONTAINER_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_CONTAINER_INFORMATION, \ - GUPnPDLNAContainerInformation)) - -#define GUPNP_DLNA_CONTAINER_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_CONTAINER_INFORMATION, \ - GUPnPDLNAContainerInformationClass)) - -#define GUPNP_IS_DLNA_CONTAINER_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_CONTAINER_INFORMATION)) - -#define GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_CONTAINER_INFORMATION)) - -#define GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_CONTAINER_INFORMATION, \ - GUPnPDLNAContainerInformationClass)) - -typedef struct _GUPnPDLNAContainerInformationPrivate - GUPnPDLNAContainerInformationPrivate; - -typedef struct { - GObject parent; - - GUPnPDLNAContainerInformationPrivate *priv; -} GUPnPDLNAContainerInformation; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_CONTAINER_INFORMATION: (skip) + */ +#define GUPNP_IS_DLNA_CONTAINER_INFORMATION GUPNP_DLNA_IS_CONTAINER_INFORMATION +/** + * GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS GUPNP_DLNA_IS_CONTAINER_INFORMATION_CLASS /** * GUPnPDLNAContainerInformationClass: @@ -79,7 +63,7 @@ typedef struct { * type. * @_reserved: Padding. Ignore it. */ -typedef struct { +struct _GUPnPDLNAContainerInformationClass { GObjectClass parent_class; GUPnPDLNAIntValue @@ -101,10 +85,7 @@ typedef struct { (* get_mime) (GUPnPDLNAContainerInformation *info); gpointer _reserved[12]; -} GUPnPDLNAContainerInformationClass; - -GType -gupnp_dlna_container_information_get_type (void); +}; GUPnPDLNAIntValue gupnp_dlna_container_information_get_mpeg_version diff --git a/libgupnp-dlna/gupnp-dlna-image-information.c b/libgupnp-dlna/gupnp-dlna-image-information.c index aa36e14..999db40 100644 --- a/libgupnp-dlna/gupnp-dlna-image-information.c +++ b/libgupnp-dlna/gupnp-dlna-image-information.c @@ -50,6 +50,8 @@ struct _GUPnPDLNAImageInformationPrivate { gpointer placeholder; }; +typedef struct _GUPnPDLNAImageInformationPrivate + GUPnPDLNAImageInformationPrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GUPnPDLNAImageInformation, gupnp_dlna_image_information, @@ -68,10 +70,6 @@ gupnp_dlna_image_information_class_init static void gupnp_dlna_image_information_init (GUPnPDLNAImageInformation *info) { - GUPnPDLNAImageInformationPrivate *priv = - gupnp_dlna_image_information_get_instance_private (info); - - info->priv = priv; } /** @@ -85,13 +83,13 @@ gupnp_dlna_image_information_get_depth (GUPnPDLNAImageInformation *info) { GUPnPDLNAImageInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_IMAGE_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_IMAGE_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_IMAGE_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_IMAGE_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_IMAGE_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_depth != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -110,13 +108,13 @@ gupnp_dlna_image_information_get_height (GUPnPDLNAImageInformation *info) { GUPnPDLNAImageInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_IMAGE_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_IMAGE_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_IMAGE_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_IMAGE_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_IMAGE_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_height != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -135,13 +133,13 @@ gupnp_dlna_image_information_get_width (GUPnPDLNAImageInformation *info) { GUPnPDLNAImageInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_IMAGE_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_IMAGE_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_IMAGE_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_IMAGE_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_IMAGE_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_width != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -160,13 +158,13 @@ gupnp_dlna_image_information_get_mime (GUPnPDLNAImageInformation *info) { GUPnPDLNAImageInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_IMAGE_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_IMAGE_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_IMAGE_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_IMAGE_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_IMAGE_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_mime != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); diff --git a/libgupnp-dlna/gupnp-dlna-image-information.h b/libgupnp-dlna/gupnp-dlna-image-information.h index 56b39c3..4608dc8 100644 --- a/libgupnp-dlna/gupnp-dlna-image-information.h +++ b/libgupnp-dlna/gupnp-dlna-image-information.h @@ -27,40 +27,25 @@ G_BEGIN_DECLS -#define GUPNP_TYPE_DLNA_IMAGE_INFORMATION \ - (gupnp_dlna_image_information_get_type()) - -#define GUPNP_DLNA_IMAGE_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_IMAGE_INFORMATION, \ - GUPnPDLNAImageInformation)) - -#define GUPNP_DLNA_IMAGE_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_IMAGE_INFORMATION, \ - GUPnPDLNAImageInformationClass)) - -#define GUPNP_IS_DLNA_IMAGE_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_IMAGE_INFORMATION)) - -#define GUPNP_IS_DLNA_IMAGE_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_IMAGE_INFORMATION)) - -#define GUPNP_DLNA_IMAGE_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_IMAGE_INFORMATION, \ - GUPnPDLNAImageInformationClass)) +G_DECLARE_DERIVABLE_TYPE(GUPnPDLNAImageInformation, + gupnp_dlna_image_information, + GUPNP_DLNA, + IMAGE_INFORMATION, + GObject) -typedef struct _GUPnPDLNAImageInformationPrivate - GUPnPDLNAImageInformationPrivate; -typedef struct { - GObject parent; +#define GUPNP_TYPE_DLNA_IMAGE_INFORMATION \ + (gupnp_dlna_image_information_get_type()) - GUPnPDLNAImageInformationPrivate *priv; -} GUPnPDLNAImageInformation; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_IMAGE_INFORMATION: (skip) + */ +#define GUPNP_IS_DLNA_IMAGE_INFORMATION GUPNP_DLNA_IS_IMAGE_INFORMATION +/** + * GUPNP_IS_DLNA_IMAGE_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_IMAGE_INFORMATION_CLASS GUPNP_DLNA_IS_IMAGE_INFORMATION_CLASS /** * GUPnPDLNAImageInformationClass: @@ -75,7 +60,7 @@ typedef struct { * type. * @_reserved: Padding. Ignore it. */ -typedef struct { +struct _GUPnPDLNAImageInformationClass { GObjectClass parent_class; GUPnPDLNAIntValue @@ -91,10 +76,7 @@ typedef struct { (* get_mime) (GUPnPDLNAImageInformation *info); gpointer _reserved[12]; -} GUPnPDLNAImageInformationClass; - -GType -gupnp_dlna_image_information_get_type (void); +}; GUPnPDLNAIntValue gupnp_dlna_image_information_get_depth (GUPnPDLNAImageInformation *info); diff --git a/libgupnp-dlna/gupnp-dlna-info-value.c b/libgupnp-dlna/gupnp-dlna-info-value.c index 10cc487..25e50a1 100644 --- a/libgupnp-dlna/gupnp-dlna-info-value.c +++ b/libgupnp-dlna/gupnp-dlna-info-value.c @@ -51,10 +51,9 @@ value_new (GUPnPDLNAValueType *type, static GUPnPDLNAInfoValue * value_unsupported (GUPnPDLNAValueType *type) { - GUPnPDLNAInfoValue *info_value = g_slice_new (GUPnPDLNAInfoValue); + GUPnPDLNAInfoValue *info_value = g_slice_new0 (GUPnPDLNAInfoValue); info_value->type = type; - memset (&info_value->value, 0, sizeof (GUPnPDLNAValueUnion)); info_value->unsupported = TRUE; return info_value; diff --git a/libgupnp-dlna/gupnp-dlna-information.c b/libgupnp-dlna/gupnp-dlna-information.c index 0334464..dfe613c 100644 --- a/libgupnp-dlna/gupnp-dlna-information.c +++ b/libgupnp-dlna/gupnp-dlna-information.c @@ -45,6 +45,7 @@ struct _GUPnPDLNAInformationPrivate { GUPnPDLNAImageInformation *image_info; GUPnPDLNAVideoInformation *video_info; }; +typedef struct _GUPnPDLNAInformationPrivate GUPnPDLNAInformationPrivate; G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GUPnPDLNAInformation, gupnp_dlna_information, @@ -70,7 +71,8 @@ static void gupnp_dlna_information_dispose (GObject *object) { GUPnPDLNAInformation *info = GUPNP_DLNA_INFORMATION (object); - GUPnPDLNAInformationPrivate *priv = info->priv; + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); g_clear_object (&priv->audio_info); g_clear_object (&priv->container_info); @@ -83,8 +85,10 @@ static void gupnp_dlna_information_finalize (GObject *object) { GUPnPDLNAInformation *info = GUPNP_DLNA_INFORMATION (object); + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); - g_free (info->priv->uri); + g_free (priv->uri); G_OBJECT_CLASS (gupnp_dlna_information_parent_class)->finalize (object); } @@ -95,7 +99,8 @@ gupnp_dlna_information_set_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAInformation *info = GUPNP_DLNA_INFORMATION (object); - GUPnPDLNAInformationPrivate *priv = info->priv; + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); switch (property_id) { case PROP_URI: @@ -116,7 +121,8 @@ gupnp_dlna_information_get_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAInformation *info = GUPNP_DLNA_INFORMATION (object); - GUPnPDLNAInformationPrivate *priv = info->priv; + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); switch (property_id) { case PROP_URI: @@ -238,19 +244,6 @@ gupnp_dlna_information_class_init (GUPnPDLNAInformationClass *info_class) static void gupnp_dlna_information_init (GUPnPDLNAInformation *info) { - GUPnPDLNAInformationPrivate *priv = - gupnp_dlna_information_get_instance_private (info); - - priv->uri = NULL; - priv->got_audio_info = FALSE; - priv->got_container_info = FALSE; - priv->got_image_info = FALSE; - priv->got_video_info = FALSE; - priv->audio_info = NULL; - priv->container_info = NULL; - priv->image_info = NULL; - priv->video_info = NULL; - info->priv = priv; } /** @@ -265,18 +258,17 @@ gupnp_dlna_information_init (GUPnPDLNAInformation *info) GUPnPDLNAAudioInformation * gupnp_dlna_information_get_audio_information (GUPnPDLNAInformation *info) { - GUPnPDLNAInformationPrivate *priv; - - g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_INFORMATION (info), NULL); + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); - priv = info->priv; if (!priv->got_audio_info) { GUPnPDLNAInformationClass *info_class; info_class = GUPNP_DLNA_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_INFORMATION_CLASS (info_class), NULL); g_return_val_if_fail (info_class->get_audio_information != NULL, NULL); @@ -300,18 +292,17 @@ gupnp_dlna_information_get_audio_information (GUPnPDLNAInformation *info) GUPnPDLNAContainerInformation * gupnp_dlna_information_get_container_information (GUPnPDLNAInformation *info) { - GUPnPDLNAInformationPrivate *priv; - - g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_INFORMATION (info), NULL); + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); - priv = info->priv; if (!priv->got_container_info) { GUPnPDLNAInformationClass *info_class; info_class = GUPNP_DLNA_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_INFORMATION_CLASS (info_class), NULL); g_return_val_if_fail (info_class->get_container_information != NULL, @@ -337,18 +328,18 @@ gupnp_dlna_information_get_container_information (GUPnPDLNAInformation *info) GUPnPDLNAImageInformation * gupnp_dlna_information_get_image_information (GUPnPDLNAInformation *info) { - GUPnPDLNAInformationPrivate *priv; + g_return_val_if_fail (GUPNP_DLNA_IS_INFORMATION (info), NULL); - g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL); + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); - priv = info->priv; if (!priv->got_image_info) { GUPnPDLNAInformationClass *info_class; info_class = GUPNP_DLNA_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_INFORMATION_CLASS (info_class), NULL); g_return_val_if_fail (info_class->get_image_information != NULL, NULL); @@ -372,18 +363,18 @@ gupnp_dlna_information_get_image_information (GUPnPDLNAInformation *info) GUPnPDLNAVideoInformation * gupnp_dlna_information_get_video_information (GUPnPDLNAInformation *info) { - GUPnPDLNAInformationPrivate *priv; + g_return_val_if_fail (GUPNP_DLNA_IS_INFORMATION (info), NULL); - g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL); + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); - priv = info->priv; if (!priv->got_video_info) { GUPnPDLNAInformationClass *info_class; info_class = GUPNP_DLNA_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_INFORMATION_CLASS (info_class), NULL); g_return_val_if_fail (info_class->get_video_information != NULL, NULL); @@ -404,7 +395,7 @@ gupnp_dlna_information_get_video_information (GUPnPDLNAInformation *info) const gchar * gupnp_dlna_information_get_profile_name (GUPnPDLNAInformation *info) { - g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_INFORMATION (info), NULL); return GUPNP_DLNA_INFORMATION_GET_CLASS (info)->get_profile_name (info); } @@ -419,7 +410,10 @@ gupnp_dlna_information_get_profile_name (GUPnPDLNAInformation *info) const gchar * gupnp_dlna_information_get_uri (GUPnPDLNAInformation *info) { - g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_INFORMATION (info), NULL); + + GUPnPDLNAInformationPrivate *priv = + gupnp_dlna_information_get_instance_private (info); - return info->priv->uri; + return priv->uri; } diff --git a/libgupnp-dlna/gupnp-dlna-information.h b/libgupnp-dlna/gupnp-dlna-information.h index e9c6bf3..335c1cd 100644 --- a/libgupnp-dlna/gupnp-dlna-information.h +++ b/libgupnp-dlna/gupnp-dlna-information.h @@ -30,38 +30,23 @@ G_BEGIN_DECLS -#define GUPNP_TYPE_DLNA_INFORMATION (gupnp_dlna_information_get_type()) - -#define GUPNP_DLNA_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_INFORMATION, \ - GUPnPDLNAInformation)) - -#define GUPNP_DLNA_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_INFORMATION, \ - GUPnPDLNAInformationClass)) - -#define GUPNP_IS_DLNA_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_INFORMATION)) - -#define GUPNP_IS_DLNA_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_INFORMATION)) - -#define GUPNP_DLNA_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_INFORMATION, \ - GUPnPDLNAInformationClass)) - -typedef struct _GUPnPDLNAInformationPrivate GUPnPDLNAInformationPrivate; +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAInformation, + gupnp_dlna_information, + GUPNP_DLNA, + INFORMATION, + GObject) -typedef struct { - GObject parent; +#define GUPNP_TYPE_DLNA_INFORMATION (gupnp_dlna_information_get_type()) - GUPnPDLNAInformationPrivate *priv; -} GUPnPDLNAInformation; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_INFORMATION: (skip) + */ +#define GUPNP_IS_DLNA_INFORMATION GUPNP_DLNA_IS_INFORMATION +/** + * GUPNP_IS_DLNA_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_INFORMATION_CLASS GUPNP_DLNA_IS_INFORMATION_CLASS /** * GUPnPDLNAInformationClass: @@ -78,7 +63,7 @@ typedef struct { * get the name of the DLNA profile assigned with this information. * @_reserved: Padding. Ignore it. */ -typedef struct { +struct _GUPnPDLNAInformationClass{ GObjectClass parent_class; GUPnPDLNAAudioInformation * @@ -97,10 +82,7 @@ typedef struct { (* get_profile_name) (GUPnPDLNAInformation *info); gpointer _reserved[11]; -} GUPnPDLNAInformationClass; - -GType -gupnp_dlna_information_get_type (void); +}; GUPnPDLNAAudioInformation* gupnp_dlna_information_get_audio_information (GUPnPDLNAInformation *info); diff --git a/libgupnp-dlna/gupnp-dlna-profile-guesser.c b/libgupnp-dlna/gupnp-dlna-profile-guesser.c index 757802b..c9d815a 100644 --- a/libgupnp-dlna/gupnp-dlna-profile-guesser.c +++ b/libgupnp-dlna/gupnp-dlna-profile-guesser.c @@ -47,6 +47,7 @@ struct _GUPnPDLNAProfileGuesserPrivate { gboolean relaxed_mode; gboolean extended_mode; }; +typedef struct _GUPnPDLNAProfileGuesserPrivate GUPnPDLNAProfileGuesserPrivate; G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAProfileGuesser, gupnp_dlna_profile_guesser, @@ -67,7 +68,8 @@ gupnp_dlna_profile_guesser_set_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAProfileGuesser *self = GUPNP_DLNA_PROFILE_GUESSER (object); - GUPnPDLNAProfileGuesserPrivate *priv = self->priv; + GUPnPDLNAProfileGuesserPrivate *priv = + gupnp_dlna_profile_guesser_get_instance_private (self); switch (property_id) { case PROP_DLNA_RELAXED_MODE: @@ -93,7 +95,8 @@ gupnp_dlna_profile_guesser_get_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAProfileGuesser *self = GUPNP_DLNA_PROFILE_GUESSER (object); - GUPnPDLNAProfileGuesserPrivate *priv = self->priv; + GUPnPDLNAProfileGuesserPrivate *priv = + gupnp_dlna_profile_guesser_get_instance_private (self); switch (property_id) { case PROP_DLNA_RELAXED_MODE: @@ -202,12 +205,6 @@ gupnp_dlna_profile_guesser_class_init static void gupnp_dlna_profile_guesser_init (GUPnPDLNAProfileGuesser *self) { - GUPnPDLNAProfileGuesserPrivate *priv = - gupnp_dlna_profile_guesser_get_instance_private (self); - - priv->relaxed_mode = FALSE; - priv->extended_mode = FALSE; - self->priv = priv; } /** @@ -285,7 +282,7 @@ gupnp_dlna_profile_guesser_guess_profile_async GError *extractor_error; guint id; - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), FALSE); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_GUESSER (guesser), FALSE); g_return_val_if_fail (uri != NULL, FALSE); g_return_val_if_fail (error == NULL || *error == NULL, FALSE); @@ -338,7 +335,7 @@ gupnp_dlna_profile_guesser_guess_profile_sync GUPnPDLNAInformation *info; GUPnPDLNAProfile *profile; - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_GUESSER (guesser), NULL); g_return_val_if_fail (uri != NULL, NULL); g_return_val_if_fail (dlna_info == NULL || *dlna_info == NULL, NULL); g_return_val_if_fail (error == NULL || *error == NULL, NULL); @@ -402,8 +399,8 @@ gupnp_dlna_profile_guesser_guess_profile_from_info GUPnPDLNAProfile *profile; const gchar *profile_name; - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), NULL); - g_return_val_if_fail (GUPNP_IS_DLNA_INFORMATION (info), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_GUESSER (guesser), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_INFORMATION (info), NULL); profiles = gupnp_dlna_profile_guesser_list_profiles (guesser); video_info = gupnp_dlna_information_get_video_information (info); @@ -457,12 +454,12 @@ gupnp_dlna_profile_guesser_get_profile (GUPnPDLNAProfileGuesser *guesser, { // TODO: use a GHashTable for this. GList *iter; - GUPnPDLNAProfileGuesserPrivate *priv; - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_GUESSER (guesser), NULL); g_return_val_if_fail (name != NULL, NULL); - priv = guesser->priv; + GUPnPDLNAProfileGuesserPrivate *priv = + gupnp_dlna_profile_guesser_get_instance_private (guesser); for (iter = profiles_list[priv->relaxed_mode][priv->extended_mode]; iter; @@ -489,11 +486,10 @@ gupnp_dlna_profile_guesser_get_profile (GUPnPDLNAProfileGuesser *guesser, GList * gupnp_dlna_profile_guesser_list_profiles (GUPnPDLNAProfileGuesser *guesser) { - GUPnPDLNAProfileGuesserPrivate *priv; + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_GUESSER (guesser), NULL); - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), NULL); - - priv = guesser->priv; + GUPnPDLNAProfileGuesserPrivate *priv = + gupnp_dlna_profile_guesser_get_instance_private (guesser); return profiles_list[priv->relaxed_mode][priv->extended_mode]; } @@ -507,9 +503,11 @@ gupnp_dlna_profile_guesser_list_profiles (GUPnPDLNAProfileGuesser *guesser) gboolean gupnp_dlna_profile_guesser_get_relaxed_mode (GUPnPDLNAProfileGuesser *guesser) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), FALSE); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_GUESSER (guesser), FALSE); + GUPnPDLNAProfileGuesserPrivate *priv = + gupnp_dlna_profile_guesser_get_instance_private (guesser); - return guesser->priv->relaxed_mode; + return priv->relaxed_mode; } /** @@ -521,9 +519,11 @@ gupnp_dlna_profile_guesser_get_relaxed_mode (GUPnPDLNAProfileGuesser *guesser) gboolean gupnp_dlna_profile_guesser_get_extended_mode (GUPnPDLNAProfileGuesser *guesser) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_GUESSER (guesser), FALSE); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_GUESSER (guesser), FALSE); + GUPnPDLNAProfileGuesserPrivate *priv = + gupnp_dlna_profile_guesser_get_instance_private (guesser); - return guesser->priv->extended_mode; + return priv->extended_mode; } /** diff --git a/libgupnp-dlna/gupnp-dlna-profile-guesser.h b/libgupnp-dlna/gupnp-dlna-profile-guesser.h index a9a4907..d6ee189 100644 --- a/libgupnp-dlna/gupnp-dlna-profile-guesser.h +++ b/libgupnp-dlna/gupnp-dlna-profile-guesser.h @@ -32,52 +32,29 @@ G_BEGIN_DECLS #define GUPNP_TYPE_DLNA_PROFILE_GUESSER (gupnp_dlna_profile_guesser_get_type()) -#define GUPNP_DLNA_PROFILE_GUESSER(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_PROFILE_GUESSER, \ - GUPnPDLNAProfileGuesser)) - -#define GUPNP_DLNA_PROFILE_GUESSER_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_PROFILE_GUESSER, \ - GUPnPDLNAProfileGuesserClass)) - -#define GUPNP_IS_DLNA_PROFILE_GUESSER(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_PROFILE_GUESSER)) - -#define GUPNP_IS_DLNA_PROFILE_GUESSER_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_PROFILE_GUESSER)) - -#define GUPNP_DLNA_PROFILE_GUESSER_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_PROFILE_GUESSER, \ - GUPnPDLNAProfileGuesserClass)) - -typedef struct _GUPnPDLNAProfileGuesserPrivate GUPnPDLNAProfileGuesserPrivate; +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAProfileGuesser, + gupnp_dlna_profile_guesser, + GUPNP_DLNA, + PROFILE_GUESSER, + GObject) +// Backwards-compatible defines /** - * GUPnPDLNAProfileGuesser: - * - * The top-level object used to for DLNA profile guessing. + * GUPNP_IS_DLNA_PROFILE_GUESSER: (skip) */ -typedef struct { - GObject parent; - - GUPnPDLNAProfileGuesserPrivate *priv; -} GUPnPDLNAProfileGuesser; +#define GUPNP_IS_DLNA_PROFILE_GUESSER GUPNP_DLNA_IS_PROFILE_GUESSER +/** + * GUPNP_IS_DLNA_PROFILE_GUESSER_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_PROFILE_GUESSER_CLASS GUPNP_DLNA_IS_PROFILE_GUESSER_CLASS /** * GUPnPDLNAProfileGuesserClass: * @parent_class: A #GObjectClass - parent of this class. */ -typedef struct { +struct _GUPnPDLNAProfileGuesserClass { GObjectClass parent_class; -} GUPnPDLNAProfileGuesserClass; - -GType -gupnp_dlna_profile_guesser_get_type (void) G_GNUC_CONST; +}; GUPnPDLNAProfileGuesser * gupnp_dlna_profile_guesser_new (gboolean relaxed_mode, diff --git a/libgupnp-dlna/gupnp-dlna-profile-loader.c b/libgupnp-dlna/gupnp-dlna-profile-loader.c index f4d7a0f..fae7c09 100644 --- a/libgupnp-dlna/gupnp-dlna-profile-loader.c +++ b/libgupnp-dlna/gupnp-dlna-profile-loader.c @@ -48,6 +48,7 @@ struct _GUPnPDLNAProfileLoaderPrivate { GList *restriction_data_stack; char *dlna_profile_dir; }; +typedef struct _GUPnPDLNAProfileLoaderPrivate GUPnPDLNAProfileLoaderPrivate; G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAProfileLoader, gupnp_dlna_profile_loader, @@ -220,7 +221,9 @@ static void push_tag (GUPnPDLNAProfileLoader *loader, GUPnPDLNAParsedElement element) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); + gint raw_element = (gint) element; priv->tags_stack = g_list_prepend (priv->tags_stack, @@ -230,7 +233,8 @@ push_tag (GUPnPDLNAProfileLoader *loader, static void pop_tag (GUPnPDLNAProfileLoader *loader) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); priv->tags_stack = g_list_delete_link (priv->tags_stack, priv->tags_stack); @@ -239,7 +243,8 @@ pop_tag (GUPnPDLNAProfileLoader *loader) static GUPnPDLNAParsedElement top_tag (GUPnPDLNAProfileLoader *loader) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); if (priv->tags_stack != NULL) { gint top_raw = GPOINTER_TO_INT (priv->tags_stack->data); @@ -314,7 +319,6 @@ post_field (GUPnPDLNAProfileLoader *loader, const gchar *type, GList *values) { - GUPnPDLNAProfileLoaderPrivate *priv; GUPnPDLNARestrictionData *restriction_data; GUPnPDLNANameValueListPair *pair; GUPnPDLNAValueList *value_list; @@ -331,7 +335,8 @@ post_field (GUPnPDLNAProfileLoader *loader, if (value_type == NULL) return; - priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); restriction_data = (GUPnPDLNARestrictionData *) priv->restriction_data_stack->data; value_list = gupnp_dlna_value_list_new (value_type); @@ -353,7 +358,8 @@ static void merge_restrictions (GUPnPDLNAProfileLoader *loader, GUPnPDLNADescription *description) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); GUPnPDLNAProfileData* data = (GUPnPDLNAProfileData *) priv->dlna_profile_data_stack->data; GList **target_list; @@ -402,7 +408,8 @@ static void collect_parents (GUPnPDLNAProfileLoader *loader, GUPnPDLNADescription *description) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); GUPnPDLNARestrictionData *data = (GUPnPDLNARestrictionData *) priv->restriction_data_stack->data; @@ -436,7 +443,8 @@ static void post_parent (GUPnPDLNAProfileLoader *loader, const gchar *parent) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); pop_tag (loader); @@ -453,7 +461,8 @@ post_parent (GUPnPDLNAProfileLoader *loader, static void pre_restriction (GUPnPDLNAProfileLoader *loader) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); GUPnPDLNARestrictionData *data = gupnp_dlna_restriction_data_new (); push_tag (loader, GUPNP_DLNA_PARSED_ELEMENT_RESTRICTION); @@ -484,7 +493,8 @@ post_restriction (GUPnPDLNAProfileLoader *loader, const gchar *id, const gchar *name) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); GUPnPDLNARestrictionData *data = (GUPnPDLNARestrictionData *) priv->restriction_data_stack->data; GUPnPDLNARestriction *restriction; @@ -563,7 +573,8 @@ post_restrictions (GUPnPDLNAProfileLoader *loader) static void pre_dlna_profile (GUPnPDLNAProfileLoader *loader) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); GUPnPDLNAProfileData* data = gupnp_dlna_profile_data_new (); push_tag (loader, GUPNP_DLNA_PARSED_ELEMENT_DLNA_PROFILE); @@ -650,7 +661,8 @@ create_profile (GUPnPDLNAProfileLoader *loader, const gchar *mime, gboolean extended) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); GUPnPDLNAProfileData *data = (GUPnPDLNAProfileData *) priv->dlna_profile_data_stack->data; GList *audio_restrictions = NULL; @@ -692,7 +704,8 @@ create_profile (GUPnPDLNAProfileLoader *loader, static void post_dlna_profile (GUPnPDLNAProfileLoader *loader) { - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); GUPnPDLNAProfileData *data = (GUPnPDLNAProfileData *) priv->dlna_profile_data_stack->data; @@ -764,7 +777,8 @@ gupnp_dlna_profile_loader_get_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAProfileLoader *loader = GUPNP_DLNA_PROFILE_LOADER (object); - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); switch (prop_id) { case PROP_RELAXED_MODE: @@ -787,7 +801,8 @@ gupnp_dlna_profile_loader_set_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAProfileLoader *loader = GUPNP_DLNA_PROFILE_LOADER (object); - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); switch (prop_id) { case PROP_RELAXED_MODE: @@ -807,7 +822,8 @@ static void gupnp_dlna_profile_loader_dispose (GObject *object) { GUPnPDLNAProfileLoader *loader = GUPNP_DLNA_PROFILE_LOADER (object); - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); g_clear_pointer (&priv->restrictions, g_hash_table_unref); g_clear_pointer (&priv->profile_ids, g_hash_table_unref); @@ -884,11 +900,6 @@ gupnp_dlna_profile_loader_init (GUPnPDLNAProfileLoader *self) g_str_equal, g_free, (GDestroyNotify) gupnp_dlna_description_free); - priv->tags_stack = NULL; - priv->dlna_profile_data_stack = NULL; - priv->restriction_data_stack = NULL; - - self->priv = priv; } static GUPnPDLNAFieldValue * @@ -981,7 +992,8 @@ process_field (GUPnPDLNAProfileLoader *loader, gboolean done = FALSE; gboolean skip = FALSE; GUPnPDLNAFieldValue *value = NULL; - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); pre_field (loader); @@ -1066,7 +1078,8 @@ process_parent (GUPnPDLNAProfileLoader *loader, { xmlChar *parent = NULL; xmlChar *used = NULL; - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); pre_parent (loader); @@ -1112,7 +1125,8 @@ process_restriction (GUPnPDLNAProfileLoader *loader, xmlChar *id = NULL; xmlChar *type = NULL; gchar *name = NULL; - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); pre_restriction (loader); /* @@ -1258,7 +1272,8 @@ process_dlna_profile (GUPnPDLNAProfileLoader *loader, xmlChar *extended; gboolean done = FALSE; gboolean is_extended = FALSE; - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); pre_dlna_profile (loader); @@ -1368,9 +1383,10 @@ process_include (GUPnPDLNAProfileLoader *loader, xmlFree (path); if (!g_path_is_absolute (g_path)) { - gchar *tmp = g_build_filename (loader->priv->dlna_profile_dir, - g_path, - NULL); + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); + gchar *tmp = + g_build_filename (priv->dlna_profile_dir, g_path, NULL); g_free (g_path); g_path = tmp; } @@ -1431,7 +1447,9 @@ gupnp_dlna_profile_loader_get_from_file (GUPnPDLNAProfileLoader *loader, xmlTextReaderPtr reader = NULL; xmlRelaxNGParserCtxtPtr rngp = NULL; xmlRelaxNGPtr rngs = NULL; - GUPnPDLNAProfileLoaderPrivate *priv = loader->priv; + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); + char *rng_path = NULL; if (g_hash_table_contains (priv->files_hash, path)) @@ -1444,7 +1462,7 @@ gupnp_dlna_profile_loader_get_from_file (GUPnPDLNAProfileLoader *loader, goto out; /* Load the schema for validation */ - rng_path = g_build_filename (loader->priv->dlna_profile_dir, + rng_path = g_build_filename (priv->dlna_profile_dir, "dlna-profiles.rng", NULL); rngp = xmlRelaxNGNewParserCtxt (rng_path); @@ -1552,27 +1570,29 @@ gupnp_dlna_profile_loader_get_from_disk (GUPnPDLNAProfileLoader *loader) { GList *profiles; - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE_LOADER (loader), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE_LOADER (loader), NULL); + GUPnPDLNAProfileLoaderPrivate *priv = + gupnp_dlna_profile_loader_get_instance_private (loader); - if (loader->priv->dlna_profile_dir == NULL) { + if (priv->dlna_profile_dir == NULL) { char **env = NULL; const char *profile_dir = NULL; env = g_get_environ (); profile_dir = g_environ_getenv (env, "GUPNP_DLNA_PROFILE_DIR"); if (profile_dir != NULL && g_path_is_absolute (profile_dir)) { - loader->priv->dlna_profile_dir = g_strdup (profile_dir); + priv->dlna_profile_dir = g_strdup (profile_dir); } else { - loader->priv->dlna_profile_dir = g_strdup (DLNA_DATA_DIR); + priv->dlna_profile_dir = g_strdup (DLNA_DATA_DIR); } g_strfreev (env); } - profiles = gupnp_dlna_profile_loader_get_from_dir - (loader, - loader->priv->dlna_profile_dir); + profiles = + gupnp_dlna_profile_loader_get_from_dir (loader, + priv->dlna_profile_dir); profiles = g_list_reverse (profiles); diff --git a/libgupnp-dlna/gupnp-dlna-profile-loader.h b/libgupnp-dlna/gupnp-dlna-profile-loader.h index 68e72d1..635e6d3 100644 --- a/libgupnp-dlna/gupnp-dlna-profile-loader.h +++ b/libgupnp-dlna/gupnp-dlna-profile-loader.h @@ -31,45 +31,29 @@ G_BEGIN_DECLS -#define GUPNP_TYPE_DLNA_PROFILE_LOADER (gupnp_dlna_profile_loader_get_type ()) - -#define GUPNP_DLNA_PROFILE_LOADER(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_PROFILE_LOADER, \ - GUPnPDLNAProfileLoader)) - -#define GUPNP_DLNA_PROFILE_LOADER_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_PROFILE_LOADER, \ - GUPnPDLNAProfileLoaderClass)) +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAProfileLoader, + gupnp_dlna_profile_loader, + GUPNP_DLNA, + PROFILE_LOADER, + GObject) -#define GUPNP_IS_DLNA_PROFILE_LOADER(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_PROFILE_LOADER)) -#define GUPNP_IS_DLNA_PROFILE_LOADER_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_PROFILE_LOADER)) - -#define GUPNP_DLNA_PROFILE_LOADER_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_PROFILE_LOADER, \ - GUPnPDLNAProfileLoaderClass)) +#define GUPNP_TYPE_DLNA_PROFILE_LOADER (gupnp_dlna_profile_loader_get_type ()) +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_PROFILE_LOADER: (skip) + */ +#define GUPNP_IS_DLNA_PROFILE_LOADER GUPNP_DLNA_IS_PROFILE_LOADER +/** + * GUPNP_IS_DLNA_PROFILE_LOADER_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_PROFILE_LOADER_CLASS GUPNP_DLNA_IS_PROFILE_LOADER_CLASS typedef struct _GUPnPDLNAProfileLoaderPrivate GUPnPDLNAProfileLoaderPrivate; -typedef struct { - GObject parent; - - GUPnPDLNAProfileLoaderPrivate *priv; -} GUPnPDLNAProfileLoader; - -typedef struct { +struct _GUPnPDLNAProfileLoaderClass { GObjectClass parent_class; -} GUPnPDLNAProfileLoaderClass; - -GType -gupnp_dlna_profile_loader_get_type (void); +}; GUPnPDLNAProfileLoader * gupnp_dlna_profile_loader_new (gboolean relaxed_mode, diff --git a/libgupnp-dlna/gupnp-dlna-profile.c b/libgupnp-dlna/gupnp-dlna-profile.c index eb190a9..8f215a7 100644 --- a/libgupnp-dlna/gupnp-dlna-profile.c +++ b/libgupnp-dlna/gupnp-dlna-profile.c @@ -37,6 +37,13 @@ * restrictions specified for that DLNA profile is to be added. */ +/** + * GUPnPDLNAProfile: + * + * The top-level object used for the in-memory representation of the + * DLNA Profiles. + */ + struct _GUPnPDLNAProfilePrivate { gchar *name; gchar *mime; @@ -46,6 +53,7 @@ struct _GUPnPDLNAProfilePrivate { GList *image_restrictions; GList *video_restrictions; }; +typedef struct _GUPnPDLNAProfilePrivate GUPnPDLNAProfilePrivate; G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAProfile, gupnp_dlna_profile, G_TYPE_OBJECT) @@ -67,7 +75,8 @@ gupnp_dlna_profile_get_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAProfile *profile = GUPNP_DLNA_PROFILE (object); - GUPnPDLNAProfilePrivate *priv = profile->priv; + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); switch (property_id) { case PROP_DLNA_NAME: @@ -122,7 +131,8 @@ gupnp_dlna_profile_set_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAProfile *profile = GUPNP_DLNA_PROFILE (object); - GUPnPDLNAProfilePrivate *priv = profile->priv; + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); switch (property_id) { case PROP_DLNA_NAME: @@ -170,7 +180,8 @@ static void gupnp_dlna_profile_finalize (GObject *object) { GUPnPDLNAProfile *profile = GUPNP_DLNA_PROFILE (object); - GUPnPDLNAProfilePrivate *priv = profile->priv; + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); g_free (priv->name); g_free (priv->mime); @@ -271,17 +282,6 @@ gupnp_dlna_profile_class_init (GUPnPDLNAProfileClass *klass) static void gupnp_dlna_profile_init (GUPnPDLNAProfile *profile) { - GUPnPDLNAProfilePrivate *priv = - gupnp_dlna_profile_get_instance_private (profile); - - priv->name = NULL; - priv->mime = NULL; - priv->extended = FALSE; - priv->audio_restrictions = NULL; - priv->container_restrictions = NULL; - priv->image_restrictions = NULL; - priv->video_restrictions = NULL; - profile->priv = priv; } /** @@ -293,9 +293,11 @@ gupnp_dlna_profile_init (GUPnPDLNAProfile *profile) const gchar * gupnp_dlna_profile_get_name (GUPnPDLNAProfile *profile) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE (profile), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE (profile), NULL); + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); - return profile->priv->name; + return priv->name; } /** @@ -307,9 +309,11 @@ gupnp_dlna_profile_get_name (GUPnPDLNAProfile *profile) const gchar * gupnp_dlna_profile_get_mime (GUPnPDLNAProfile *profile) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE (profile), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE (profile), NULL); + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); - return profile->priv->mime; + return priv->mime; } /** @@ -321,9 +325,11 @@ gupnp_dlna_profile_get_mime (GUPnPDLNAProfile *profile) gboolean gupnp_dlna_profile_get_extended (GUPnPDLNAProfile *profile) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE (profile), FALSE); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE (profile), FALSE); + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); - return profile->priv->extended; + return priv->extended; } /** @@ -338,9 +344,11 @@ gupnp_dlna_profile_get_extended (GUPnPDLNAProfile *profile) GList * gupnp_dlna_profile_get_audio_restrictions (GUPnPDLNAProfile *profile) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE (profile), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE (profile), NULL); + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); - return profile->priv->audio_restrictions; + return priv->audio_restrictions; } /** @@ -355,9 +363,11 @@ gupnp_dlna_profile_get_audio_restrictions (GUPnPDLNAProfile *profile) GList * gupnp_dlna_profile_get_container_restrictions (GUPnPDLNAProfile *profile) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE (profile), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE (profile), NULL); + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); - return profile->priv->container_restrictions; + return priv->container_restrictions; } /** @@ -372,9 +382,11 @@ gupnp_dlna_profile_get_container_restrictions (GUPnPDLNAProfile *profile) GList * gupnp_dlna_profile_get_image_restrictions (GUPnPDLNAProfile *profile) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE (profile), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE (profile), NULL); + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); - return profile->priv->image_restrictions; + return priv->image_restrictions; } /** @@ -389,9 +401,11 @@ gupnp_dlna_profile_get_image_restrictions (GUPnPDLNAProfile *profile) GList * gupnp_dlna_profile_get_video_restrictions (GUPnPDLNAProfile *profile) { - g_return_val_if_fail (GUPNP_IS_DLNA_PROFILE (profile), NULL); + g_return_val_if_fail (GUPNP_DLNA_IS_PROFILE (profile), NULL); + GUPnPDLNAProfilePrivate *priv = + gupnp_dlna_profile_get_instance_private (profile); - return profile->priv->video_restrictions; + return priv->video_restrictions; } GUPnPDLNAProfile * diff --git a/libgupnp-dlna/gupnp-dlna-profile.h b/libgupnp-dlna/gupnp-dlna-profile.h index 7f400ed..5a649cf 100644 --- a/libgupnp-dlna/gupnp-dlna-profile.h +++ b/libgupnp-dlna/gupnp-dlna-profile.h @@ -29,55 +29,31 @@ G_BEGIN_DECLS -#define GUPNP_TYPE_DLNA_PROFILE gupnp_dlna_profile_get_type() - -#define GUPNP_DLNA_PROFILE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_PROFILE, \ - GUPnPDLNAProfile)) - -#define GUPNP_DLNA_PROFILE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_PROFILE, \ - GUPnPDLNAProfileClass)) - -#define GUPNP_IS_DLNA_PROFILE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_PROFILE)) - -#define GUPNP_IS_DLNA_PROFILE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_PROFILE)) - -#define GUPNP_DLNA_PROFILE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_PROFILE, \ - GUPnPDLNAProfileClass)) +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAProfile, + gupnp_dlna_profile, + GUPNP_DLNA, + PROFILE, + GObject) -typedef struct _GUPnPDLNAProfilePrivate GUPnPDLNAProfilePrivate; +#define GUPNP_TYPE_DLNA_PROFILE gupnp_dlna_profile_get_type() +// Backwards-compatible defines /** - * GUPnPDLNAProfile: - * - * The top-level object used for the in-memory representation of the - * DLNA Profiles. + * GUPNP_IS_DLNA_PROFILE: (skip) */ -typedef struct { - GObject parent; - - GUPnPDLNAProfilePrivate *priv; -} GUPnPDLNAProfile; +#define GUPNP_IS_DLNA_PROFILE GUPNP_DLNA_IS_PROFILE +/** + * GUPNP_IS_DLNA_PROFILE_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_PROFILE_CLASS GUPNP_DLNA_IS_PROFILE_CLASS /** * GUPnPDLNAProfileClass: * @parent_class: A #GObjectClass - parent of this class. */ -typedef struct { +struct _GUPnPDLNAProfileClass { GObjectClass parent_class; -} GUPnPDLNAProfileClass; - -GType -gupnp_dlna_profile_get_type (void); +}; const gchar * gupnp_dlna_profile_get_name (GUPnPDLNAProfile *profile); diff --git a/libgupnp-dlna/gupnp-dlna-video-information.c b/libgupnp-dlna/gupnp-dlna-video-information.c index 6a0df92..08a4373 100644 --- a/libgupnp-dlna/gupnp-dlna-video-information.c +++ b/libgupnp-dlna/gupnp-dlna-video-information.c @@ -52,6 +52,9 @@ struct _GUPnPDLNAVideoInformationPrivate { gpointer placeholder; }; +typedef struct _GUPnPDLNAVideoInformationPrivate + GUPnPDLNAVideoInformationPrivate; + G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GUPnPDLNAVideoInformation, gupnp_dlna_video_information, G_TYPE_OBJECT) @@ -76,10 +79,6 @@ gupnp_dlna_video_information_class_init static void gupnp_dlna_video_information_init (GUPnPDLNAVideoInformation *info) { - GUPnPDLNAVideoInformationPrivate *priv = - gupnp_dlna_video_information_get_instance_private (info); - - info->priv = priv; } /** @@ -93,13 +92,13 @@ gupnp_dlna_video_information_get_bitrate (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_bitrate != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -118,13 +117,13 @@ gupnp_dlna_video_information_get_framerate (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_FRACTION_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_FRACTION_VALUE_UNSET); g_return_val_if_fail (info_class->get_framerate != NULL, GUPNP_DLNA_FRACTION_VALUE_UNSET); @@ -143,13 +142,13 @@ gupnp_dlna_video_information_get_height (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_height != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -168,13 +167,13 @@ gupnp_dlna_video_information_is_interlaced (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_BOOL_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_BOOL_VALUE_UNSET); g_return_val_if_fail (info_class->is_interlaced != NULL, GUPNP_DLNA_BOOL_VALUE_UNSET); @@ -193,13 +192,13 @@ gupnp_dlna_video_information_get_level (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_level != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); @@ -218,13 +217,13 @@ gupnp_dlna_video_information_get_mpeg_version (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_mpeg_version != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -244,13 +243,13 @@ gupnp_dlna_video_information_get_pixel_aspect_ratio { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_FRACTION_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_FRACTION_VALUE_UNSET); g_return_val_if_fail (info_class->get_pixel_aspect_ratio != NULL, GUPNP_DLNA_FRACTION_VALUE_UNSET); @@ -269,13 +268,13 @@ gupnp_dlna_video_information_get_profile (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_profile != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); @@ -294,13 +293,13 @@ gupnp_dlna_video_information_is_system_stream (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_BOOL_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_BOOL_VALUE_UNSET); g_return_val_if_fail (info_class->is_system_stream != NULL, GUPNP_DLNA_BOOL_VALUE_UNSET); @@ -319,13 +318,13 @@ gupnp_dlna_video_information_get_width (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_INT_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_INT_VALUE_UNSET); g_return_val_if_fail (info_class->get_width != NULL, GUPNP_DLNA_INT_VALUE_UNSET); @@ -344,13 +343,13 @@ gupnp_dlna_video_information_get_mime (GUPnPDLNAVideoInformation *info) { GUPnPDLNAVideoInformationClass *info_class; - g_return_val_if_fail (GUPNP_IS_DLNA_VIDEO_INFORMATION (info), + g_return_val_if_fail (GUPNP_DLNA_IS_VIDEO_INFORMATION (info), GUPNP_DLNA_STRING_VALUE_UNSET); info_class = GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS (info); g_return_val_if_fail - (GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS (info_class), + (GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS (info_class), GUPNP_DLNA_STRING_VALUE_UNSET); g_return_val_if_fail (info_class->get_mime != NULL, GUPNP_DLNA_STRING_VALUE_UNSET); diff --git a/libgupnp-dlna/gupnp-dlna-video-information.h b/libgupnp-dlna/gupnp-dlna-video-information.h index 778d631..c91d352 100644 --- a/libgupnp-dlna/gupnp-dlna-video-information.h +++ b/libgupnp-dlna/gupnp-dlna-video-information.h @@ -27,40 +27,25 @@ G_BEGIN_DECLS -#define GUPNP_TYPE_DLNA_VIDEO_INFORMATION \ - (gupnp_dlna_video_information_get_type()) - -#define GUPNP_DLNA_VIDEO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_VIDEO_INFORMATION, \ - GUPnPDLNAVideoInformation)) - -#define GUPNP_DLNA_VIDEO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_VIDEO_INFORMATION, \ - GUPnPDLNAVideoInformationClass)) - -#define GUPNP_IS_DLNA_VIDEO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_VIDEO_INFORMATION)) - -#define GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_VIDEO_INFORMATION)) - -#define GUPNP_DLNA_VIDEO_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_VIDEO_INFORMATION, \ - GUPnPDLNAVideoInformationClass)) +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAVideoInformation, + gupnp_dlna_video_information, + GUPNP_DLNA, + VIDEO_INFORMATION, + GObject) -typedef struct _GUPnPDLNAVideoInformationPrivate - GUPnPDLNAVideoInformationPrivate; -typedef struct { - GObject parent; +#define GUPNP_TYPE_DLNA_VIDEO_INFORMATION \ + (gupnp_dlna_video_information_get_type()) - GUPnPDLNAVideoInformationPrivate *priv; -} GUPnPDLNAVideoInformation; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_VIDEO_INFORMATION: (skip) + */ +#define GUPNP_IS_DLNA_VIDEO_INFORMATION GUPNP_DLNA_IS_VIDEO_INFORMATION +/** + * GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS GUPNP_DLNA_IS_VIDEO_INFORMATION_CLASS /** * GUPnPDLNAVideoInformationClass: @@ -89,7 +74,7 @@ typedef struct { * type. * @_reserved: Padding. Ignore it. */ -typedef struct { +struct _GUPnPDLNAVideoInformationClass { GObjectClass parent_class; GUPnPDLNAIntValue @@ -126,10 +111,7 @@ typedef struct { (* get_mime) (GUPnPDLNAVideoInformation *info); gpointer _reserved[12]; -} GUPnPDLNAVideoInformationClass; - -GType -gupnp_dlna_video_information_get_type (void); +}; GUPnPDLNAIntValue gupnp_dlna_video_information_get_bitrate (GUPnPDLNAVideoInformation *info); diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c index 0f8a5a0..512d3e1 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c @@ -25,12 +25,19 @@ #include "gupnp-dlna-gst-audio-information.h" #include "gupnp-dlna-gst-info-utils.h" + struct _GUPnPDLNAGstAudioInformationPrivate { GstDiscovererInfo *info; GList *stream_list; GstDiscovererAudioInfo *audio_info; GstCaps *caps; }; +typedef struct _GUPnPDLNAGstAudioInformationPrivate + GUPnPDLNAGstAudioInformationPrivate; + +struct _GUPnPDLNAGstAudioInformation { + GObject parent; +}; G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAGstAudioInformation, gupnp_dlna_gst_audio_information, @@ -46,7 +53,9 @@ enum static GstDiscovererAudioInfo * get_audio_info (GUPnPDLNAGstAudioInformation *gst_info) { - GUPnPDLNAGstAudioInformationPrivate *priv = gst_info->priv; + GUPnPDLNAGstAudioInformationPrivate *priv = + gupnp_dlna_gst_audio_information_get_instance_private ( + gst_info); if (!priv->audio_info) { GList *iter; @@ -103,8 +112,10 @@ get_audio_info (GUPnPDLNAGstAudioInformation *gst_info) static GstCaps * get_caps (GUPnPDLNAGstAudioInformation *gst_info) { - GUPnPDLNAGstAudioInformationPrivate *priv = gst_info->priv; GstDiscovererStreamInfo *info = GST_DISCOVERER_STREAM_INFO (get_audio_info (gst_info)); + GUPnPDLNAGstAudioInformationPrivate *priv = + gupnp_dlna_gst_audio_information_get_instance_private ( + gst_info); if (!priv->caps) priv->caps = gst_discoverer_stream_info_get_caps (info); @@ -119,9 +130,11 @@ get_int_value (GUPnPDLNAGstAudioInformation *gst_info, GstCaps *caps = get_caps (gst_info); GstDiscovererStreamInfo *stream = GST_DISCOVERER_STREAM_INFO (get_audio_info (gst_info)); - GstDiscovererInfo *info = gst_info->priv->info; + GUPnPDLNAGstAudioInformationPrivate *priv = + gupnp_dlna_gst_audio_information_get_instance_private ( + gst_info); - return gupnp_dlna_gst_get_int_value (caps, stream, info, name); + return gupnp_dlna_gst_get_int_value (caps, stream, priv->info, name); } static GUPnPDLNAStringValue @@ -131,9 +144,11 @@ get_string_value (GUPnPDLNAGstAudioInformation *gst_info, GstCaps *caps = get_caps (gst_info); GstDiscovererStreamInfo *stream = GST_DISCOVERER_STREAM_INFO (get_audio_info (gst_info)); - GstDiscovererInfo *info = gst_info->priv->info; + GUPnPDLNAGstAudioInformationPrivate *priv = + gupnp_dlna_gst_audio_information_get_instance_private ( + gst_info); - return gupnp_dlna_gst_get_string_value (caps, stream, info, name); + return gupnp_dlna_gst_get_string_value (caps, stream, priv->info, name); } static GUPnPDLNAIntValue @@ -282,7 +297,8 @@ gupnp_dlna_gst_audio_information_dispose (GObject *object) { GUPnPDLNAGstAudioInformation *info = GUPNP_DLNA_GST_AUDIO_INFORMATION (object); - GUPnPDLNAGstAudioInformationPrivate *priv = info->priv; + GUPnPDLNAGstAudioInformationPrivate *priv = + gupnp_dlna_gst_audio_information_get_instance_private (info); GObjectClass *parent_class = G_OBJECT_CLASS (gupnp_dlna_gst_audio_information_parent_class); @@ -303,7 +319,8 @@ gupnp_dlna_gst_audio_information_set_property (GObject *object, { GUPnPDLNAGstAudioInformation *info = GUPNP_DLNA_GST_AUDIO_INFORMATION (object); - GUPnPDLNAGstAudioInformationPrivate *priv = info->priv; + GUPnPDLNAGstAudioInformationPrivate *priv = + gupnp_dlna_gst_audio_information_get_instance_private (info); switch (property_id) { case PROP_INFO: @@ -327,7 +344,8 @@ gupnp_dlna_gst_audio_information_get_property (GObject *object, { GUPnPDLNAGstAudioInformation *info = GUPNP_DLNA_GST_AUDIO_INFORMATION (object); - GUPnPDLNAGstAudioInformationPrivate *priv = info->priv; + GUPnPDLNAGstAudioInformationPrivate *priv = + gupnp_dlna_gst_audio_information_get_instance_private (info); switch (property_id) { case PROP_INFO: @@ -382,14 +400,6 @@ gupnp_dlna_gst_audio_information_class_init static void gupnp_dlna_gst_audio_information_init (GUPnPDLNAGstAudioInformation *self) { - GUPnPDLNAGstAudioInformationPrivate *priv = - gupnp_dlna_gst_audio_information_get_instance_private (self); - - priv->info = NULL; - priv->stream_list = NULL; - priv->audio_info = NULL; - priv->caps = NULL; - self->priv = priv; } GUPnPDLNAGstAudioInformation * diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.h b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.h index 4e8f8e1..d092314 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.h +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.h @@ -28,44 +28,29 @@ G_BEGIN_DECLS +G_DECLARE_FINAL_TYPE (GUPnPDLNAGstAudioInformation, + gupnp_dlna_gst_audio_information, + GUPNP_DLNA, + GST_AUDIO_INFORMATION, + GUPnPDLNAAudioInformation) + #define GUPNP_TYPE_DLNA_GST_AUDIO_INFORMATION \ (gupnp_dlna_gst_audio_information_get_type()) -#define GUPNP_DLNA_GST_AUDIO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_GST_AUDIO_INFORMATION, \ - GUPnPDLNAGstAudioInformation)) - -#define GUPNP_DLNA_GST_AUDIO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_GST_AUDIO_INFORMATION, \ - GUPnPDLNAGstAudioInformationClass)) - -#define GUPNP_IS_DLNA_GST_AUDIO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_GST_AUDIO_INFORMATION)) - -#define GUPNP_IS_DLNA_GST_AUDIO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_GST_AUDIO_INFORMATION)) - -#define GUPNP_DLNA_GST_AUDIO_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_GST_AUDIO_INFORMATION, \ - GUPnPDLNAGstAudioInformationClass)) - -typedef struct _GUPnPDLNAGstAudioInformationPrivate - GUPnPDLNAGstAudioInformationPrivate; - -typedef struct { - GUPnPDLNAAudioInformation parent; - - GUPnPDLNAGstAudioInformationPrivate *priv; -} GUPnPDLNAGstAudioInformation; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_GST_AUDIO_INFORMATION: (skip) + */ +#define GUPNP_IS_DLNA_GST_AUDIO_INFORMATION GUPNP_DLNA_IS_GST_AUDIO_INFORMATION +/** + * GUPNP_IS_DLNA_GST_AUDIO_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_GST_AUDIO_INFORMATION_CLASS \ + GUPNP_DLNA_IS_GST_AUDIO_INFORMATION_CLASS -typedef struct { +struct _GUPnPDLNAGstAudioInformationClass { GUPnPDLNAAudioInformationClass parent_class; -} GUPnPDLNAGstAudioInformationClass; +}; GType gupnp_dlna_gst_audio_information_get_type (void); diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.c b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.c index 22faa26..f245836 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.c +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.c @@ -30,6 +30,12 @@ struct _GUPnPDLNAGstContainerInformationPrivate { GstDiscovererStreamInfo *container_info; GstCaps *caps; }; +typedef struct _GUPnPDLNAGstContainerInformationPrivate + GUPnPDLNAGstContainerInformationPrivate; + +struct _GUPnPDLNAGstContainerInformation{ + GUPnPDLNAContainerInformation parent; +}; G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAGstContainerInformation, gupnp_dlna_gst_container_information, @@ -45,7 +51,9 @@ enum static GstDiscovererStreamInfo * get_container_info (GUPnPDLNAGstContainerInformation *gst_info) { - GUPnPDLNAGstContainerInformationPrivate *priv = gst_info->priv; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + gst_info); if (!priv->container_info) { priv->container_info = @@ -58,7 +66,9 @@ get_container_info (GUPnPDLNAGstContainerInformation *gst_info) static GstCaps * get_caps (GUPnPDLNAGstContainerInformation *gst_info) { - GUPnPDLNAGstContainerInformationPrivate *priv = gst_info->priv; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + gst_info); if (!priv->caps) { priv->caps = gst_discoverer_stream_info_get_caps @@ -74,9 +84,11 @@ get_int_value (GUPnPDLNAGstContainerInformation *gst_info, { GstCaps *caps = get_caps (gst_info); GstDiscovererStreamInfo *stream = get_container_info (gst_info); - GstDiscovererInfo *info = gst_info->priv->info; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + gst_info); - return gupnp_dlna_gst_get_int_value (caps, stream, info, name); + return gupnp_dlna_gst_get_int_value (caps, stream, priv->info, name); } static GUPnPDLNAStringValue @@ -85,9 +97,11 @@ get_string_value (GUPnPDLNAGstContainerInformation *gst_info, { GstCaps *caps = get_caps (gst_info); GstDiscovererStreamInfo *stream = get_container_info (gst_info); - GstDiscovererInfo *info = gst_info->priv->info; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + gst_info); - return gupnp_dlna_gst_get_string_value (caps, stream, info, name); + return gupnp_dlna_gst_get_string_value (caps, stream, priv->info, name); } static GUPnPDLNABoolValue @@ -96,9 +110,11 @@ get_bool_value (GUPnPDLNAGstContainerInformation *gst_info, { GstCaps *caps = get_caps (gst_info); GstDiscovererStreamInfo *stream = get_container_info (gst_info); - GstDiscovererInfo *info = gst_info->priv->info; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + gst_info); - return gupnp_dlna_gst_get_bool_value (caps, stream, info, name); + return gupnp_dlna_gst_get_bool_value (caps, stream, priv->info, name); } static GUPnPDLNAIntValue @@ -160,7 +176,9 @@ gupnp_dlna_gst_container_information_dispose (GObject *object) { GUPnPDLNAGstContainerInformation *info = GUPNP_DLNA_GST_CONTAINER_INFORMATION (object); - GUPnPDLNAGstContainerInformationPrivate *priv = info->priv; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + info); GObjectClass *parent_class = G_OBJECT_CLASS (gupnp_dlna_gst_container_information_parent_class); @@ -179,7 +197,9 @@ gupnp_dlna_gst_container_information_set_property (GObject *object, { GUPnPDLNAGstContainerInformation *info = GUPNP_DLNA_GST_CONTAINER_INFORMATION (object); - GUPnPDLNAGstContainerInformationPrivate *priv = info->priv; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + info); switch (property_id) { case PROP_INFO: @@ -203,7 +223,9 @@ gupnp_dlna_gst_container_information_get_property (GObject *object, { GUPnPDLNAGstContainerInformation *info = GUPNP_DLNA_GST_CONTAINER_INFORMATION (object); - GUPnPDLNAGstContainerInformationPrivate *priv = info->priv; + GUPnPDLNAGstContainerInformationPrivate *priv = + gupnp_dlna_gst_container_information_get_instance_private ( + info); switch (property_id) { case PROP_INFO: @@ -253,8 +275,6 @@ static void gupnp_dlna_gst_container_information_init (GUPnPDLNAGstContainerInformation *self) { - self->priv = gupnp_dlna_gst_container_information_get_instance_private - (self); } GUPnPDLNAGstContainerInformation * diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.h b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.h index c480ca6..2f827bb 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.h +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.h @@ -28,45 +28,28 @@ G_BEGIN_DECLS +G_DECLARE_FINAL_TYPE (GUPnPDLNAGstContainerInformation, + gupnp_dlna_gst_container_information, + GUPNP_DLNA, + GST_CONTAINER_INFORMATION, + GUPnPDLNAContainerInformation) + #define GUPNP_TYPE_DLNA_GST_CONTAINER_INFORMATION \ (gupnp_dlna_gst_container_information_get_type()) +// Backwards-compatible defines +/** + * GUPNP_IS_GST_DLNA_CONTAINER_INFORMATION: (skip) + */ +#define GUPNP_IS_GST_DLNA_CONTAINER_INFORMATION GUPNP_DLNA_IS_GST_CONTAINER_INFORMATION +/** + * GUPNP_IS_GST_DLNA_CONTAINER_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_GST_DLNA_CONTAINER_INFORMATION_CLASS \ + GUPNP_DLNA_IS_GST_CONTAINER_INFORMATION_CLASS -#define GUPNP_DLNA_GST_CONTAINER_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST \ - ((obj), \ - GUPNP_TYPE_DLNA_GST_CONTAINER_INFORMATION, \ - GUPnPDLNAGstContainerInformation)) - -#define GUPNP_DLNA_GST_CONTAINER_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_GST_CONTAINER_INFORMATION, \ - GUPnPDLNAGstContainerInformationClass)) - -#define GUPNP_IS_DLNA_GST_CONTAINER_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_GST_CONTAINER_INFORMATION)) - -#define GUPNP_IS_DLNA_GST_CONTAINER_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_GST_CONTAINER_INFORMATION)) - -#define GUPNP_DLNA_GST_CONTAINER_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_GST_CONTAINER_INFORMATION, \ - GUPnPDLNAGstContainerInformationClass)) - -typedef struct _GUPnPDLNAGstContainerInformationPrivate - GUPnPDLNAGstContainerInformationPrivate; - -typedef struct { - GUPnPDLNAContainerInformation parent; - - GUPnPDLNAGstContainerInformationPrivate *priv; -} GUPnPDLNAGstContainerInformation; - -typedef struct { +struct _GUPnPDLNAGstContainerInformationClass { GUPnPDLNAContainerInformationClass parent_class; -} GUPnPDLNAGstContainerInformationClass; +}; GType gupnp_dlna_gst_container_information_get_type (void); diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.c b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.c index e594fff..733e7c1 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.c +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.c @@ -31,6 +31,12 @@ struct _GUPnPDLNAGstImageInformationPrivate { GstDiscovererVideoInfo *image_info; GstCaps *caps; }; +typedef struct _GUPnPDLNAGstImageInformationPrivate + GUPnPDLNAGstImageInformationPrivate; + +struct _GUPnPDLNAGstImageInformation { + GUPnPDLNAImageInformation parent; +}; G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAGstImageInformation, gupnp_dlna_gst_image_information, @@ -46,7 +52,9 @@ enum static GstDiscovererVideoInfo * get_image_info (GUPnPDLNAGstImageInformation *gst_info) { - GUPnPDLNAGstImageInformationPrivate *priv = gst_info->priv; + GUPnPDLNAGstImageInformationPrivate *priv = + gupnp_dlna_gst_image_information_get_instance_private ( + gst_info); if (!priv->image_info) { GList *iter; @@ -78,7 +86,9 @@ get_image_info (GUPnPDLNAGstImageInformation *gst_info) static GstCaps * get_caps (GUPnPDLNAGstImageInformation *gst_info) { - GUPnPDLNAGstImageInformationPrivate *priv = gst_info->priv; + GUPnPDLNAGstImageInformationPrivate *priv = + gupnp_dlna_gst_image_information_get_instance_private ( + gst_info); if (!priv->caps) priv->caps = gst_discoverer_stream_info_get_caps @@ -153,7 +163,8 @@ gupnp_dlna_gst_image_information_dispose (GObject *object) { GUPnPDLNAGstImageInformation *info = GUPNP_DLNA_GST_IMAGE_INFORMATION (object); - GUPnPDLNAGstImageInformationPrivate *priv = info->priv; + GUPnPDLNAGstImageInformationPrivate *priv = + gupnp_dlna_gst_image_information_get_instance_private (info); GObjectClass *parent_class = G_OBJECT_CLASS (gupnp_dlna_gst_image_information_parent_class); g_clear_pointer (&priv->info, gupnp_dlna_gst_discoverer_info_unref); @@ -173,7 +184,8 @@ gupnp_dlna_gst_image_information_set_property (GObject *object, { GUPnPDLNAGstImageInformation *info = GUPNP_DLNA_GST_IMAGE_INFORMATION (object); - GUPnPDLNAGstImageInformationPrivate *priv = info->priv; + GUPnPDLNAGstImageInformationPrivate *priv = + gupnp_dlna_gst_image_information_get_instance_private (info); switch (property_id) { case PROP_INFO: @@ -197,7 +209,8 @@ gupnp_dlna_gst_image_information_get_property (GObject *object, { GUPnPDLNAGstImageInformation *info = GUPNP_DLNA_GST_IMAGE_INFORMATION (object); - GUPnPDLNAGstImageInformationPrivate *priv = info->priv; + GUPnPDLNAGstImageInformationPrivate *priv = + gupnp_dlna_gst_image_information_get_instance_private (info); switch (property_id) { case PROP_INFO: @@ -244,7 +257,6 @@ gupnp_dlna_gst_image_information_class_init static void gupnp_dlna_gst_image_information_init (GUPnPDLNAGstImageInformation *self) { - self->priv = gupnp_dlna_gst_image_information_get_instance_private (self); } GUPnPDLNAGstImageInformation * diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.h b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.h index 457ea61..2d4caa9 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.h +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.h @@ -31,44 +31,26 @@ G_BEGIN_DECLS #define GUPNP_TYPE_DLNA_GST_IMAGE_INFORMATION \ (gupnp_dlna_gst_image_information_get_type()) -#define GUPNP_DLNA_GST_IMAGE_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_GST_IMAGE_INFORMATION, \ - GUPnPDLNAGstImageInformation)) - -#define GUPNP_DLNA_GST_IMAGE_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_GST_IMAGE_INFORMATION, \ - GUPnPDLNAGstImageInformationClass)) - -#define GUPNP_IS_DLNA_GST_IMAGE_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_GST_IMAGE_INFORMATION)) - -#define GUPNP_IS_DLNA_GST_IMAGE_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_GST_IMAGE_INFORMATION)) - -#define GUPNP_DLNA_GST_IMAGE_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_GST_IMAGE_INFORMATION, \ - GUPnPDLNAGstImageInformationClass)) - -typedef struct _GUPnPDLNAGstImageInformationPrivate - GUPnPDLNAGstImageInformationPrivate; - -typedef struct { - GUPnPDLNAImageInformation parent; +// Backwards-compatible defines +/** + * GUPNP_IS_GST_DLNA_IMAGE_INFORMATION: (skip) + */ +#define GUPNP_IS_GST_DLNA_IMAGE_INFORMATION GUPNP_DLNA_IS_IMAGE_INFORMATION +/** + * GUPNP_IS_GST_DLNA_IMAGE_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_GST_DLNA_IMAGE_INFORMATION_CLASS \ + GUPNP_DLNA_IS_IMAGE_INFORMATION_CLASS - GUPnPDLNAGstImageInformationPrivate *priv; -} GUPnPDLNAGstImageInformation; +G_DECLARE_FINAL_TYPE (GUPnPDLNAGstImageInformation, + gupnp_dlna_gst_image_information, + GUPNP_DLNA, + GST_IMAGE_INFORMATION, + GUPnPDLNAImageInformation) -typedef struct { +struct _GUPnPDLNAGstImageInformationClass { GUPnPDLNAImageInformationClass parent_class; -} GUPnPDLNAGstImageInformationClass; - -GType -gupnp_dlna_gst_image_information_get_type (void); +}; GUPnPDLNAGstImageInformation * gupnp_dlna_gst_image_information_new_from_discoverer_info diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.c b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.c index 08f1efa..205f8d0 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.c +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.c @@ -33,6 +33,12 @@ struct _GUPnPDLNAGstInformationPrivate { GstDiscovererInfo* info; }; +typedef struct _GUPnPDLNAGstInformationPrivate GUPnPDLNAGstInformationPrivate; + +struct _GUPnPDLNAGstInformation { + GUPnPDLNAInformation parent; +}; + G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAGstInformation, gupnp_dlna_gst_information, GUPNP_TYPE_DLNA_INFORMATION) @@ -47,7 +53,8 @@ static void gupnp_dlna_gst_information_dispose (GObject *object) { GUPnPDLNAGstInformation *info = GUPNP_DLNA_GST_INFORMATION (object); - GUPnPDLNAGstInformationPrivate *priv = info->priv; + GUPnPDLNAGstInformationPrivate *priv = + gupnp_dlna_gst_information_get_instance_private (info); g_clear_pointer (&priv->info, gupnp_dlna_gst_discoverer_info_unref); G_OBJECT_CLASS @@ -61,7 +68,8 @@ gupnp_dlna_gst_information_set_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAGstInformation *info = GUPNP_DLNA_GST_INFORMATION (object); - GUPnPDLNAGstInformationPrivate *priv = info->priv; + GUPnPDLNAGstInformationPrivate *priv = + gupnp_dlna_gst_information_get_instance_private (info); switch (property_id) { case PROP_INFO: @@ -86,7 +94,8 @@ gupnp_dlna_gst_information_get_property (GObject *object, GParamSpec *pspec) { GUPnPDLNAGstInformation *info = GUPNP_DLNA_GST_INFORMATION (object); - GUPnPDLNAGstInformationPrivate *priv = info->priv; + GUPnPDLNAGstInformationPrivate *priv = + gupnp_dlna_gst_information_get_instance_private (info); switch (property_id) { case PROP_INFO: @@ -104,47 +113,56 @@ gupnp_dlna_gst_information_get_property (GObject *object, GUPnPDLNAAudioInformation * backend_get_audio_information (GUPnPDLNAInformation *self) { - GUPnPDLNAGstInformation *gst_info = GUPNP_DLNA_GST_INFORMATION (self); - - if (gst_info == NULL) + if (!GUPNP_DLNA_IS_GST_INFORMATION (self)) return NULL; - return GUPNP_DLNA_AUDIO_INFORMATION - (gupnp_dlna_gst_audio_information_new_from_discoverer_info - (gst_info->priv->info)); + GUPnPDLNAGstInformation *info = GUPNP_DLNA_GST_INFORMATION (self); + + GUPnPDLNAGstInformationPrivate *priv = + gupnp_dlna_gst_information_get_instance_private (info); + + return GUPNP_DLNA_AUDIO_INFORMATION ( + gupnp_dlna_gst_audio_information_new_from_discoverer_info ( + priv->info)); } GUPnPDLNAContainerInformation * backend_get_container_information (GUPnPDLNAInformation *self) { - GUPnPDLNAGstInformation *gst_info = GUPNP_DLNA_GST_INFORMATION (self); - - if (gst_info == NULL) + if (!GUPNP_DLNA_IS_GST_INFORMATION (self)) return NULL; + GUPnPDLNAGstInformation *info = GUPNP_DLNA_GST_INFORMATION (self); + GUPnPDLNAGstInformationPrivate *priv = + gupnp_dlna_gst_information_get_instance_private (info); + return GUPNP_DLNA_CONTAINER_INFORMATION (gupnp_dlna_gst_container_information_new_from_discoverer_info - (gst_info->priv->info)); + (priv->info)); } GUPnPDLNAImageInformation * backend_get_image_information (GUPnPDLNAInformation *self) { - GUPnPDLNAGstInformation *gst_info = GUPNP_DLNA_GST_INFORMATION (self); + GUPnPDLNAGstInformation *info = GUPNP_DLNA_GST_INFORMATION (self); + GUPnPDLNAGstInformationPrivate *priv = + gupnp_dlna_gst_information_get_instance_private (info); - return GUPNP_DLNA_IMAGE_INFORMATION - (gupnp_dlna_gst_image_information_new_from_discoverer_info - (gst_info->priv->info)); + return GUPNP_DLNA_IMAGE_INFORMATION ( + gupnp_dlna_gst_image_information_new_from_discoverer_info ( + priv->info)); } GUPnPDLNAVideoInformation * backend_get_video_information (GUPnPDLNAInformation *self) { - GUPnPDLNAGstInformation *gst_info = GUPNP_DLNA_GST_INFORMATION (self); + GUPnPDLNAGstInformation *info = GUPNP_DLNA_GST_INFORMATION (self); + GUPnPDLNAGstInformationPrivate *priv = + gupnp_dlna_gst_information_get_instance_private (info); - return GUPNP_DLNA_VIDEO_INFORMATION - (gupnp_dlna_gst_video_information_new_from_discoverer_info - (gst_info->priv->info)); + return GUPNP_DLNA_VIDEO_INFORMATION ( + gupnp_dlna_gst_video_information_new_from_discoverer_info ( + priv->info)); } static void @@ -179,7 +197,6 @@ gupnp_dlna_gst_information_class_init static void gupnp_dlna_gst_information_init (GUPnPDLNAGstInformation *self) { - self->priv = gupnp_dlna_gst_information_get_instance_private (self); } GUPnPDLNAGstInformation * diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.h b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.h index fb17b44..c051257 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.h +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.h @@ -30,45 +30,26 @@ G_BEGIN_DECLS +G_DECLARE_FINAL_TYPE (GUPnPDLNAGstInformation, + gupnp_dlna_gst_information, + GUPNP_DLNA, + GST_INFORMATION, + GUPnPDLNAInformation) #define GUPNP_TYPE_DLNA_GST_INFORMATION (gupnp_dlna_gst_information_get_type()) -#define GUPNP_DLNA_GST_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_GST_INFORMATION, \ - GUPnPDLNAGstInformation)) - -#define GUPNP_DLNA_GST_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_GST_INFORMATION, \ - GUPnPDLNAGstInformationClass)) - -#define GUPNP_IS_DLNA_GST_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_GST_INFORMATION)) - -#define GUPNP_IS_DLNA_GST_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_GST_INFORMATION)) - -#define GUPNP_DLNA_GST_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_GST_INFORMATION, \ - GUPnPDLNAGstInformationClass)) - -typedef struct _GUPnPDLNAGstInformationPrivate GUPnPDLNAGstInformationPrivate; - -typedef struct { - GUPnPDLNAInformation parent; - - GUPnPDLNAGstInformationPrivate *priv; -} GUPnPDLNAGstInformation; +// Backwards-compatible defines +/** + * GUPNP_IS_GST_DLNA_INFORMATION: (skip) + */ +#define GUPNP_IS_GST_DLNA_INFORMATION GUPNP_DLNA_IS_GST_IMAGE_INFORMATION +/** + * GUPNP_IS_GST_DLNA_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_GST_DLNA_INFORMATION_CLASS GUPNP_DLNA_IS_GST_IMAGE_INFORMATION_CLASS -typedef struct { +struct _GUPnPDLNAGstInformationClass { GUPnPDLNAInformationClass parent_class; -} GUPnPDLNAGstInformationClass; - -GType -gupnp_dlna_gst_information_get_type (void); +}; GUPnPDLNAGstInformation * gupnp_dlna_gst_information_new_from_discoverer_info (const gchar *uri, diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.c b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.c index 702d634..9c4d4f9 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.c +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.c @@ -26,19 +26,37 @@ #include "gupnp-dlna-gst-information.h" #include "gupnp-dlna-gst-utils.h" -struct _GUPnPDLNAGstMetadataExtractorPrivate { - gpointer placeholder; +typedef struct _GUPnPDLNAGstMetadataExtractorPrivate + GUPnPDLNAGstMetadataExtractorPrivate; + +/** + * GUPnPDLNAGstMetadataExtractor: + * + * The top-level object used to for metadata extraction. + */ +struct _GUPnPDLNAGstMetadataExtractor { + GUPnPDLNAMetadataExtractor parent; + + GUPnPDLNAGstMetadataExtractorPrivate *priv; }; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_GST_METADATA_BACKEND: (skip) + */ +#define GUPNP_IS_GST_DLNA_METADATA_BACKEND GUPNP_DLNA_IS_GST_METADATA_BACKEND +/** + * GUPNP_IS_GST_DLNA_METADATA_BACKEND_CLASS: (skip) + */ +#define GUPNP_IS_GST_DLNA_METADATA_BACKEND_CLASS GUPNP_DLNA_IS_GST_METADATA_BACKEND_CLASS -G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAGstMetadataExtractor, - gupnp_dlna_gst_metadata_extractor, - GUPNP_TYPE_DLNA_METADATA_EXTRACTOR) +G_DEFINE_TYPE (GUPnPDLNAGstMetadataExtractor, + gupnp_dlna_gst_metadata_extractor, + GUPNP_TYPE_DLNA_METADATA_EXTRACTOR) static gboolean unref_discoverer_in_idle (GstDiscoverer *discoverer) { - if (discoverer) - g_object_unref (discoverer); + g_clear_object (&discoverer); return FALSE; } @@ -142,7 +160,6 @@ gupnp_dlna_gst_metadata_extractor_class_init static void gupnp_dlna_gst_metadata_extractor_init (GUPnPDLNAGstMetadataExtractor *self) { - self->priv = gupnp_dlna_gst_metadata_extractor_get_instance_private (self); } GUPnPDLNAGstMetadataExtractor * diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.h b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.h index f1bd6ca..dcef839 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.h +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.h @@ -33,49 +33,16 @@ G_BEGIN_DECLS #define GUPNP_TYPE_DLNA_GST_METADATA_EXTRACTOR \ (gupnp_dlna_gst_metadata_extractor_get_type()) -#define GUPNP_DLNA_GST_METADATA_EXTRACTOR(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_GST_METADATA_EXTRACTOR, \ - GUPnPDLNAGstMetadataExtractor)) +G_DECLARE_FINAL_TYPE (GUPnPDLNAGstMetadataExtractor, + gupnp_dlna_gst_metadata_extractor, + GUPNP_DLNA, + GST_METADATA_EXTRACTOR, + GUPnPDLNAMetadataExtractor) -#define GUPNP_DLNA_GST_METADATA_EXTRACTOR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_GST_METADATA_EXTRACTOR, \ - GUPnPDLNAGstMetadataExtractorClass)) -#define GUPNP_IS_DLNA_GST_METADATA_EXTRACTOR(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_GST_METADATA_EXTRACTOR)) - -#define GUPNP_IS_DLNA_GST_METADATA_EXTRACTOR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_GST_METADATA_EXTRACTOR)) - -#define GUPNP_DLNA_GST_METADATA_EXTRACTOR_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_GST_METADATA_EXTRACTOR, \ - GUPnPDLNAGstMetadataExtractorClass)) - -typedef struct _GUPnPDLNAGstMetadataExtractorPrivate - GUPnPDLNAGstMetadataExtractorPrivate; - -/** - * GUPnPDLNAGstMetadataExtractor: - * - * The top-level object used to for metadata extraction. - */ -typedef struct { - GUPnPDLNAMetadataExtractor parent; - - GUPnPDLNAGstMetadataExtractorPrivate *priv; -} GUPnPDLNAGstMetadataExtractor; - -typedef struct { +struct _GUPnPDLNAGstMetadataExtractorClass { GUPnPDLNAMetadataExtractorClass parent_class; -} GUPnPDLNAGstMetadataExtractorClass; - -GType -gupnp_dlna_gst_metadata_extractor_get_type (void); +}; GUPnPDLNAGstMetadataExtractor * gupnp_dlna_gst_metadata_extractor_new (void); diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.c b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.c index aee6a36..f35c1e1 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.c +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.c @@ -32,6 +32,14 @@ struct _GUPnPDLNAGstVideoInformationPrivate { GstCaps *caps; }; +typedef struct _GUPnPDLNAGstVideoInformationPrivate GUPnPDLNAGstVideoInformationPrivate; + +struct _GUPnPDLNAGstVideoInformation { + GUPnPDLNAVideoInformation parent; + + GUPnPDLNAGstVideoInformationPrivate *priv; +}; + G_DEFINE_TYPE_WITH_PRIVATE (GUPnPDLNAGstVideoInformation, gupnp_dlna_gst_video_information, GUPNP_TYPE_DLNA_VIDEO_INFORMATION) diff --git a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.h b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.h index 93ebbce..ecb2b9b 100644 --- a/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.h +++ b/libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.h @@ -30,40 +30,25 @@ G_BEGIN_DECLS #define GUPNP_TYPE_DLNA_GST_VIDEO_INFORMATION gupnp_dlna_gst_video_information_get_type() -#define GUPNP_DLNA_GST_VIDEO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_GST_VIDEO_INFORMATION, \ - GUPnPDLNAGstVideoInformation)) - -#define GUPNP_DLNA_GST_VIDEO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_GST_VIDEO_INFORMATION, \ - GUPnPDLNAGstVideoInformationClass)) - -#define GUPNP_IS_DLNA_GST_VIDEO_INFORMATION(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GUPNP_TYPE_DLNA_GST_VIDEO_INFORMATION)) - -#define GUPNP_IS_DLNA_GST_VIDEO_INFORMATION_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GUPNP_TYPE_DLNA_GST_VIDEO_INFORMATION)) - -#define GUPNP_DLNA_GST_VIDEO_INFORMATION_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_GST_VIDEO_INFORMATION, \ - GUPnPDLNAGstVideoInformationClass)) - -typedef struct _GUPnPDLNAGstVideoInformationPrivate GUPnPDLNAGstVideoInformationPrivate; - -typedef struct { - GUPnPDLNAVideoInformation parent; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_VIDEO_INFORMATION: (skip) + */ +#define GUPNP_IS_DLNA_GST_VIDEO_INFORMATION GUPNP_DLNA_IS_GST_VIDEO_INFORMATION +/** + * GUPNP_IS_DLNA_VIDEO_INFORMATION_CLASS: (skip) + */ +#define GUPNP_IS_DLNA_GST_VIDEO_INFORMATION_CLASS GUPNP_DLNA_IS_GST_VIDEO_INFORMATION_CLASS - GUPnPDLNAGstVideoInformationPrivate *priv; -} GUPnPDLNAGstVideoInformation; +G_DECLARE_FINAL_TYPE (GUPnPDLNAGstVideoInformation, + gupnp_dlna_gst_video_information, + GUPNP_DLNA, + GST_VIDEO_INFORMATION, + GUPnPDLNAVideoInformation) -typedef struct { +struct _GUPnPDLNAGstVideoInformationClass { GUPnPDLNAVideoInformationClass parent_class; -} GUPnPDLNAGstVideoInformationClass; - -GType gupnp_dlna_gst_video_information_get_type (void); +}; GUPnPDLNAGstVideoInformation * gupnp_dlna_gst_video_information_new_from_discoverer_info (GstDiscovererInfo *info); diff --git a/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c b/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c index 766a739..d78c75d 100644 --- a/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c +++ b/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c @@ -69,6 +69,9 @@ struct _GUPnPDLNAMetadataExtractorPrivate { gpointer placeholder; }; +typedef struct _GUPnPDLNAMetadataExtractorPrivate + GUPnPDLNAMetadataExtractorPrivate; + G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GUPnPDLNAMetadataExtractor, gupnp_dlna_metadata_extractor, G_TYPE_OBJECT) @@ -107,10 +110,6 @@ gupnp_dlna_metadata_extractor_class_init static void gupnp_dlna_metadata_extractor_init (GUPnPDLNAMetadataExtractor *self) { - GUPnPDLNAMetadataExtractorPrivate *priv = - gupnp_dlna_metadata_extractor_get_instance_private (self); - - self->priv = priv; } /** @@ -134,13 +133,13 @@ gupnp_dlna_metadata_extractor_extract_async { GUPnPDLNAMetadataExtractorClass *extractor_class; - g_return_val_if_fail (GUPNP_IS_DLNA_METADATA_EXTRACTOR (extractor), + g_return_val_if_fail (GUPNP_DLNA_IS_METADATA_EXTRACTOR (extractor), FALSE); g_return_val_if_fail (uri != NULL, FALSE); extractor_class = GUPNP_DLNA_METADATA_EXTRACTOR_GET_CLASS (extractor); - g_return_val_if_fail (GUPNP_IS_DLNA_METADATA_EXTRACTOR_CLASS + g_return_val_if_fail (GUPNP_DLNA_IS_METADATA_EXTRACTOR_CLASS (extractor_class), FALSE); g_return_val_if_fail (extractor_class->extract_async != NULL, FALSE); @@ -172,13 +171,13 @@ gupnp_dlna_metadata_extractor_extract_sync { GUPnPDLNAMetadataExtractorClass *extractor_class; - g_return_val_if_fail (GUPNP_IS_DLNA_METADATA_EXTRACTOR (extractor), + g_return_val_if_fail (GUPNP_DLNA_IS_METADATA_EXTRACTOR (extractor), NULL); g_return_val_if_fail (uri != NULL, NULL); extractor_class = GUPNP_DLNA_METADATA_EXTRACTOR_GET_CLASS (extractor); - g_return_val_if_fail (GUPNP_IS_DLNA_METADATA_EXTRACTOR_CLASS + g_return_val_if_fail (GUPNP_DLNA_IS_METADATA_EXTRACTOR_CLASS (extractor_class), NULL); g_return_val_if_fail (extractor_class->extract_async != NULL, NULL); @@ -206,8 +205,8 @@ gupnp_dlna_metadata_extractor_emit_done (GUPnPDLNAMetadataExtractor *extractor, GUPnPDLNAInformation *info, GError *error) { - g_return_if_fail (GUPNP_IS_DLNA_METADATA_EXTRACTOR (extractor)); - g_return_if_fail (GUPNP_IS_DLNA_INFORMATION (info)); + g_return_if_fail (GUPNP_DLNA_IS_METADATA_EXTRACTOR (extractor)); + g_return_if_fail (GUPNP_DLNA_IS_INFORMATION (info)); g_signal_emit (extractor, signals[DONE], 0, info, error); } diff --git a/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.h b/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.h index 610d28d..79f294f 100644 --- a/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.h +++ b/libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.h @@ -29,45 +29,26 @@ G_BEGIN_DECLS +G_DECLARE_DERIVABLE_TYPE (GUPnPDLNAMetadataExtractor, + gupnp_dlna_metadata_extractor, + GUPNP_DLNA, + METADATA_EXTRACTOR, + GObject) + #define GUPNP_TYPE_DLNA_METADATA_EXTRACTOR \ (gupnp_dlna_metadata_extractor_get_type()) -#define GUPNP_DLNA_METADATA_EXTRACTOR(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ - GUPNP_TYPE_DLNA_METADATA_EXTRACTOR, \ - GUPnPDLNAMetadataExtractor)) - -#define GUPNP_DLNA_METADATA_EXTRACTOR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), \ - GUPNP_TYPE_DLNA_METADATA_EXTRACTOR, \ - GUPnPDLNAMetadataExtractorClass)) - -#define GUPNP_IS_DLNA_METADATA_EXTRACTOR(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \ - GUPNP_TYPE_DLNA_METADATA_EXTRACTOR)) - -#define GUPNP_IS_DLNA_METADATA_EXTRACTOR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), \ - GUPNP_TYPE_DLNA_METADATA_EXTRACTOR)) - -#define GUPNP_DLNA_METADATA_EXTRACTOR_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), \ - GUPNP_TYPE_DLNA_METADATA_EXTRACTOR, \ - GUPnPDLNAMetadataExtractorClass)) - -typedef struct _GUPnPDLNAMetadataExtractorPrivate - GUPnPDLNAMetadataExtractorPrivate; +// Backwards-compatible defines +/** + * GUPNP_IS_DLNA_METADATA_EXTRACTOR: (skip) + */ +#define GUPNP_IS_DLNA_METADATA_EXTRACTOR GUPNP_DLNA_IS_METADATA_EXTRACTOR /** - * GUPnPDLNAMetadataExtractor: - * - * The top-level object used to for metadata extraction. + * GUPNP_IS_DLNA_METADATA_EXTRACTOR_CLASS: (skip) */ -typedef struct { - GObject parent; +#define GUPNP_IS_DLNA_METADATA_EXTRACTOR_CLASS GUPNP_DLNA_IS_METADATA_EXTRACTOR_CLASS - GUPnPDLNAMetadataExtractorPrivate *priv; -} GUPnPDLNAMetadataExtractor; /** * GUPnPDLNAMetadataExtractorClass: @@ -78,7 +59,7 @@ typedef struct { * information about media file synchronously. * @_reserved: Padding. Ignore it. */ -typedef struct { +struct _GUPnPDLNAMetadataExtractorClass { GObjectClass parent_class; /* virtuals */ @@ -95,10 +76,7 @@ typedef struct { GError **error); gpointer _reserved[12]; -} GUPnPDLNAMetadataExtractorClass; - -GType -gupnp_dlna_metadata_extractor_get_type (void); +}; gboolean gupnp_dlna_metadata_extractor_extract_async diff --git a/meson.build b/meson.build index 1d2f3b1..afbca02 100644 --- a/meson.build +++ b/meson.build @@ -9,7 +9,7 @@ gnome = import('gnome') shareddir = join_paths(get_option('prefix'), get_option('datadir'), 'gupnp-dlna-2.0') metadata_backend_dir = join_paths(get_option('prefix'), get_option('libdir'), 'gupnp-dlna') -library_version = '3.0.0' +library_version = '4.0.0' config = configuration_data() config.set_quoted('GUPNP_DLNA_DEFAULT_METADATA_BACKEND', get_option('default_backend')) -- cgit v1.2.1