Medialib
[XMMSServer]


Detailed Description

Medialib caches metadata.

Controls metadata storage.


Defines

#define XMMS_MEDIALIB_SOURCE_SERVER   "server"
#define XMMS_MEDIALIB_SOURCE_SERVER_ID   1
#define XMMS_MEDIALIB_RETRV_PROPERTY_SQL   "select value from Media where key=%Q and id=%d order by xmms_source_pref(source, %Q) limit 1"
 Retrieve a property from an entry.

Functions

int add_to_source (void *hash, int columns, char **vals, char **cols)
guint32 xmms_medialib_source_to_id (xmms_medialib_session_t *session, const gchar *source)
xmms_medialib_txmms_medialib_init (xmms_playlist_t *playlist)
 Initialize the medialib and open the database file.
xmms_medialib_session_t_xmms_medialib_begin (gboolean write, const char *file, int line)
 Session handling.
void xmms_medialib_end (xmms_medialib_session_t *session)
xmms_object_cmd_value_txmms_medialib_entry_property_get_cmd_value (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property)
gchar * xmms_medialib_entry_property_get_str (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property)
 Retrieve a property from an entry.
gint xmms_medialib_entry_property_get_int (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property)
 Retrieve a property as a int from a entry.
gboolean xmms_medialib_entry_property_set_int (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, gint value)
 Set a entry property to a new value, overwriting the old value.
gboolean xmms_medialib_entry_property_set_int_source (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, gint value, guint32 source)
gboolean xmms_medialib_entry_property_set_str (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, const gchar *value)
 Set a entry property to a new value, overwriting the old value.
gboolean xmms_medialib_entry_property_set_str_source (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, const gchar *value, guint32 source)
void xmms_medialib_entry_send_update (xmms_medialib_entry_t entry)
 Trigger a update signal to the client.
void xmms_medialib_entry_send_added (xmms_medialib_entry_t entry)
 Trigger an added siginal to the client.
void xmms_medialib_entry_remove (xmms_medialib_entry_t entry)
 Remove a medialib entry from the database.
void xmms_medialib_entry_cleanup (xmms_medialib_session_t *session, xmms_medialib_entry_t entry)
void xmms_medialib_add_recursive (xmms_medialib_t *medialib, gchar *playlist, gchar *path, xmms_error_t *error)
xmms_medialib_entry_t xmms_medialib_entry_new_encoded (xmms_medialib_session_t *session, const char *url, xmms_error_t *error)
xmms_medialib_entry_t xmms_medialib_entry_new (xmms_medialib_session_t *session, const char *url, xmms_error_t *error)
 Welcome to a function that should be called something else.
GList * xmms_medialib_entry_to_list (xmms_medialib_session_t *session, xmms_medialib_entry_t entry)
 Convert a entry and all properties to a hashtable that could be feed to the client or somewhere else in the daemon.
GList * xmms_medialib_info (xmms_medialib_t *medialib, guint32 id, xmms_error_t *err)
void xmms_medialib_property_remove (xmms_medialib_t *medialib, guint32 entry, gchar *source, gchar *key, xmms_error_t *error)
GList * xmms_medialib_select (xmms_medialib_session_t *session, const gchar *query, xmms_error_t *error)
 Get a list of GHashTables 's that matches the query.


Define Documentation

#define XMMS_MEDIALIB_RETRV_PROPERTY_SQL   "select value from Media where key=%Q and id=%d order by xmms_source_pref(source, %Q) limit 1"

#define XMMS_MEDIALIB_SOURCE_SERVER   "server"

Definition at line 164 of file medialib.c.

#define XMMS_MEDIALIB_SOURCE_SERVER_ID   1


Function Documentation

xmms_medialib_session_t* _xmms_medialib_begin ( gboolean  write,
const char *  file,
int  line 
)

Session handling.

This will only happen when OLD_SQLITE_VERSION is set.

Definition at line 408 of file medialib.c.

int add_to_source ( void *  hash,
int  columns,
char **  vals,
char **  cols 
)

Definition at line 244 of file medialib.c.

Referenced by xmms_medialib_init().

void xmms_medialib_add_recursive ( xmms_medialib_t medialib,
gchar *  playlist,
gchar *  path,
xmms_error_t error 
)

Definition at line 891 of file medialib.c.

void xmms_medialib_end ( xmms_medialib_session_t session  ) 

void xmms_medialib_entry_cleanup ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry 
)

Definition at line 838 of file medialib.c.

xmms_medialib_entry_t xmms_medialib_entry_new ( xmms_medialib_session_t session,
const char *  url,
xmms_error_t error 
)

Welcome to a function that should be called something else.

Returns a entry for a URL, if the URL is already in the medialib the current entry will be returned otherwise a new one will be created and returned.

Todo:
rename to something better?
Parameters:
session The medialib session to be used for the transaction.
url URL to add/retrieve from the medialib
error If an error occurs, it will be stored in there.
Returns:
Entry mapped to the URL

Definition at line 1020 of file medialib.c.

Referenced by xmms_medialib_init().

xmms_medialib_entry_t xmms_medialib_entry_new_encoded ( xmms_medialib_session_t session,
const char *  url,
xmms_error_t error 
)

Definition at line 964 of file medialib.c.

Referenced by xmms_medialib_entry_new(), and xmms_playlist_add_url().

