/* Reads a value of state variable @variable_name to an initialised GValue pair * from the InstanceID node of a LastChange xml doc */ static gboolean read_state_variable (const char *variable_name, GValue *value, xmlNode *instance_node) { xmlNode *variable_node; const char *val_str; variable_node = xml_util_get_element (instance_node, variable_name, NULL); if (!variable_node) return FALSE; val_str = xml_util_get_attribute_content (variable_node, "val"); if (!val_str) { g_warning ("No value provided for variable \"%s\" in " "LastChange event", variable_name); return FALSE; } gvalue_util_set_value_from_string (value, val_str); return TRUE; }
static gboolean verify_didl_attributes (xmlNode *node) { const char *content; content = xml_util_get_child_element_content (node, "date"); if (content) { /* try to roughly verify the passed date with ^\d{4}-\d{2}-\d{2} */ char *ptr = (char *) content; int state = 0; while (*ptr) { if (state == 4 || state == 7) { if (*ptr != '-') return FALSE; } else { if (!isdigit (*ptr)) return FALSE; } ptr++; state++; if (state == 10) break; } } if (xml_util_get_attribute_content (node, "restricted") != NULL) { return xml_util_verify_attribute_is_boolean (node, "restricted"); } return TRUE; }
/** * gupnp_didl_lite_create_class_get_friendly_name: * @create_class: #GUPnPDIDLLiteCreateClass * * Get the friendly name of the @create_class. * * Return value: The FriendlyName of the @create_class, or %NULL. **/ const char * gupnp_didl_lite_create_class_get_friendly_name (GUPnPDIDLLiteCreateClass *create_class) { g_return_val_if_fail (GUPNP_IS_DIDL_LITE_CREATE_CLASS (create_class), NULL); return xml_util_get_attribute_content (create_class->priv->xml_node, "name"); }
/** * gupnp_didl_lite_item_get_ref_id: * @item: #GUPnPDIDLLiteItem * * Get the ref ID of the @item. * * Return value: The ref ID of the @item, or %NULL. **/ const char * gupnp_didl_lite_item_get_ref_id (GUPnPDIDLLiteItem *item) { xmlNode *xml_node; g_return_val_if_fail (item != NULL, 0); g_return_val_if_fail (GUPNP_IS_DIDL_LITE_ITEM (item), NULL); xml_node = gupnp_didl_lite_object_get_xml_node (GUPNP_DIDL_LITE_OBJECT (item)); return xml_util_get_attribute_content (xml_node, "refID"); }