diff options
author | Jens Georg <mail@jensge.org> | 2011-06-04 14:33:21 +0200 |
---|---|---|
committer | Jens Georg <mail@jensge.org> | 2011-06-16 11:40:16 +0200 |
commit | cc0e3d2f3630b3adc615626059b61c8d116a6bf2 (patch) | |
tree | 115f7e06a8acb8b9bc1a997900ff713b15146022 | |
parent | 0dfb0f3a06bbcd12f38f865705933d867419ffb2 (diff) | |
download | gupnp-av-cc0e3d2f3630b3adc615626059b61c8d116a6bf2.tar.gz |
Set mandatory includeDerived XML attribute
includeDerived is mandatory for upnp:createClass.
-rw-r--r-- | libgupnp-av/gupnp-didl-lite-container.c | 45 | ||||
-rw-r--r-- | libgupnp-av/gupnp-didl-lite-container.h | 7 |
2 files changed, 44 insertions, 8 deletions
diff --git a/libgupnp-av/gupnp-didl-lite-container.c b/libgupnp-av/gupnp-didl-lite-container.c index eddaf0a..dbed52c 100644 --- a/libgupnp-av/gupnp-didl-lite-container.c +++ b/libgupnp-av/gupnp-didl-lite-container.c @@ -338,7 +338,7 @@ gupnp_didl_lite_container_set_child_count (GUPnPDIDLLiteContainer *container, * @container: #GUPnPDIDLLiteContainer * @create_class: The createClass to add. * - * Add a new create class to the @object. + * Add a new create class to the @object. includeDerived defaults to "0". * * Return value: None. **/ @@ -347,21 +347,52 @@ gupnp_didl_lite_container_add_create_class ( GUPnPDIDLLiteContainer *container, const char *create_class) { - xmlNode *xml_node; + gupnp_didl_lite_container_add_create_class_full (container, + create_class, + FALSE); +} + +/** + * gupnp_didl_lite_container_add_create_class_full: + * @container: #GUPnPDIDLLiteContainer + * @create_class: The createClass to add. + * @include_derived: Whether object with dervied classes may be created in + * this container or not. + * + * Add a new create class to the @object. + * + * Return value: None. + **/ +void +gupnp_didl_lite_container_add_create_class_full ( + GUPnPDIDLLiteContainer *container, + const char *create_class, + gboolean include_derived) +{ + xmlNode *container_node, *new_node; xmlNs *namespace; + const char *str; g_return_if_fail (container != NULL); g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container)); - xml_node = gupnp_didl_lite_object_get_xml_node + container_node = gupnp_didl_lite_object_get_xml_node (GUPNP_DIDL_LITE_OBJECT (container)); namespace = gupnp_didl_lite_object_get_upnp_namespace (GUPNP_DIDL_LITE_OBJECT (container)); - xmlNewChild (xml_node, - namespace, - (unsigned char *) "createClass", - (unsigned char *) create_class); + new_node = xmlNewChild (container_node, + namespace, + (unsigned char *) "createClass", + (unsigned char *) create_class); + if (include_derived) + str = "1"; + else + str = "0"; + + xmlSetProp (new_node, + (unsigned char *) "includeDerived", + (unsigned char *) str); } /** diff --git a/libgupnp-av/gupnp-didl-lite-container.h b/libgupnp-av/gupnp-didl-lite-container.h index 8fb1958..298ab9f 100644 --- a/libgupnp-av/gupnp-didl-lite-container.h +++ b/libgupnp-av/gupnp-didl-lite-container.h @@ -98,10 +98,15 @@ gupnp_didl_lite_container_add_create_class const char *create_class); void +gupnp_didl_lite_container_add_create_class_full + (GUPnPDIDLLiteContainer *container, + const char *create_class, + gboolean include_derived); + +void gupnp_didl_lite_container_add_search_class (GUPnPDIDLLiteContainer *container, const char *search_class); - void gupnp_didl_lite_container_add_search_class_full (GUPnPDIDLLiteContainer *container, |