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.h \ | ||||||
| 	song_print.h \ | 	song_print.h \ | ||||||
| 	song_save.h \ | 	song_save.h \ | ||||||
|  | 	song_sticker.h \ | ||||||
| 	songvec.h \ | 	songvec.h \ | ||||||
| 	state_file.h \ | 	state_file.h \ | ||||||
| 	stats.h \ | 	stats.h \ | ||||||
| @@ -194,7 +195,7 @@ mpd_SOURCES = \ | |||||||
| 	timer.c | 	timer.c | ||||||
|  |  | ||||||
| if ENABLE_SQLITE | if ENABLE_SQLITE | ||||||
| mpd_SOURCES += sticker.c | mpd_SOURCES += sticker.c song_sticker.c | ||||||
| endif | endif | ||||||
|  |  | ||||||
| if HAVE_LIBSAMPLERATE | 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