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
84G_BEGIN_DECLS
85
86typedef gint32 xmms_medialib_entry_t;
87typedef struct xmms_medialib_session_St xmms_medialib_session_t;
88
90
92gchar *xmms_medialib_entry_property_get_str (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property);
94gboolean xmms_medialib_entry_property_set_str (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, const gchar *value);
95gboolean xmms_medialib_entry_property_set_int (xmms_medialib_session_t *session, xmms_medialib_entry_t entry, const gchar *property, gint value);
98gchar *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
103xmms_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
108G_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
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
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
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
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
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
void xmms_medialib_entry_send_update(xmms_medialib_entry_t entry)
Trigger a update signal to the client.
Definition: medialib.c:674
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
void xmms_medialib_end(xmms_medialib_session_t *session)
Definition: medialib.c:425
void xmms_medialib_entry_send_added(xmms_medialib_entry_t entry)
Trigger an added siginal to the client.
Definition: medialib.c:688
struct xmmsv_St xmmsv_t
Definition: xmmsv_general.h:48
struct xmms_medialib_session_St xmms_medialib_session_t
Definition: xmms_medialib.h:87
gchar * xmms_medialib_url_encode(const gchar *path)
Definition: medialib.c:1523
G_BEGIN_DECLS typedef gint32 xmms_medialib_entry_t
Definition: xmms_medialib.h:86
G_BEGIN_DECLS struct xmms_error_St xmms_error_t