xmms_object_cmd_value_t* xmms_medialib_entry_property_get_cmd_value ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry,
const gchar *  property 
)

Definition at line 518 of file medialib.c.

gint xmms_medialib_entry_property_get_int ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry,
const gchar *  property 
)

Retrieve a property as a int from a entry.

Parameters:
session The medialib session to be used for the transaction.
entry Entry to query.
property The property to extract. Strings passed should be defined in medialib.h
Returns:
Property as integer, or -1 if it doesn't exist.

Definition at line 577 of file medialib.c.

gchar* xmms_medialib_entry_property_get_str ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry,
const gchar *  property 
)

Retrieve a property from an entry.

Parameters:
session The medialib session to be used for the transaction.
entry Entry to query.
property The property to extract. Strings passed should be defined in medialib.h
Returns:
Newly allocated gchar that needs to be freed with g_free

Definition at line 550 of file medialib.c.

Referenced by get_url_for_entry().

gboolean xmms_medialib_entry_property_set_int ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry,
const gchar *  property,
gint  value 
)

Set a entry property to a new value, overwriting the old value.

Parameters:
session The medialib session to be used for the transaction.
entry Entry to alter.
property The property to extract. Strings passed should be defined in medialib.h
value gint with the new value, will be copied in to the medialib
Returns:
TRUE on success and FALSE on failure.

Definition at line 605 of file medialib.c.

Referenced by xmms_sample_converter_to_medialib().

gboolean xmms_medialib_entry_property_set_int_source ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry,
const gchar *  property,
gint  value,
guint32  source 
)

Definition at line 616 of file medialib.c.

Referenced by xmms_medialib_entry_property_set_int().

gboolean xmms_medialib_entry_property_set_str ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry,
const gchar *  property,
const gchar *  value 
)

Set a entry property to a new value, overwriting the old value.

Parameters:
session The medialib session to be used for the transaction.
entry Entry to alter.
property The property to extract. Strings passed should be defined in medialib.h
value gchar with the new value, will be copied in to the medialib
Returns:
TRUE on success and FALSE on failure.

Definition at line 646 of file medialib.c.

Referenced by xmms_sample_converter_to_medialib().

gboolean xmms_medialib_entry_property_set_str_source ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry,
const gchar *  property,
const gchar *  value,
guint32  source 
)

Definition at line 657 of file medialib.c.

Referenced by xmms_medialib_entry_property_set_str().

void xmms_medialib_entry_remove ( xmms_medialib_entry_t  entry  ) 

Remove a medialib entry from the database.

Parameters:
session The medialib session to be used for the transaction.
entry Entry to remove

Todo:
safe ?

Definition at line 723 of file medialib.c.

void xmms_medialib_entry_send_added ( xmms_medialib_entry_t  entry  ) 

Trigger an added siginal to the client.

This should be called when a new entry has been added to the medialib

Parameters:
entry Entry to siginal an add for.

Definition at line 704 of file medialib.c.

Referenced by xmms_medialib_entry_new_encoded().

void xmms_medialib_entry_send_update ( xmms_medialib_entry_t  entry  ) 

Trigger a update signal to the client.

This should be called when important information in the entry has been changed and should be visible to the user.

Parameters:
entry Entry to signal a update for.

Definition at line 690 of file medialib.c.

Referenced by xmms_medialib_property_remove().

GList* xmms_medialib_entry_to_list ( xmms_medialib_session_t session,
xmms_medialib_entry_t  entry 
)

Convert a entry and all properties to a hashtable that could be feed to the client or somewhere else in the daemon.

Parameters:
session The medialib session to be used for the transaction.
entry Entry to convert.
Returns:
Newly allocated hashtable with newly allocated strings make sure to free them all.

Definition at line 1080 of file medialib.c.

Referenced by xmms_medialib_info().

GList* xmms_medialib_info ( xmms_medialib_t medialib,
guint32  id,
xmms_error_t err 
)

Definition at line 1113 of file medialib.c.

xmms_medialib_t* xmms_medialib_init ( xmms_playlist_t playlist  ) 

Initialize the medialib and open the database file.

Parameters:
playlist the current playlist pointer
Returns:
TRUE if successful and FALSE if there was a problem

Create a global session, this is only used when the sqlite version doesn't support concurrent sessions

this dummy just wants to put the default song in the playlist

Definition at line 303 of file medialib.c.

Referenced by xmms_playlist_init().

void xmms_medialib_property_remove ( xmms_medialib_t medialib,
guint32  entry,
gchar *  source,
gchar *  key,
xmms_error_t error 
)

Definition at line 1246 of file medialib.c.

GList* xmms_medialib_select ( xmms_medialib_session_t session,
const gchar *  query,
xmms_error_t error 
)

Get a list of GHashTables 's that matches the query.

Parameters:
session The medialib session to be used for the transaction.
query SQL query that should be executed.
error In case of error this will be filled.
Returns:
GList containing GHashTables. Caller are responsible to free all memory.

Definition at line 1286 of file medialib.c.

Referenced by xmms_collection_dag_restore(), xmms_collection_dag_save(), and xmms_collection_query_infos().

guint32 xmms_medialib_source_to_id ( xmms_medialib_session_t session,
const gchar *  source 
)

Definition at line 252 of file medialib.c.

Referenced by xmms_medialib_property_remove().


Generated on Wed Dec 10 18:06:45 2008 for XMMS2 by  doxygen 1.5.6