diff options
author | Max Kellermann <max@duempel.org> | 2009-01-19 18:51:57 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-01-19 18:51:57 +0100 |
commit | 145ab84d51f262983412143fbb29487a8647adb3 (patch) | |
tree | 8fc58be92be2178c86484caca17fae23535e8fad /src/sticker.h | |
parent | fbed96dcea00db7c2f5044929caebfc06684ea15 (diff) | |
download | mpd-145ab84d51f262983412143fbb29487a8647adb3.tar.gz mpd-145ab84d51f262983412143fbb29487a8647adb3.tar.xz mpd-145ab84d51f262983412143fbb29487a8647adb3.zip |
sticker: new library for storing dynamic information about songs
"Stickers" are pieces of information attached to existing MPD objects
(e.g. song files, directories, albums). Clients can create arbitrary
name/value pairs. MPD itself does not assume any special meaning in
them.
Diffstat (limited to 'src/sticker.h')
-rw-r--r-- | src/sticker.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/src/sticker.h b/src/sticker.h new file mode 100644 index 000000000..ab3a35572 --- /dev/null +++ b/src/sticker.h @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2003-2009 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +/* + * This is the sticker database library. It is the backend of all the + * sticker code in MPD. + * + * "Stickers" are pieces of information attached to existing MPD + * objects (e.g. song files, directories, albums). Clients can create + * arbitrary name/value pairs. MPD itself does not assume any special + * meaning in them. + * + * The goal is to allow clients to share additional (possibly dynamic) + * information about songs, which is neither stored on the client (not + * available to other clients), nor stored in the song files (MPD has + * no write access). + * + * Client developers should create a standard for common sticker + * names, to ensure interoperability. + * + * Examples: song ratings; statistics; deferred tag writes; lyrics; + * ... + * + */ + +#ifndef STICKER_H +#define STICKER_H + +#include <stdbool.h> + +/** + * Opens the sticker database (if path is not NULL). + */ +void +sticker_global_init(const char *path); + +/** + * Close the sticker database. + */ +void +sticker_global_finish(void); + +/** + * Returns true if the sticker database is configured and available. + */ +bool +sticker_enabled(void); + +/** + * Returns one value from an object's sticker record. The caller must + * free the return value with g_free(). + */ +char * +sticker_load_value(const char *type, const char *uri, const char *name); + +/** + * Sets a sticker value in the specified object. Overwrites existing + * values. + */ +bool +sticker_store_value(const char *type, const char *uri, + const char *name, const char *value); + +/** + * Deletes a sticker from the database. All sticker values of the + * specified object are deleted. + */ +bool +sticker_delete(const char *type, const char *uri); + +#endif |