sticker: added song sticker library
This is a wrapper for the backend sticker library. It provides several glue functions which take a song object instead of type/uri.
This commit is contained in:
		| @@ -97,6 +97,7 @@ mpd_headers = \ | ||||
| 	song.h \ | ||||
| 	song_print.h \ | ||||
| 	song_save.h \ | ||||
| 	song_sticker.h \ | ||||
| 	songvec.h \ | ||||
| 	state_file.h \ | ||||
| 	stats.h \ | ||||
| @@ -194,7 +195,7 @@ mpd_SOURCES = \ | ||||
| 	timer.c | ||||
|  | ||||
| if ENABLE_SQLITE | ||||
| mpd_SOURCES += sticker.c | ||||
| mpd_SOURCES += sticker.c song_sticker.c | ||||
| endif | ||||
|  | ||||
| if HAVE_LIBSAMPLERATE | ||||
|   | ||||
							
								
								
									
										73
									
								
								src/song_sticker.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								src/song_sticker.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | ||||
| /* | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| #include "song_sticker.h" | ||||
| #include "song.h" | ||||
| #include "sticker.h" | ||||
|  | ||||
| #include <glib.h> | ||||
|  | ||||
| #include <assert.h> | ||||
|  | ||||
| char * | ||||
| sticker_song_get_value(const struct song *song, const char *name) | ||||
| { | ||||
| 	char *uri, *value; | ||||
|  | ||||
| 	assert(song != NULL); | ||||
| 	assert(song_in_database(song)); | ||||
|  | ||||
| 	uri = song_get_uri(song); | ||||
| 	value = sticker_load_value("song", uri, name); | ||||
| 	g_free(uri); | ||||
|  | ||||
| 	return value; | ||||
| } | ||||
|  | ||||
| bool | ||||
| sticker_song_set_value(const struct song *song, | ||||
| 		       const char *name, const char *value) | ||||
| { | ||||
| 	char *uri; | ||||
| 	bool ret; | ||||
|  | ||||
| 	assert(song != NULL); | ||||
| 	assert(song_in_database(song)); | ||||
|  | ||||
| 	uri = song_get_uri(song); | ||||
| 	ret = sticker_store_value("song", uri, name, value); | ||||
| 	g_free(uri); | ||||
|  | ||||
| 	return ret; | ||||
| } | ||||
|  | ||||
| bool | ||||
| sticker_song_delete(const struct song *song) | ||||
| { | ||||
| 	char *uri; | ||||
| 	bool ret; | ||||
|  | ||||
| 	assert(song != NULL); | ||||
| 	assert(song_in_database(song)); | ||||
|  | ||||
| 	uri = song_get_uri(song); | ||||
| 	ret = sticker_delete("song", uri); | ||||
| 	g_free(uri); | ||||
|  | ||||
| 	return ret; | ||||
| } | ||||
							
								
								
									
										47
									
								
								src/song_sticker.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/song_sticker.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| /* | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| #ifndef SONG_STICKER_H | ||||
| #define SONG_STICKER_H | ||||
|  | ||||
| #include <stdbool.h> | ||||
|  | ||||
| struct song; | ||||
|  | ||||
| /** | ||||
|  * Returns one value from a song's sticker record.  The caller must | ||||
|  * free the return value with g_free(). | ||||
|  */ | ||||
| char * | ||||
| sticker_song_get_value(const struct song *song, const char *name); | ||||
|  | ||||
| /** | ||||
|  * Sets a sticker value in the specified song.  Overwrites existing | ||||
|  * values. | ||||
|  */ | ||||
| bool | ||||
| sticker_song_set_value(const struct song *song, | ||||
| 		       const char *name, const char *value); | ||||
|  | ||||
| /** | ||||
|  * Deletes a sticker from the database.  All values are deleted. | ||||
|  */ | ||||
| bool | ||||
| sticker_song_delete(const struct song *song); | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user
	 Max Kellermann
					Max Kellermann