2 * Copyright (C) 2012 Intel Corporation.
4 * Authors: Krzesimir Nowak <krnowak@openismus.com>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the
18 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19 * Boston, MA 02110-1301, USA.
22 #ifndef __GUPNP_DLNA_INFORMATION_H__
23 #define __GUPNP_DLNA_INFORMATION_H__
25 #include <glib-object.h>
26 #include <libgupnp-dlna/gupnp-dlna-audio-information.h>
27 #include <libgupnp-dlna/gupnp-dlna-container-information.h>
28 #include <libgupnp-dlna/gupnp-dlna-image-information.h>
29 #include <libgupnp-dlna/gupnp-dlna-video-information.h>
33 #define GUPNP_TYPE_DLNA_INFORMATION (gupnp_dlna_information_get_type())
35 #define GUPNP_DLNA_INFORMATION(obj) \
36 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
37 GUPNP_TYPE_DLNA_INFORMATION, \
38 GUPnPDLNAInformation))
40 #define GUPNP_DLNA_INFORMATION_CLASS(klass) \
41 (G_TYPE_CHECK_CLASS_CAST ((klass), \
42 GUPNP_TYPE_DLNA_INFORMATION, \
43 GUPnPDLNAInformationClass))
45 #define GUPNP_IS_DLNA_INFORMATION(obj) \
46 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
47 GUPNP_TYPE_DLNA_INFORMATION))
49 #define GUPNP_IS_DLNA_INFORMATION_CLASS(klass) \
50 (G_TYPE_CHECK_CLASS_TYPE ((klass), \
51 GUPNP_TYPE_DLNA_INFORMATION))
53 #define GUPNP_DLNA_INFORMATION_GET_CLASS(obj) \
54 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
55 GUPNP_TYPE_DLNA_INFORMATION, \
56 GUPnPDLNAInformationClass))
58 typedef struct _GUPnPDLNAInformationPrivate GUPnPDLNAInformationPrivate;
63 GUPnPDLNAInformationPrivate *priv;
64 } GUPnPDLNAInformation;
67 * GUPnPDLNAInformationClass:
68 * @parent_class: Parent class.
69 * @get_audio_information: This is called by #GUPnPDLNAProfileGuesser
70 * to get an audio information.
71 * @get_container_information: This is called by
72 * #GUPnPDLNAProfileGuesser to get a container information.
73 * @get_image_information: This is called by #GUPnPDLNAProfileGuesser
74 * to get an image information.
75 * @get_video_information: This is called by #GUPnPDLNAProfileGuesser
76 * to get a video information.
77 * @_reserved: Padding. Ignore it.
80 GObjectClass parent_class;
82 GUPnPDLNAAudioInformation *
83 (* get_audio_information) (GUPnPDLNAInformation *info);
85 GUPnPDLNAContainerInformation *
86 (* get_container_information) (GUPnPDLNAInformation *info);
88 GUPnPDLNAImageInformation *
89 (* get_image_information) (GUPnPDLNAInformation *info);
91 GUPnPDLNAVideoInformation *
92 (* get_video_information) (GUPnPDLNAInformation *info);
94 gpointer _reserved[12];
95 } GUPnPDLNAInformationClass;
98 gupnp_dlna_information_get_type (void);
100 GUPnPDLNAAudioInformation*
101 gupnp_dlna_information_get_audio_information (GUPnPDLNAInformation *info);
103 GUPnPDLNAContainerInformation*
104 gupnp_dlna_information_get_container_information (GUPnPDLNAInformation *info);
106 GUPnPDLNAImageInformation*
107 gupnp_dlna_information_get_image_information (GUPnPDLNAInformation *info);
109 GUPnPDLNAVideoInformation*
110 gupnp_dlna_information_get_video_information (GUPnPDLNAInformation *info);
113 gupnp_dlna_information_get_uri (GUPnPDLNAInformation *info);
117 #endif /* __GUPNP_DLNA_INFORMATION_H__ */