Initial submission of GUPnP-AV to Tizen IVI
[profile/ivi/GUPnP-AV.git] / libgupnp-av / gupnp-protocol-info.h
1 /*
2  * Copyright (C) 2009 Nokia Corporation.
3  * Copyright (C) 2007, 2008 OpenedHand Ltd.
4  *
5  * Authors: Zeeshan Ali (Khattak) <zeeshan.ali@nokia.com>
6  *                                <zeeshanak@gnome.org>
7  *          Jorn Baayen <jorn@openedhand.com>
8  *
9  * This library is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU Library General Public
11  * License as published by the Free Software Foundation; either
12  * version 2 of the License, or (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17  * Library General Public License for more details.
18  *
19  * You should have received a copy of the GNU Library General Public
20  * License along with this library; if not, write to the
21  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22  * Boston, MA 02110-1301, USA.
23  */
24
25 #ifndef __GUPNP_PROTOCOL_INFO_H__
26 #define __GUPNP_PROTOCOL_INFO_H__
27
28 #include <stdarg.h>
29 #include <glib-object.h>
30
31 #include "gupnp-dlna.h"
32
33 G_BEGIN_DECLS
34
35 GType
36 gupnp_protocol_info_get_type (void) G_GNUC_CONST;
37
38 #define GUPNP_TYPE_PROTOCOL_INFO \
39                 (gupnp_protocol_info_get_type ())
40 #define GUPNP_PROTOCOL_INFO(obj) \
41                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
42                  GUPNP_TYPE_PROTOCOL_INFO, \
43                  GUPnPProtocolInfo))
44 #define GUPNP_PROTOCOL_INFO_CLASS(obj) \
45                 (G_TYPE_CHECK_CLASS_CAST ((obj), \
46                  GUPNP_TYPE_PROTOCOL_INFO, \
47                  GUPnPProtocolInfoClass))
48 #define GUPNP_IS_PROTOCOL_INFO(obj) \
49                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
50                  GUPNP_TYPE_PROTOCOL_INFO))
51 #define GUPNP_IS_PROTOCOL_INFO_CLASS(obj) \
52                 (G_TYPE_CHECK_CLASS_TYPE ((obj), \
53                  GUPNP_TYPE_PROTOCOL_INFO))
54 #define GUPNP_PROTOCOL_INFO_GET_CLASS(obj) \
55                 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
56                  GUPNP_TYPE_PROTOCOL_INFO, \
57                  GUPnPProtocolInfoClass))
58
59 typedef struct _GUPnPProtocolInfoPrivate GUPnPProtocolInfoPrivate;
60
61 typedef struct {
62         GObject parent;
63
64         GUPnPProtocolInfoPrivate *priv;
65 } GUPnPProtocolInfo;
66
67 typedef struct {
68         GObjectClass parent_class;
69
70         /* future padding */
71         void (* _gupnp_reserved1) (void);
72         void (* _gupnp_reserved2) (void);
73         void (* _gupnp_reserved3) (void);
74         void (* _gupnp_reserved4) (void);
75 } GUPnPProtocolInfoClass;
76
77 GUPnPProtocolInfo *
78 gupnp_protocol_info_new                 (void);
79
80 GUPnPProtocolInfo *
81 gupnp_protocol_info_new_from_string     (const char        *protocol_info,
82                                          GError           **error);
83
84 char *
85 gupnp_protocol_info_to_string           (GUPnPProtocolInfo *info);
86
87 gboolean
88 gupnp_protocol_info_is_compatible       (GUPnPProtocolInfo *info1,
89                                          GUPnPProtocolInfo *info2);
90
91 void
92 gupnp_protocol_info_set_protocol        (GUPnPProtocolInfo *info,
93                                          const char        *protocol);
94
95 void
96 gupnp_protocol_info_set_network         (GUPnPProtocolInfo *info,
97                                          const char        *network);
98
99 void
100 gupnp_protocol_info_set_mime_type       (GUPnPProtocolInfo *info,
101                                          const char        *mime_type);
102
103 void
104 gupnp_protocol_info_set_dlna_profile    (GUPnPProtocolInfo *info,
105                                          const char        *profile);
106
107 void
108 gupnp_protocol_info_set_play_speeds     (GUPnPProtocolInfo *info,
109                                          const char       **speeds);
110
111 void
112 gupnp_protocol_info_set_dlna_conversion (GUPnPProtocolInfo  *info,
113                                          GUPnPDLNAConversion conversion);
114
115 void
116 gupnp_protocol_info_set_dlna_operation  (GUPnPProtocolInfo *info,
117                                          GUPnPDLNAOperation operation);
118
119 void
120 gupnp_protocol_info_set_dlna_flags      (GUPnPProtocolInfo *info,
121                                          GUPnPDLNAFlags     flags);
122
123 const char *
124 gupnp_protocol_info_get_protocol        (GUPnPProtocolInfo *info);
125
126 const char *
127 gupnp_protocol_info_get_network         (GUPnPProtocolInfo *info);
128
129 const char *
130 gupnp_protocol_info_get_mime_type       (GUPnPProtocolInfo *info);
131
132 const char *
133 gupnp_protocol_info_get_dlna_profile    (GUPnPProtocolInfo *info);
134
135 const char **
136 gupnp_protocol_info_get_play_speeds     (GUPnPProtocolInfo *info);
137
138 GUPnPDLNAConversion
139 gupnp_protocol_info_get_dlna_conversion (GUPnPProtocolInfo *info);
140
141 GUPnPDLNAOperation
142 gupnp_protocol_info_get_dlna_operation  (GUPnPProtocolInfo *info);
143
144 GUPnPDLNAFlags
145 gupnp_protocol_info_get_dlna_flags      (GUPnPProtocolInfo *info);
146
147 G_END_DECLS
148
149 #endif /* __GUPNP_PROTOCOL_INFO_H__ */