XMMS2
xmms_medialib.h
Go to the documentation of this file.
1 /* XMMS2 - X Music Multiplexer System
2  * Copyright (C) 2003-2011 XMMS2 Team
3  *
4  * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!!
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  */
16 
17 
18 
19 
20 #ifndef __XMMS_MEDIALIB_H__
21 #define __XMMS_MEDIALIB_H__
22 
23 
24 #include <glib.h>
25 #include <xmms/xmms_object.h>
26 
27 #define XMMS_MEDIALIB_ENTRY_PROPERTY_MIME "mime"
28 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ID "id"
29 #define XMMS_MEDIALIB_ENTRY_PROPERTY_URL "url"
30 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ARTIST "artist"
31 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ALBUM "album"
32 #define XMMS_MEDIALIB_ENTRY_PROPERTY_TITLE "title"
33 #define XMMS_MEDIALIB_ENTRY_PROPERTY_YEAR "date"
34 #define XMMS_MEDIALIB_ENTRY_PROPERTY_TRACKNR "tracknr"
35 #define XMMS_MEDIALIB_ENTRY_PROPERTY_GENRE "genre"
36 #define XMMS_MEDIALIB_ENTRY_PROPERTY_BITRATE "bitrate"
37 #define XMMS_MEDIALIB_ENTRY_PROPERTY_COMMENT "comment"
38 #define XMMS_MEDIALIB_ENTRY_PROPERTY_COMMENT_LANG "commentlang"
39 #define XMMS_MEDIALIB_ENTRY_PROPERTY_DURATION "duration"
40 #define XMMS_MEDIALIB_ENTRY_PROPERTY_CHANNEL "channel"
41 #define XMMS_MEDIALIB_ENTRY_PROPERTY_CHANNELS "channels"
42 #define XMMS_MEDIALIB_ENTRY_PROPERTY_SAMPLE_FMT "sample_format"
43 #define XMMS_MEDIALIB_ENTRY_PROPERTY_SAMPLERATE "samplerate"
44 #define XMMS_MEDIALIB_ENTRY_PROPERTY_LMOD "lmod"
45 #define XMMS_MEDIALIB_ENTRY_PROPERTY_GAIN_TRACK "gain_track"
46 #define XMMS_MEDIALIB_ENTRY_PROPERTY_GAIN_ALBUM "gain_album"
47 #define XMMS_MEDIALIB_ENTRY_PROPERTY_PEAK_TRACK "peak_track"
48 #define XMMS_MEDIALIB_ENTRY_PROPERTY_PEAK_ALBUM "peak_album"
49 /** Indicates that this album is a compilation */
50 #define XMMS_MEDIALIB_ENTRY_PROPERTY_COMPILATION "compilation"
51 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ALBUM_ID "album_id"
52 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ARTIST_ID "artist_id"
53 #define XMMS_MEDIALIB_ENTRY_PROPERTY_TRACK_ID "track_id"
54 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ADDED "added"
55 #define XMMS_MEDIALIB_ENTRY_PROPERTY_BPM "bpm"
56 #define XMMS_MEDIALIB_ENTRY_PROPERTY_LASTSTARTED "laststarted"
57 #define XMMS_MEDIALIB_ENTRY_PROPERTY_SIZE "size"
58 #define XMMS_MEDIALIB_ENTRY_PROPERTY_IS_VBR "isvbr"
59 #define XMMS_MEDIALIB_ENTRY_PROPERTY_SUBTUNES "subtunes"
60 #define XMMS_MEDIALIB_ENTRY_PROPERTY_CHAIN "chain"
61 #define XMMS_MEDIALIB_ENTRY_PROPERTY_TIMESPLAYED "timesplayed"
62 #define XMMS_MEDIALIB_ENTRY_PROPERTY_PARTOFSET "partofset"
63 #define XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT "picture_front"
64 #define XMMS_MEDIALIB_ENTRY_PROPERTY_PICTURE_FRONT_MIME "picture_front_mime"
65 #define XMMS_MEDIALIB_ENTRY_PROPERTY_STARTMS "startms"
66 #define XMMS_MEDIALIB_ENTRY_PROPERTY_STOPMS "stopms"
67 #define XMMS_MEDIALIB_ENTRY_PROPERTY_STATUS "status"
68 #define XMMS_MEDIALIB_ENTRY_PROPERTY_DESCRIPTION "description"
69 #define XMMS_MEDIALIB_ENTRY_PROPERTY_GROUPING "grouping"
70 #define XMMS_MEDIALIB_ENTRY_PROPERTY_PERFORMER "performer"
71 #define XMMS_MEDIALIB_ENTRY_PROPERTY_CONDUCTOR "conductor"
72 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ARRANGER "arranger"
73 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ORIGINAL_ARTIST "original_artist"
74 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ALBUM_ARTIST "album_artist"
75 #define XMMS_MEDIALIB_ENTRY_PROPERTY_PUBLISHER "publisher"
76 #define XMMS_MEDIALIB_ENTRY_PROPERTY_COMPOSER "composer"
77 #define XMMS_MEDIALIB_ENTRY_PROPERTY_ASIN "asin"
78 #define XMMS_MEDIALIB_ENTRY_PROPERTY_COPYRIGHT "copyright"
79 #define XMMS_MEDIALIB_ENTRY_PROPERTY_WEBSITE_ARTIST "website_artist"
80 #define XMMS_MEDIALIB_ENTRY_PROPERTY_WEBSITE_FILE "website_file"
81 #define XMMS_MEDIALIB_ENTRY_PROPERTY_WEBSITE_PUBLISHER "website_publisher"
82 #define XMMS_MEDIALIB_ENTRY_PROPERTY_WEBSITE_COPYRIGHT "website_copyright"
83 
84 G_BEGIN_DECLS
85 
86 typedef gint32 xmms_medialib_entry_t;
87 typedef struct xmms_medialib_session_St xmms_medialib_session_t;
88 
90 
92 gchar *xmms_medialib_entry_property_get_str (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property);
93 gint xmms_medialib_entry_property_get_int (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property);
94 gboolean xmms_medialib_entry_property_set_str (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, const gchar *value);
95 gboolean xmms_medialib_entry_property_set_int (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, gint value);
98 gchar *xmms_medialib_url_encode (const gchar *path);
99 
100 #define xmms_medialib_begin() _xmms_medialib_begin(FALSE, __FILE__, __LINE__)
101 #define xmms_medialib_begin_write() _xmms_medialib_begin(TRUE, __FILE__, __LINE__)
102 
103 xmms_medialib_session_t * _xmms_medialib_begin (gboolean write, const char *file, int line);
105 
106 #define xmms_medialib_entry_status_set(session, e, st) xmms_medialib_entry_property_set_int_source(session, e, XMMS_MEDIALIB_ENTRY_PROPERTY_STATUS, st, 1) /** @todo: hardcoded server id might be bad? */
107 
108 G_END_DECLS
109 
110 #endif /* __XMMS_MEDIALIB_H__ */
xmms_medialib_session_t * _xmms_medialib_begin(gboolean write, const char *file, int line)
Session handling.
Definition: medialib.c:385
G_BEGIN_DECLS typedef gint32 xmms_medialib_entry_t
Definition: xmms_medialib.h:86
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.
Definition: medialib.c:543
struct xmmsv_St xmmsv_t
Definition: xmmsv_general.h:48
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.
Definition: medialib.c:621
xmmsv_t * xmms_medialib_entry_property_get_value(xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property)
Definition: medialib.c:484
struct xmms_medialib_session_St xmms_medialib_session_t
Definition: xmms_medialib.h:87
void xmms_medialib_entry_send_added(xmms_medialib_entry_t entry)
Trigger an added siginal to the client.
Definition: medialib.c:688
void xmms_medialib_entry_send_update(xmms_medialib_entry_t entry)
Trigger a update signal to the client.
Definition: medialib.c:674
gchar * xmms_medialib_url_encode(const gchar *path)
Definition: medialib.c:1523
G_BEGIN_DECLS struct xmms_error_St xmms_error_t
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.
Definition: medialib.c:571
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.
Definition: medialib.c:1008
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.
Definition: medialib.c:516
void xmms_medialib_end(xmms_medialib_session_t *session)
Definition: medialib.c:425