2 * Copyright (C) 2009 Nokia Corporation.
3 * Copyright (C) 2007, 2008 OpenedHand Ltd.
4 * Copyright (C) 2012 Intel Corporation
6 * Authors: Zeeshan Ali (Khattak) <zeeshan.ali@nokia.com>
7 * <zeeshanak@gnome.org>
8 * Jorn Baayen <jorn@openedhand.com>
9 * Krzesimir Nowak <krnowak@openismus.com>
11 * This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Library General Public
13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version.
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Library General Public License for more details.
21 * You should have received a copy of the GNU Library General Public
22 * License along with this library; if not, write to the
23 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
24 * Boston, MA 02110-1301, USA.
27 #ifndef __GUPNP_DIDL_LITE_OBJECT_H__
28 #define __GUPNP_DIDL_LITE_OBJECT_H__
31 #include <glib-object.h>
32 #include <libxml/tree.h>
34 #include "gupnp-didl-lite-resource.h"
35 #include "gupnp-didl-lite-descriptor.h"
36 #include "gupnp-didl-lite-contributor.h"
37 #include "gupnp-av-enums.h"
42 gupnp_didl_lite_object_get_type (void) G_GNUC_CONST;
44 #define GUPNP_TYPE_DIDL_LITE_OBJECT \
45 (gupnp_didl_lite_object_get_type ())
46 #define GUPNP_DIDL_LITE_OBJECT(obj) \
47 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
48 GUPNP_TYPE_DIDL_LITE_OBJECT, \
50 #define GUPNP_DIDL_LITE_OBJECT_CLASS(obj) \
51 (G_TYPE_CHECK_CLASS_CAST ((obj), \
52 GUPNP_TYPE_DIDL_LITE_OBJECT, \
53 GUPnPDIDLLiteObjectClass))
54 #define GUPNP_IS_DIDL_LITE_OBJECT(obj) \
55 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
56 GUPNP_TYPE_DIDL_LITE_OBJECT))
57 #define GUPNP_IS_DIDL_LITE_OBJECT_CLASS(obj) \
58 (G_TYPE_CHECK_CLASS_TYPE ((obj), \
59 GUPNP_TYPE_DIDL_LITE_OBJECT))
60 #define GUPNP_DIDL_LITE_OBJECT_GET_CLASS(obj) \
61 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
62 GUPNP_TYPE_DIDL_LITE_OBJECT, \
63 GUPnPDIDLLiteObjectClass))
65 typedef struct _GUPnPDIDLLiteObjectPrivate GUPnPDIDLLiteObjectPrivate;
70 GUPnPDIDLLiteObjectPrivate *priv;
71 } GUPnPDIDLLiteObject;
74 GObjectClass parent_class;
77 void (* _gupnp_reserved1) (void);
78 void (* _gupnp_reserved2) (void);
79 void (* _gupnp_reserved3) (void);
80 void (* _gupnp_reserved4) (void);
81 } GUPnPDIDLLiteObjectClass;
84 gupnp_didl_lite_object_get_xml_node (GUPnPDIDLLiteObject *object);
87 gupnp_didl_lite_object_get_upnp_namespace
88 (GUPnPDIDLLiteObject *object);
91 gupnp_didl_lite_object_get_dc_namespace (GUPnPDIDLLiteObject *object);
94 gupnp_didl_lite_object_get_dlna_namespace
95 (GUPnPDIDLLiteObject *object);
98 gupnp_didl_lite_object_get_pv_namespace
99 (GUPnPDIDLLiteObject *object);
101 gupnp_didl_lite_object_get_upnp_class (GUPnPDIDLLiteObject *object);
104 gupnp_didl_lite_object_get_id (GUPnPDIDLLiteObject *object);
107 gupnp_didl_lite_object_get_parent_id (GUPnPDIDLLiteObject *object);
110 gupnp_didl_lite_object_get_properties (GUPnPDIDLLiteObject *object,
114 gupnp_didl_lite_object_get_restricted (GUPnPDIDLLiteObject *object);
117 gupnp_didl_lite_object_get_title (GUPnPDIDLLiteObject *object);
120 gupnp_didl_lite_object_get_creator (GUPnPDIDLLiteObject *object);
122 #ifndef GUPNP_DISABLE_DEPRECATED
124 gupnp_didl_lite_object_get_artist (GUPnPDIDLLiteObject *object);
127 gupnp_didl_lite_object_get_author (GUPnPDIDLLiteObject *object);
129 #endif /* GUPNP_DISABLE_DEPRECATED */
132 gupnp_didl_lite_object_get_creators (GUPnPDIDLLiteObject *object);
135 gupnp_didl_lite_object_get_artists (GUPnPDIDLLiteObject *object);
138 gupnp_didl_lite_object_get_authors (GUPnPDIDLLiteObject *object);
141 gupnp_didl_lite_object_get_descriptors (GUPnPDIDLLiteObject *object);
144 gupnp_didl_lite_object_get_genre (GUPnPDIDLLiteObject *object);
147 gupnp_didl_lite_object_get_write_status (GUPnPDIDLLiteObject *object);
150 gupnp_didl_lite_object_get_album (GUPnPDIDLLiteObject *object);
153 gupnp_didl_lite_object_get_album_art (GUPnPDIDLLiteObject *object);
156 gupnp_didl_lite_object_get_description (GUPnPDIDLLiteObject *object);
159 gupnp_didl_lite_object_get_date (GUPnPDIDLLiteObject *object);
162 gupnp_didl_lite_object_get_track_number (GUPnPDIDLLiteObject *object);
165 gupnp_didl_lite_object_get_dlna_managed (GUPnPDIDLLiteObject *object);
168 gupnp_didl_lite_object_get_update_id (GUPnPDIDLLiteObject *object);
171 gupnp_didl_lite_object_update_id_is_set (GUPnPDIDLLiteObject *object);
174 gupnp_didl_lite_object_get_resources (GUPnPDIDLLiteObject *object);
176 GUPnPDIDLLiteResource *
177 gupnp_didl_lite_object_get_compat_resource
178 (GUPnPDIDLLiteObject *object,
183 GUPnPDIDLLiteResource *
184 gupnp_didl_lite_object_add_resource (GUPnPDIDLLiteObject *object);
186 GUPnPDIDLLiteDescriptor *
187 gupnp_didl_lite_object_add_descriptor (GUPnPDIDLLiteObject *object);
190 gupnp_didl_lite_object_set_upnp_class (GUPnPDIDLLiteObject *object,
191 const char *upnp_class);
194 gupnp_didl_lite_object_set_id (GUPnPDIDLLiteObject *object,
198 gupnp_didl_lite_object_set_parent_id (GUPnPDIDLLiteObject *object,
199 const char *parent_id);
202 gupnp_didl_lite_object_set_restricted (GUPnPDIDLLiteObject *object,
203 gboolean restricted);
206 gupnp_didl_lite_object_set_title (GUPnPDIDLLiteObject *object,
210 gupnp_didl_lite_object_set_creator (GUPnPDIDLLiteObject *object,
211 const char *creator);
213 #ifndef GUPNP_DISABLE_DEPRECATED
215 gupnp_didl_lite_object_set_artist (GUPnPDIDLLiteObject *object,
219 gupnp_didl_lite_object_set_author (GUPnPDIDLLiteObject *object,
222 #endif /* GUPNP_DISABLE_DEPRECATED */
224 GUPnPDIDLLiteContributor *
225 gupnp_didl_lite_object_add_creator (GUPnPDIDLLiteObject *object);
227 GUPnPDIDLLiteContributor *
228 gupnp_didl_lite_object_add_artist (GUPnPDIDLLiteObject *object);
230 GUPnPDIDLLiteContributor *
231 gupnp_didl_lite_object_add_author (GUPnPDIDLLiteObject *object);
234 gupnp_didl_lite_object_set_genre (GUPnPDIDLLiteObject *object,
238 gupnp_didl_lite_object_set_write_status (GUPnPDIDLLiteObject *object,
239 const char *write_status);
242 gupnp_didl_lite_object_set_album (GUPnPDIDLLiteObject *object,
246 gupnp_didl_lite_object_set_album_art (GUPnPDIDLLiteObject *object,
247 const char *album_art);
250 gupnp_didl_lite_object_set_description (GUPnPDIDLLiteObject *object,
251 const char *description);
254 gupnp_didl_lite_object_set_date (GUPnPDIDLLiteObject *object,
258 gupnp_didl_lite_object_set_track_number (GUPnPDIDLLiteObject *object,
262 gupnp_didl_lite_object_set_dlna_managed (GUPnPDIDLLiteObject *object,
263 GUPnPOCMFlags dlna_managed);
266 gupnp_didl_lite_object_set_update_id (GUPnPDIDLLiteObject *object,
270 gupnp_didl_lite_object_unset_update_id (GUPnPDIDLLiteObject *object);
273 gupnp_didl_lite_object_get_title_xml_string
274 (GUPnPDIDLLiteObject *object);
277 gupnp_didl_lite_object_get_date_xml_string
278 (GUPnPDIDLLiteObject *object);
281 gupnp_didl_lite_object_get_upnp_class_xml_string
282 (GUPnPDIDLLiteObject *object);
285 gupnp_didl_lite_object_get_album_xml_string
286 (GUPnPDIDLLiteObject *object);
289 gupnp_didl_lite_object_get_track_number_xml_string
290 (GUPnPDIDLLiteObject *object);
293 gupnp_didl_lite_object_get_artists_xml_string
294 (GUPnPDIDLLiteObject *object);
297 gupnp_didl_lite_object_unset_artists (GUPnPDIDLLiteObject *object);
299 GUPnPDIDLLiteFragmentResult
300 gupnp_didl_lite_object_apply_fragments
301 (GUPnPDIDLLiteObject *object,
302 gchar **current_fragments,
304 gchar **new_fragments,
308 gupnp_didl_lite_object_get_xml_string (GUPnPDIDLLiteObject *object);
312 #endif /* __GUPNP_DIDL_LITE_OBJECT_H__ */