88e6736a6581ba9d9344b2e0ef56655df0f3d02e
[profile/ivi/GUPnP-DLNA.git] / libgupnp-dlna / gupnp-dlna-information.h
1 /*
2  * Copyright (C) 2012 Intel Corporation.
3  *
4  * Authors: Krzesimir Nowak <krnowak@openismus.com>
5  *
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.
10  *
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.
15  *
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.
20  */
21
22 #ifndef __GUPNP_DLNA_INFORMATION_H__
23 #define __GUPNP_DLNA_INFORMATION_H__
24
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>
30
31 G_BEGIN_DECLS
32
33 #define GUPNP_TYPE_DLNA_INFORMATION (gupnp_dlna_information_get_type())
34
35 #define GUPNP_DLNA_INFORMATION(obj) \
36         (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
37                                      GUPNP_TYPE_DLNA_INFORMATION, \
38                                      GUPnPDLNAInformation))
39
40 #define GUPNP_DLNA_INFORMATION_CLASS(klass) \
41         (G_TYPE_CHECK_CLASS_CAST ((klass), \
42                                   GUPNP_TYPE_DLNA_INFORMATION, \
43                                   GUPnPDLNAInformationClass))
44
45 #define GUPNP_IS_DLNA_INFORMATION(obj) \
46         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
47                                      GUPNP_TYPE_DLNA_INFORMATION))
48
49 #define GUPNP_IS_DLNA_INFORMATION_CLASS(klass) \
50         (G_TYPE_CHECK_CLASS_TYPE ((klass), \
51                                   GUPNP_TYPE_DLNA_INFORMATION))
52
53 #define GUPNP_DLNA_INFORMATION_GET_CLASS(obj) \
54         (G_TYPE_INSTANCE_GET_CLASS ((obj), \
55                                     GUPNP_TYPE_DLNA_INFORMATION, \
56                                     GUPnPDLNAInformationClass))
57
58 typedef struct _GUPnPDLNAInformationPrivate GUPnPDLNAInformationPrivate;
59
60 typedef struct {
61         GObject parent;
62
63         GUPnPDLNAInformationPrivate *priv;
64 } GUPnPDLNAInformation;
65
66 /**
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.
78  */
79 typedef struct {
80         GObjectClass parent_class;
81
82         GUPnPDLNAAudioInformation *
83         (* get_audio_information) (GUPnPDLNAInformation *info);
84
85         GUPnPDLNAContainerInformation *
86         (* get_container_information) (GUPnPDLNAInformation *info);
87
88         GUPnPDLNAImageInformation *
89         (* get_image_information) (GUPnPDLNAInformation *info);
90
91         GUPnPDLNAVideoInformation *
92         (* get_video_information) (GUPnPDLNAInformation *info);
93
94         gpointer _reserved[12];
95 } GUPnPDLNAInformationClass;
96
97 GType
98 gupnp_dlna_information_get_type (void);
99
100 GUPnPDLNAAudioInformation*
101 gupnp_dlna_information_get_audio_information (GUPnPDLNAInformation *info);
102
103 GUPnPDLNAContainerInformation*
104 gupnp_dlna_information_get_container_information (GUPnPDLNAInformation *info);
105
106 GUPnPDLNAImageInformation*
107 gupnp_dlna_information_get_image_information (GUPnPDLNAInformation *info);
108
109 GUPnPDLNAVideoInformation*
110 gupnp_dlna_information_get_video_information (GUPnPDLNAInformation *info);
111
112 const gchar *
113 gupnp_dlna_information_get_uri (GUPnPDLNAInformation *info);
114
115 G_END_DECLS
116
117 #endif /* __GUPNP_DLNA_INFORMATION_H__ */