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_CONTAINER_INFORMATION_H__
23 #define __GUPNP_DLNA_CONTAINER_INFORMATION_H__
24 
25 #include <glib-object.h>
26 #include <libgupnp-dlna/gupnp-dlna-values.h>
27 
28 G_BEGIN_DECLS
29 
30 #define GUPNP_TYPE_DLNA_CONTAINER_INFORMATION \
31         (gupnp_dlna_container_information_get_type())
32 
33 #define GUPNP_DLNA_CONTAINER_INFORMATION(obj) \
34         (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
35                                      GUPNP_TYPE_DLNA_CONTAINER_INFORMATION, \
36                                      GUPnPDLNAContainerInformation))
37 
38 #define GUPNP_DLNA_CONTAINER_INFORMATION_CLASS(klass) \
39         (G_TYPE_CHECK_CLASS_CAST ((klass), \
40                                   GUPNP_TYPE_DLNA_CONTAINER_INFORMATION, \
41                                   GUPnPDLNAContainerInformationClass))
42 
43 #define GUPNP_IS_DLNA_CONTAINER_INFORMATION(obj) \
44         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
45                                      GUPNP_TYPE_DLNA_CONTAINER_INFORMATION))
46 
47 #define GUPNP_IS_DLNA_CONTAINER_INFORMATION_CLASS(klass) \
48         (G_TYPE_CHECK_CLASS_TYPE ((klass), \
49                                   GUPNP_TYPE_DLNA_CONTAINER_INFORMATION))
50 
51 #define GUPNP_DLNA_CONTAINER_INFORMATION_GET_CLASS(obj) \
52         (G_TYPE_INSTANCE_GET_CLASS ((obj), \
53                                     GUPNP_TYPE_DLNA_CONTAINER_INFORMATION, \
54                                     GUPnPDLNAContainerInformationClass))
55 
56 typedef struct _GUPnPDLNAContainerInformationPrivate
57                 GUPnPDLNAContainerInformationPrivate;
58 
59 typedef struct {
60         GObject parent;
61 
62         GUPnPDLNAContainerInformationPrivate *priv;
63 } GUPnPDLNAContainerInformation;
64 
65 /**
66  * GUPnPDLNAContainerInformationClass:
67  * @parent_class: Parent class.
68  * @get_mpeg_version: This is called by #GUPnPDLNAProfileGuesser to
69  * get an MPEG version.
70  * @get_packet_size: This is called by #GUPnPDLNAProfileGuesser to get
71  * a packet size.
72  * @get_profile: This is called by #GUPnPDLNAProfileGuesser to get a
73  * profile.
74  * @is_system_stream: This is called by #GUPnPDLNAProfileGuesser to
75  * get whether it is a system stream
76  * @get_variant: This is called by #GUPnPDLNAProfileGuesser to get a
77  * variant.
78  * @get_mime: This is called by #GUPnPDLNAProfileGuesser to get a MIME
79  * type.
80  * @_reserved: Padding. Ignore it.
81  */
82 typedef struct {
83         GObjectClass parent_class;
84 
85         GUPnPDLNAIntValue
86         (* get_mpeg_version) (GUPnPDLNAContainerInformation *info);
87 
88         GUPnPDLNAIntValue
89         (* get_packet_size) (GUPnPDLNAContainerInformation *info);
90 
91         GUPnPDLNAStringValue
92         (* get_profile) (GUPnPDLNAContainerInformation *info);
93 
94         GUPnPDLNABoolValue
95         (* is_system_stream) (GUPnPDLNAContainerInformation *info);
96 
97         GUPnPDLNAStringValue
98         (* get_variant) (GUPnPDLNAContainerInformation *info);
99 
100         GUPnPDLNAStringValue
101         (* get_mime) (GUPnPDLNAContainerInformation *info);
102 
103         gpointer _reserved[12];
104 } GUPnPDLNAContainerInformationClass;
105 
106 GType
107 gupnp_dlna_container_information_get_type (void);
108 
109 GUPnPDLNAIntValue
110 gupnp_dlna_container_information_get_mpeg_version
111                                         (GUPnPDLNAContainerInformation *info);
112 
113 GUPnPDLNAIntValue
114 gupnp_dlna_container_information_get_packet_size
115                                         (GUPnPDLNAContainerInformation *info);
116 
117 GUPnPDLNAStringValue
118 gupnp_dlna_container_information_get_profile
119                                         (GUPnPDLNAContainerInformation *info);
120 
121 GUPnPDLNABoolValue
122 gupnp_dlna_container_information_is_system_stream
123                                         (GUPnPDLNAContainerInformation *info);
124 
125 GUPnPDLNAStringValue
126 gupnp_dlna_container_information_get_variant
127                                         (GUPnPDLNAContainerInformation *info);
128 
129 GUPnPDLNAStringValue
130 gupnp_dlna_container_information_get_mime (GUPnPDLNAContainerInformation *info);
131 
132 G_END_DECLS
133 
134 #endif /* __GUPNP_DLNA_CONTAINER_INFORMATION_H__ */
135