|
Packit |
712bc5 |
/*
|
|
Packit |
712bc5 |
* Copyright (C) 2009 Nokia Corporation.
|
|
Packit |
712bc5 |
* Copyright (C) 2012 Intel Corporation
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Authors: Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
|
|
Packit |
712bc5 |
* <zeeshan.ali@nokia.com>
|
|
Packit |
712bc5 |
* Krzesimir Nowak <krnowak@openismus.com>
|
|
Packit |
712bc5 |
* Christophe Guiraud <christophe.guiraud@intel.com>
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* This library is free software; you can redistribute it and/or
|
|
Packit |
712bc5 |
* modify it under the terms of the GNU Library General Public
|
|
Packit |
712bc5 |
* License as published by the Free Software Foundation; either
|
|
Packit |
712bc5 |
* version 2 of the License, or (at your option) any later version.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
712bc5 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
712bc5 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
712bc5 |
* Library General Public License for more details.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* You should have received a copy of the GNU Library General Public
|
|
Packit |
712bc5 |
* License along with this library; if not, write to the
|
|
Packit |
712bc5 |
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Packit |
712bc5 |
* Boston, MA 02110-1301, USA.
|
|
Packit |
712bc5 |
*/
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* SECTION:gupnp-didl-lite-container
|
|
Packit |
712bc5 |
* @short_description: DIDL-Lite Container
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* #GUPnPDIDLLiteContainer respresents a DIDL-Lite container element.
|
|
Packit |
712bc5 |
*/
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
#include <string.h>
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
#include "gupnp-didl-lite-container.h"
|
|
Packit |
712bc5 |
#include "gupnp-didl-lite-object-private.h"
|
|
Packit |
712bc5 |
#include "gupnp-didl-lite-createclass.h"
|
|
Packit |
712bc5 |
#include "gupnp-didl-lite-createclass-private.h"
|
|
Packit |
712bc5 |
#include "xml-util.h"
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
G_DEFINE_TYPE (GUPnPDIDLLiteContainer,
|
|
Packit |
712bc5 |
gupnp_didl_lite_container,
|
|
Packit |
712bc5 |
GUPNP_TYPE_DIDL_LITE_OBJECT);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
enum {
|
|
Packit |
712bc5 |
PROP_0,
|
|
Packit |
712bc5 |
PROP_SEARCHABLE,
|
|
Packit |
712bc5 |
PROP_CHILD_COUNT,
|
|
Packit |
712bc5 |
PROP_STORAGE_USED,
|
|
Packit |
712bc5 |
PROP_CONTAINER_UPDATE_ID,
|
|
Packit |
712bc5 |
PROP_TOTAL_DELETED_CHILD_COUNT
|
|
Packit |
712bc5 |
};
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_init (G_GNUC_UNUSED GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
/* Nothing to initialize, yay! */
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_property (GObject *object,
|
|
Packit |
712bc5 |
guint property_id,
|
|
Packit |
712bc5 |
GValue *value,
|
|
Packit |
712bc5 |
GParamSpec *pspec)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
container = GUPNP_DIDL_LITE_CONTAINER (object);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
switch (property_id) {
|
|
Packit |
712bc5 |
case PROP_SEARCHABLE:
|
|
Packit |
712bc5 |
g_value_set_boolean
|
|
Packit |
712bc5 |
(value,
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_searchable (container));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_CHILD_COUNT:
|
|
Packit |
712bc5 |
g_value_set_int
|
|
Packit |
712bc5 |
(value,
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_child_count (container));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_STORAGE_USED:
|
|
Packit |
712bc5 |
g_value_set_long
|
|
Packit |
712bc5 |
(value,
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_storage_used (container));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_CONTAINER_UPDATE_ID:
|
|
Packit |
712bc5 |
g_value_set_uint
|
|
Packit |
712bc5 |
(value,
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_container_update_id
|
|
Packit |
712bc5 |
(container));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_TOTAL_DELETED_CHILD_COUNT:
|
|
Packit |
712bc5 |
g_value_set_uint
|
|
Packit |
712bc5 |
(value,
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_total_deleted_child_count
|
|
Packit |
712bc5 |
(container));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
default:
|
|
Packit |
712bc5 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_property (GObject *object,
|
|
Packit |
712bc5 |
guint property_id,
|
|
Packit |
712bc5 |
const GValue *value,
|
|
Packit |
712bc5 |
GParamSpec *pspec)
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
container = GUPNP_DIDL_LITE_CONTAINER (object);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
switch (property_id) {
|
|
Packit |
712bc5 |
case PROP_SEARCHABLE:
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_searchable
|
|
Packit |
712bc5 |
(container,
|
|
Packit |
712bc5 |
g_value_get_boolean (value));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_CHILD_COUNT:
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_child_count
|
|
Packit |
712bc5 |
(container,
|
|
Packit |
712bc5 |
g_value_get_int (value));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_STORAGE_USED:
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_storage_used
|
|
Packit |
712bc5 |
(container,
|
|
Packit |
712bc5 |
g_value_get_int64 (value));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_CONTAINER_UPDATE_ID:
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_container_update_id
|
|
Packit |
712bc5 |
(container,
|
|
Packit |
712bc5 |
g_value_get_uint (value));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
case PROP_TOTAL_DELETED_CHILD_COUNT:
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_total_deleted_child_count
|
|
Packit |
712bc5 |
(container,
|
|
Packit |
712bc5 |
g_value_get_uint (value));
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
default:
|
|
Packit |
712bc5 |
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
|
Packit |
712bc5 |
break;
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_class_init (GUPnPDIDLLiteContainerClass *klass)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GObjectClass *object_class;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
object_class = G_OBJECT_CLASS (klass);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
object_class->get_property = gupnp_didl_lite_container_get_property;
|
|
Packit |
712bc5 |
object_class->set_property = gupnp_didl_lite_container_set_property;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* GUPnPDIDLLiteContainer:searchable:
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Whether this container is searchable.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
g_object_class_install_property
|
|
Packit |
712bc5 |
(object_class,
|
|
Packit |
712bc5 |
PROP_SEARCHABLE,
|
|
Packit |
712bc5 |
g_param_spec_boolean ("searchable",
|
|
Packit |
712bc5 |
"Searchable",
|
|
Packit |
712bc5 |
"Whether this container is searchable.",
|
|
Packit |
712bc5 |
FALSE,
|
|
Packit |
712bc5 |
G_PARAM_READWRITE |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NAME |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NICK |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_BLURB));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* GUPnPDIDLLiteContainer:child-count:
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* The child count of this container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
g_object_class_install_property
|
|
Packit |
712bc5 |
(object_class,
|
|
Packit |
712bc5 |
PROP_CHILD_COUNT,
|
|
Packit |
712bc5 |
g_param_spec_int ("child-count",
|
|
Packit |
712bc5 |
"ChildCount",
|
|
Packit |
712bc5 |
"The child count of this container.",
|
|
Packit |
712bc5 |
0,
|
|
Packit |
712bc5 |
G_MAXINT,
|
|
Packit |
712bc5 |
0,
|
|
Packit |
712bc5 |
G_PARAM_READWRITE |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NAME |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NICK |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_BLURB));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* GUPnPDIDLLiteContainer:storage-used:
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* The number of bytes used by all child items of this container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
g_object_class_install_property
|
|
Packit |
712bc5 |
(object_class,
|
|
Packit |
712bc5 |
PROP_STORAGE_USED,
|
|
Packit |
712bc5 |
g_param_spec_int64 ("storage-used",
|
|
Packit |
712bc5 |
"Storage Used",
|
|
Packit |
712bc5 |
"The Number of bytes used by all child "
|
|
Packit |
712bc5 |
"items of this container.",
|
|
Packit |
712bc5 |
-1,
|
|
Packit |
712bc5 |
G_MAXINT64,
|
|
Packit |
712bc5 |
-1,
|
|
Packit |
712bc5 |
G_PARAM_READWRITE |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NAME |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NICK |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_BLURB));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* GUPnPDIDLLiteContainer:container-update-id:
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Update ID of this container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
g_object_class_install_property
|
|
Packit |
712bc5 |
(object_class,
|
|
Packit |
712bc5 |
PROP_CONTAINER_UPDATE_ID,
|
|
Packit |
712bc5 |
g_param_spec_uint ("container-update-id",
|
|
Packit |
712bc5 |
"ContainerUpdateID",
|
|
Packit |
712bc5 |
"Update ID of this container.",
|
|
Packit |
712bc5 |
0,
|
|
Packit |
712bc5 |
G_MAXUINT,
|
|
Packit |
712bc5 |
0,
|
|
Packit |
712bc5 |
G_PARAM_READWRITE |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NAME |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NICK |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_BLURB));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* GUPnPDIDLLiteContainer:total-deleted-child-count:
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Total deleted child count of this container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
g_object_class_install_property
|
|
Packit |
712bc5 |
(object_class,
|
|
Packit |
712bc5 |
PROP_TOTAL_DELETED_CHILD_COUNT,
|
|
Packit |
712bc5 |
g_param_spec_uint ("total-deleted-child-count",
|
|
Packit |
712bc5 |
"TotalDeletedChildCOunt",
|
|
Packit |
712bc5 |
"Total deleted child count of this container.",
|
|
Packit |
712bc5 |
0,
|
|
Packit |
712bc5 |
G_MAXUINT,
|
|
Packit |
712bc5 |
0,
|
|
Packit |
712bc5 |
G_PARAM_READWRITE |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NAME |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_NICK |
|
|
Packit |
712bc5 |
G_PARAM_STATIC_BLURB));
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_searchable:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Checks whether @container is searchable.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: #TRUE if @container is searchable.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
gboolean
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_searchable (GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, FALSE);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), FALSE);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return xml_util_get_boolean_attribute (xml_node, "searchable");
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_child_count:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Get the child count of the @container. If the child count is unknown, -1 is
|
|
Packit |
712bc5 |
* returned.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: The child count of the @container, or -1 if it is unknown.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
gint
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_child_count (GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, 0);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), 0);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return xml_util_get_int_attribute (xml_node, "childCount", -1);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_container_update_id:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Get the container update ID of the @container.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: The container update ID of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
guint
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_container_update_id
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, 0);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), 0);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return xml_util_get_uint_child_element (xml_node,
|
|
Packit |
712bc5 |
"containerUpdateID",
|
|
Packit |
712bc5 |
0);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_container_update_id_is_set:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Get whether the container update ID of the @container is set.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: %TRUE if update ID is set, otherwise %FALSE
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
gboolean
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_container_update_id_is_set
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
const char *content;
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, FALSE);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), FALSE);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
content = xml_util_get_child_element_content (xml_node,
|
|
Packit |
712bc5 |
"containerUpdateID");
|
|
Packit |
712bc5 |
return content != NULL;
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_total_deleted_child_count:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Get the total deleted child count of the @container.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: The total deleted child count of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
guint
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_total_deleted_child_count
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, 0);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), 0);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return xml_util_get_uint_child_element (xml_node,
|
|
Packit |
712bc5 |
"totalDeletedChildCount",
|
|
Packit |
712bc5 |
-1);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_total_deleted_child_count_is_set:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Get whether the total deleted child conut of the @container is set.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: %TRUE if property is set, otherwise %FALSE
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
gboolean
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_total_deleted_child_count_is_set
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
const char *content;
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, FALSE);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), FALSE);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
content = xml_util_get_child_element_content (xml_node,
|
|
Packit |
712bc5 |
"totalDeletedChildCount");
|
|
Packit |
712bc5 |
return content != NULL;
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_create_classes:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Gets the list of create classes of the @container.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Returns: (element-type utf8) (transfer full): The list of create classes
|
|
Packit |
712bc5 |
* belonging to @container, or %NULL.
|
|
Packit |
712bc5 |
* #g_list_free the returned list after usage and #g_free each string in it.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
GList *
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_create_classes (GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GList *classes = NULL;
|
|
Packit |
712bc5 |
GList *ret = NULL;
|
|
Packit |
712bc5 |
GList *l;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, NULL);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), NULL);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
classes = gupnp_didl_lite_object_get_properties (
|
|
Packit |
712bc5 |
GUPNP_DIDL_LITE_OBJECT (container),
|
|
Packit |
712bc5 |
"createClass");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
for (l = classes; l; l = l->next) {
|
|
Packit |
712bc5 |
char *create_class;
|
|
Packit |
712bc5 |
xmlNode *node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
node = (xmlNode *) l->data;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
if (node->children != NULL) {
|
|
Packit |
712bc5 |
create_class = g_strdup ((const char *) node->children->content);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
ret = g_list_append (ret, create_class);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_list_free (classes);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return ret;
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_create_classes_full:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Gets the list of create classes of the @container.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Returns: (element-type GUPnPDIDLLiteCreateClass*) (transfer full): The list
|
|
Packit |
712bc5 |
* of create classes belonging to @container, or %NULL.
|
|
Packit |
712bc5 |
* #g_list_free the returned list after usage and unref each object in it.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
GList *
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_create_classes_full (
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GList *cc_list = NULL;
|
|
Packit |
712bc5 |
GList *ret = NULL;
|
|
Packit |
712bc5 |
GList *l;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, NULL);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), NULL);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
cc_list = gupnp_didl_lite_object_get_properties (
|
|
Packit |
712bc5 |
GUPNP_DIDL_LITE_OBJECT (container),
|
|
Packit |
712bc5 |
"createClass");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
for (l = cc_list; l; l = l->next) {
|
|
Packit |
712bc5 |
GUPnPDIDLLiteCreateClass *cc;
|
|
Packit |
712bc5 |
xmlNode *cc_node;
|
|
Packit |
712bc5 |
GUPnPAVXMLDoc *cc_doc;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
cc_node = (xmlNode *) l->data;
|
|
Packit |
712bc5 |
if (!cc_node->children)
|
|
Packit |
712bc5 |
continue;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
cc_doc = gupnp_didl_lite_object_get_gupnp_xml_doc (
|
|
Packit |
712bc5 |
GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
cc = gupnp_didl_lite_create_class_new_from_xml (cc_node, cc_doc);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
ret = g_list_append (ret, cc);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_list_free (cc_list);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return ret;
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_search_classes:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Gets the list of search classes of the @container.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: (element-type utf8) (transfer full): The list of search classes
|
|
Packit |
712bc5 |
* belonging to @container, or %NULL. #g_list_free the returned list after usage
|
|
Packit |
712bc5 |
* and #g_free each string in it.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
GList *
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_search_classes (GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GList *classes = NULL;
|
|
Packit |
712bc5 |
GList *ret = NULL;
|
|
Packit |
712bc5 |
GList *l;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, NULL);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), NULL);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
classes = gupnp_didl_lite_object_get_properties (
|
|
Packit |
712bc5 |
GUPNP_DIDL_LITE_OBJECT (container),
|
|
Packit |
712bc5 |
"searchClass");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
for (l = classes; l; l = l->next) {
|
|
Packit |
712bc5 |
char *search_class;
|
|
Packit |
712bc5 |
xmlNode *node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
node = (xmlNode *) l->data;
|
|
Packit |
712bc5 |
if (node->children != NULL) {
|
|
Packit |
712bc5 |
search_class = g_strdup ((const char *) node->children->content);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
ret = g_list_append (ret, search_class);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_list_free (classes);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return ret;
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_get_storage_used:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Get the number of bytes used by all child items of the @container.
|
|
Packit |
712bc5 |
* If storage used is unknown, -1 is returned.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Return value: The number of bytes used by all children of the @container,
|
|
Packit |
712bc5 |
* or -1 if it is unknown.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
gint64
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_get_storage_used (GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GList *storage = NULL;
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
const char *str;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_val_if_fail (container != NULL, 0);
|
|
Packit |
712bc5 |
g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container), 0);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
storage = gupnp_didl_lite_object_get_properties (
|
|
Packit |
712bc5 |
GUPNP_DIDL_LITE_OBJECT (container),
|
|
Packit |
712bc5 |
"storageUsed");
|
|
Packit |
712bc5 |
if (storage == NULL)
|
|
Packit |
712bc5 |
return -1;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/* only return value from first node */
|
|
Packit |
712bc5 |
xml_node = (xmlNode *) storage->data;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_list_free (storage);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
str = (const char *) xml_node->content;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return g_ascii_strtoll (str, NULL, 10);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_set_searchable:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @searchable: The searchibility
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* (Un)set the searchibility of @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_searchable (GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
gboolean searchable)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
const char *str;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
if (searchable)
|
|
Packit |
712bc5 |
str = "1";
|
|
Packit |
712bc5 |
else
|
|
Packit |
712bc5 |
str = "0";
|
|
Packit |
712bc5 |
xmlSetProp (xml_node,
|
|
Packit |
712bc5 |
(unsigned char *) "searchable",
|
|
Packit |
712bc5 |
(unsigned char *) str);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_object_notify (G_OBJECT (container), "searchable");
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_set_child_count:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @child_count: The child count
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Set the child count of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_child_count (GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
gint child_count)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
char *str;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
str = g_strdup_printf ("%d", child_count);
|
|
Packit |
712bc5 |
xmlSetProp (xml_node,
|
|
Packit |
712bc5 |
(unsigned char *) "childCount",
|
|
Packit |
712bc5 |
(unsigned char *) str);
|
|
Packit |
712bc5 |
g_free (str);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_object_notify (G_OBJECT (container), "child-count");
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_set_container_update_id:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @update_id: The container update ID
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Set the container update ID of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_container_update_id
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
guint update_id)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
xmlNsPtr upnp_ns;
|
|
Packit |
712bc5 |
GUPnPAVXMLDoc *xml_doc;
|
|
Packit |
712bc5 |
char *str;
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject *self_as_object;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
self_as_object = GUPNP_DIDL_LITE_OBJECT (container);
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node (self_as_object);
|
|
Packit |
712bc5 |
xml_doc = gupnp_didl_lite_object_get_gupnp_xml_doc (self_as_object);
|
|
Packit |
712bc5 |
upnp_ns = gupnp_didl_lite_object_get_upnp_namespace (self_as_object);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
str = g_strdup_printf ("%u", update_id);
|
|
Packit |
712bc5 |
xml_util_set_child (xml_node,
|
|
Packit |
712bc5 |
GUPNP_XML_NAMESPACE_UPNP,
|
|
Packit |
712bc5 |
&upnp_ns,
|
|
Packit |
712bc5 |
xml_doc->doc,
|
|
Packit |
712bc5 |
"containerUpdateID",
|
|
Packit |
712bc5 |
str);
|
|
Packit |
712bc5 |
g_free (str);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_object_notify (G_OBJECT (container), "container-update-id");
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_unset_container_update_id:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Unset the container update ID property of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_unset_container_update_id
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
xml_util_unset_child (xml_node, "containerUpdateID");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_object_notify (G_OBJECT (container), "container-update-id");
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_set_total_deleted_child_count:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @count: The container update ID
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Set the container update ID of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_total_deleted_child_count
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
guint count)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
xmlNsPtr upnp_ns;
|
|
Packit |
712bc5 |
GUPnPAVXMLDoc *xml_doc;
|
|
Packit |
712bc5 |
char *str;
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject *self_as_object;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
self_as_object = GUPNP_DIDL_LITE_OBJECT (container);
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node (self_as_object);
|
|
Packit |
712bc5 |
xml_doc = gupnp_didl_lite_object_get_gupnp_xml_doc (self_as_object);
|
|
Packit |
712bc5 |
upnp_ns = gupnp_didl_lite_object_get_upnp_namespace (self_as_object);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
str = g_strdup_printf ("%u", count);
|
|
Packit |
712bc5 |
xml_util_set_child (xml_node,
|
|
Packit |
712bc5 |
GUPNP_XML_NAMESPACE_UPNP,
|
|
Packit |
712bc5 |
&upnp_ns,
|
|
Packit |
712bc5 |
xml_doc->doc,
|
|
Packit |
712bc5 |
"totalDeletedChildCount",
|
|
Packit |
712bc5 |
str);
|
|
Packit |
712bc5 |
g_free (str);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_object_notify (G_OBJECT (container), "total-deleted-child-count");
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_unset_total_deleted_child_count:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Unset the total deleted child count property of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_unset_total_deleted_child_count
|
|
Packit |
712bc5 |
(GUPnPDIDLLiteContainer *container)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
xml_util_unset_child (xml_node, "totalDeletedChildCount");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_object_notify (G_OBJECT (container), "total-deleted-child-count");
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_add_create_class:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @create_class: The createClass to add.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Add a new create class to the @container. includeDerived defaults to "0".
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_add_create_class (
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
const char *create_class)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_add_create_class_full (container,
|
|
Packit |
712bc5 |
create_class,
|
|
Packit |
712bc5 |
FALSE);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_add_create_class_full:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @create_class: The createClass to add.
|
|
Packit |
712bc5 |
* @include_derived: Whether object with dervied classes may be created in
|
|
Packit |
712bc5 |
* this container or not.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Add a new create class to the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_add_create_class_full (
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
const char *create_class,
|
|
Packit |
712bc5 |
gboolean include_derived)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *container_node, *new_node;
|
|
Packit |
712bc5 |
xmlNs *namespace;
|
|
Packit |
712bc5 |
const char *str;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
container_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
namespace = gupnp_didl_lite_object_get_upnp_namespace
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
new_node = xmlNewChild (container_node,
|
|
Packit |
712bc5 |
namespace,
|
|
Packit |
712bc5 |
(unsigned char *) "createClass",
|
|
Packit |
712bc5 |
(unsigned char *) create_class);
|
|
Packit |
712bc5 |
if (include_derived)
|
|
Packit |
712bc5 |
str = "1";
|
|
Packit |
712bc5 |
else
|
|
Packit |
712bc5 |
str = "0";
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xmlSetProp (new_node,
|
|
Packit |
712bc5 |
(unsigned char *) "includeDerived",
|
|
Packit |
712bc5 |
(unsigned char *) str);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_add_search_class:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @search_class: The searchClass to add.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Add a new search class to the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_add_search_class (
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
const char *search_class)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_add_search_class_full (container,
|
|
Packit |
712bc5 |
search_class,
|
|
Packit |
712bc5 |
TRUE);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_add_search_class_full:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @search_class: The searchClass to add.
|
|
Packit |
712bc5 |
* @include_derived: includeDerived attribute of the DIDL
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Add a new search class to the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_add_search_class_full (
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
const char *search_class,
|
|
Packit |
712bc5 |
gboolean include_derived)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
xmlNode *new_xml_node;
|
|
Packit |
712bc5 |
xmlNs *namespace;
|
|
Packit |
712bc5 |
const char *str;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
namespace = gupnp_didl_lite_object_get_upnp_namespace
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
new_xml_node = xmlNewChild (xml_node,
|
|
Packit |
712bc5 |
namespace,
|
|
Packit |
712bc5 |
(unsigned char *) "searchClass",
|
|
Packit |
712bc5 |
(unsigned char *) search_class);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
if (include_derived)
|
|
Packit |
712bc5 |
str = "1";
|
|
Packit |
712bc5 |
else
|
|
Packit |
712bc5 |
str = "0";
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xmlSetProp (new_xml_node,
|
|
Packit |
712bc5 |
(unsigned char*) "includeDerived",
|
|
Packit |
712bc5 |
(unsigned char*) str);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
/**
|
|
Packit |
712bc5 |
* gupnp_didl_lite_container_set_storage_used:
|
|
Packit |
712bc5 |
* @container: #GUPnPDIDLLiteContainer
|
|
Packit |
712bc5 |
* @storage_used: The number of bytes used by all child items of the
|
|
Packit |
712bc5 |
* @container or -1 if unknown.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Set the number of bytes used by all child items of the @container.
|
|
Packit |
712bc5 |
**/
|
|
Packit |
712bc5 |
void
|
|
Packit |
712bc5 |
gupnp_didl_lite_container_set_storage_used (
|
|
Packit |
712bc5 |
GUPnPDIDLLiteContainer *container,
|
|
Packit |
712bc5 |
gint64 storage_used)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GList *storage = NULL;
|
|
Packit |
712bc5 |
xmlNode *xml_node;
|
|
Packit |
712bc5 |
xmlNs *namespace;
|
|
Packit |
712bc5 |
char *str;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_return_if_fail (container != NULL);
|
|
Packit |
712bc5 |
g_return_if_fail (GUPNP_IS_DIDL_LITE_CONTAINER (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml_node = gupnp_didl_lite_object_get_xml_node
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
namespace = gupnp_didl_lite_object_get_upnp_namespace
|
|
Packit |
712bc5 |
(GUPNP_DIDL_LITE_OBJECT (container));
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
str = g_strdup_printf ("%"G_GINT64_FORMAT, storage_used);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
storage = gupnp_didl_lite_object_get_properties (
|
|
Packit |
712bc5 |
GUPNP_DIDL_LITE_OBJECT (container),
|
|
Packit |
712bc5 |
"storageUsed");
|
|
Packit |
712bc5 |
if (storage == NULL)
|
|
Packit |
712bc5 |
xmlNewChild (xml_node,
|
|
Packit |
712bc5 |
namespace,
|
|
Packit |
712bc5 |
(unsigned char *) "storageUsed",
|
|
Packit |
712bc5 |
(unsigned char *) str);
|
|
Packit |
712bc5 |
else
|
|
Packit |
712bc5 |
xmlNodeSetContent ((xmlNode *) storage->data,
|
|
Packit |
712bc5 |
(unsigned char *) str);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_free (str);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_object_notify (G_OBJECT (container), "storage-used");
|
|
Packit |
712bc5 |
}
|