summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <jensg@openismus.com>2021-07-04 08:28:17 +0200
committerJens Georg <jensg@openismus.com>2021-07-04 08:28:35 +0200
commit1b7be3c70417467c424d024dd569d07d441b5362 (patch)
treefb2948d2db59a88f37634f6814e6d79ef3443f25
parentf68377bf7d8464bf32bbac6f30a44d1ddbcde4f0 (diff)
downloadgupnp-dlna-1b7be3c70417467c424d024dd569d07d441b5362.tar.gz
All: Use new GObject type macros
Bump ABI version since I canont guarantee ABI compatibility
-rw-r--r--configure.ac2
-rw-r--r--libgupnp-dlna/gupnp-dlna-audio-information.c54
-rw-r--r--libgupnp-dlna/gupnp-dlna-audio-information.h55
-rw-r--r--libgupnp-dlna/gupnp-dlna-container-information.c30
-rw-r--r--libgupnp-dlna/gupnp-dlna-container-information.h53
-rw-r--r--libgupnp-dlna/gupnp-dlna-image-information.c22
-rw-r--r--libgupnp-dlna/gupnp-dlna-image-information.h54
-rw-r--r--libgupnp-dlna/gupnp-dlna-info-value.c3
-rw-r--r--libgupnp-dlna/gupnp-dlna-information.c70
-rw-r--r--libgupnp-dlna/gupnp-dlna-information.h52
-rw-r--r--libgupnp-dlna/gupnp-dlna-profile-guesser.c46
-rw-r--r--libgupnp-dlna/gupnp-dlna-profile-guesser.h51
-rw-r--r--libgupnp-dlna/gupnp-dlna-profile-loader.c94
-rw-r--r--libgupnp-dlna/gupnp-dlna-profile-loader.h50
-rw-r--r--libgupnp-dlna/gupnp-dlna-profile.c70
-rw-r--r--libgupnp-dlna/gupnp-dlna-profile.h54
-rw-r--r--libgupnp-dlna/gupnp-dlna-video-information.c51
-rw-r--r--libgupnp-dlna/gupnp-dlna-video-information.h54
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.c44
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-audio-information.h51
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.c46
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-container-information.h53
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.c24
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-image-information.h52
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.c61
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-information.h51
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.c33
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-metadata-extractor.h47
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.c8
-rw-r--r--libgupnp-dlna/metadata-backends/gstreamer/gupnp-dlna-gst-video-information.h47
-rw-r--r--libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.c19
-rw-r--r--libgupnp-dlna/metadata/gupnp-dlna-metadata-extractor.h52
-rw-r--r--meson.build2
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'))