XMMS2
Functions
Collection

This is the collection manager. More...

Functions

xmms_coll_dag_txmms_collection_init (xmms_medialib_t *medialib)
 Initializes a new xmms_coll_dag_t. More...
 
xmmsv_txmms_collection_query_ids (xmms_coll_dag_t *dag, xmmsv_t *coll, xmms_error_t *err)
 Find the ids of the media matched by a collection. More...
 
void xmms_collection_update_pointer (xmms_coll_dag_t *dag, const gchar *name, xmms_collection_namespace_id_t nsid, xmmsv_t *newtarget)
 Update a reference to point to a new collection. More...
 
xmmsv_txmms_collection_get_pointer (xmms_coll_dag_t *dag, const gchar *collname, xmms_collection_namespace_id_t nsid)
 Find the collection structure corresponding to the given name in the given namespace. More...
 
gboolean xmms_collection_get_int_attr (xmmsv_t *coll, const gchar *attrname, gint *val)
 Extract an attribute from a collection as an integer. More...
 
gboolean xmms_collection_set_int_attr (xmmsv_t *coll, const gchar *attrname, gint newval)
 Set the attribute of a collection as an integer. More...
 
gchar * xmms_collection_find_alias (xmms_coll_dag_t *dag, xmms_collection_namespace_id_t nsid, xmmsv_t *value, const gchar *key)
 Reverse-search the list of collections in the given namespace to find the first pair whose value matches the argument. More...
 
xmms_medialib_entry_t xmms_collection_get_random_media (xmms_coll_dag_t *dag, xmmsv_t *source)
 Get a random media entry from the given collection. More...
 

Detailed Description

This is the collection manager.

The set of collections is stored as a DAG of collection operators. Each collection namespace contains a list of saved collections, with a pointer to the node in the graph.

Function Documentation

gchar* xmms_collection_find_alias ( xmms_coll_dag_t dag,
xmms_collection_namespace_id_t  nsid,
xmmsv_t value,
const gchar *  key 
)

Reverse-search the list of collections in the given namespace to find the first pair whose value matches the argument.

If key is not NULL, any pair with the same key will be ignored.

Parameters
dagThe collection DAG.
nsidThe id of the namespace to consider.
valueThe value of the pair to find.
keyIf not NULL, ignore any pair with that key.
Returns
A copy of the key of the found pair, needs to be freed.

Referenced by xmms_collection_snapshot().

gboolean xmms_collection_get_int_attr ( xmmsv_t coll,
const gchar *  attrname,
gint *  val 
)

Extract an attribute from a collection as an integer.

Parameters
collThe collection to extract the attribute from.
attrnameThe name of the attribute.
valThe integer value of the attribute will be saved in this pointer.
Returns
TRUE if attribute correctly read, FALSE otherwise
xmmsv_t* xmms_collection_get_pointer ( xmms_coll_dag_t dag,
const gchar *  collname,
xmms_collection_namespace_id_t  nsid 
)

Find the collection structure corresponding to the given name in the given namespace.

Parameters
dagThe collection DAG.
collnameThe name of the collection to find.
nsidThe namespace id.
Returns
The collection structure if found, NULL otherwise.

Referenced by xmms_collection_restore(), and xmms_collection_snapshot().

xmms_medialib_entry_t xmms_collection_get_random_media ( xmms_coll_dag_t dag,
xmmsv_t source 
)

Get a random media entry from the given collection.

Parameters
dagThe collection DAG.  
sourceThe collection to query.
Returns
A random media from the source collection, or 0 if none found.
xmms_coll_dag_t* xmms_collection_init ( xmms_medialib_t medialib)

Initializes a new xmms_coll_dag_t.

Returns
The newly allocated collection DAG.

Referenced by main().

xmmsv_t* xmms_collection_query_ids ( xmms_coll_dag_t dag,
xmmsv_t coll,
xmms_error_t err 
)

Find the ids of the media matched by a collection.

Parameters
dagThe collection DAG.
collThe collection used to match media.
lim_startThe beginning index of the LIMIT statement (0 to disable).
lim_lenThe number of entries of the LIMIT statement (0 to disable).
orderThe list of properties to order by (empty to disable).
errIf an error occurs, a message is stored in it.
Returns
A list of media ids.
gboolean xmms_collection_set_int_attr ( xmmsv_t coll,
const gchar *  attrname,
gint  newval 
)

Set the attribute of a collection as an integer.

Parameters
collThe collection in which to set the attribute.
attrnameThe name of the attribute.
newvalThe new value of the attribute.
Returns
TRUE if attribute successfully saved, FALSE otherwise.

Referenced by xmms_playlist_current_entry(), and xmms_playlist_insert_entry().

void xmms_collection_update_pointer ( xmms_coll_dag_t dag,
const gchar *  name,
xmms_collection_namespace_id_t  nsid,
xmmsv_t newtarget 
)

Update a reference to point to a new collection.

Parameters
dagThe collection DAG.
nameThe name of the reference to update.
nsidThe namespace in which to locate the reference.
newtargetThe new collection pointed to by the reference.

Referenced by xmms_collection_restore().