Audacious
$Id:Doxyfile42802007-03-2104:39:00Znenolod$
|
00001 /* 00002 * playlist.h 00003 * Copyright 2010 John Lindgren 00004 * 00005 * This file is part of Audacious. 00006 * 00007 * Audacious is free software: you can redistribute it and/or modify it under 00008 * the terms of the GNU General Public License as published by the Free Software 00009 * Foundation, version 2 or version 3 of the License. 00010 * 00011 * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY 00012 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 00013 * A PARTICULAR PURPOSE. See the GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License along with 00016 * Audacious. If not, see <http://www.gnu.org/licenses/>. 00017 * 00018 * The Audacious team does not consider modular code linking to Audacious or 00019 * using our public API to be a derived work. 00020 */ 00021 00022 #ifndef AUDACIOUS_PLAYLIST_H 00023 #define AUDACIOUS_PLAYLIST_H 00024 00025 #include <glib.h> 00026 #include <audacious/api.h> 00027 #include <audacious/types.h> 00028 #include <libaudcore/index.h> 00029 #include <libaudcore/tuple.h> 00030 00031 /* The values which can be passed (packed into a pointer) to the "playlist 00032 * update" hook. PLAYLIST_UPDATE_SELECTION means that entries have been 00033 * selected or unselected, entries have been added or removed from the queue, 00034 * or that the current song has changed. PLAYLIST_UPDATE_METADATA means that 00035 * new metadata has been read for some entries, and implies 00036 * PLAYLIST_UPDATE_SELECTION. PLAYLIST_UPDATE_STRUCTURE covers any change not 00037 * listed under the other types, and implies both PLAYLIST_UPDATE_SELECTION and 00038 * PLAYLIST_UPDATE_METADATA. */ 00039 enum { 00040 PLAYLIST_UPDATE_SELECTION, 00041 PLAYLIST_UPDATE_METADATA, 00042 PLAYLIST_UPDATE_STRUCTURE, 00043 PLAYLIST_UPDATE_TYPES}; 00044 00045 /* The values which can be passed to playlist_sort_by_scheme(), 00046 * playlist_sort_selected_by_scheme(), and 00047 * playlist_remove_duplicates_by_scheme(). PLAYLIST_SORT_PATH means the entire 00048 * URI of a song file; PLAYLIST_SORT_FILENAME means the portion after the last 00049 * "/" (forward slash). PLAYLIST_SORT_DATE means the song's release date (not 00050 * the file's modification time). */ 00051 enum { 00052 PLAYLIST_SORT_PATH, 00053 PLAYLIST_SORT_FILENAME, 00054 PLAYLIST_SORT_TITLE, 00055 PLAYLIST_SORT_ALBUM, 00056 PLAYLIST_SORT_ARTIST, 00057 PLAYLIST_SORT_DATE, 00058 PLAYLIST_SORT_TRACK, 00059 PLAYLIST_SORT_SCHEMES}; 00060 00061 typedef gint (* PlaylistFilenameCompareFunc) (const gchar * a, const gchar * b); 00062 typedef gint (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b); 00063 00064 #define AUD_API_NAME PlaylistAPI 00065 #define AUD_API_SYMBOL playlist_api 00066 00067 #ifdef _AUDACIOUS_CORE 00068 00069 #include "api-local-begin.h" 00070 #include "playlist-api.h" 00071 #include "api-local-end.h" 00072 00073 /* playlist-new.c */ 00074 void playlist_init (void); 00075 void playlist_end (void); 00076 void playlist_load_state (void); 00077 void playlist_save_state (void); 00078 00079 void playlist_reformat_titles (void); 00080 00081 InputPlugin * playlist_entry_get_decoder (gint playlist, gint entry); 00082 void playlist_entry_set_tuple (gint playlist, gint entry, Tuple * tuple); 00083 00084 gboolean playlist_entry_is_segmented (gint playlist, gint entry); 00085 gint playlist_entry_get_start_time (gint playlist, gint entry); 00086 gint playlist_entry_get_end_time (gint playlist, gint entry); 00087 00088 gboolean playlist_prev_song (gint playlist); 00089 gboolean playlist_next_song (gint playlist, gboolean repeat); 00090 00091 /* playlist-utils.c */ 00092 void save_playlists (void); 00093 void load_playlists (void); 00094 00095 #else 00096 00097 #include <audacious/api-define-begin.h> 00098 #include <audacious/playlist-api.h> 00099 #include <audacious/api-define-end.h> 00100 00101 #include <audacious/api-alias-begin.h> 00102 #include <audacious/playlist-api.h> 00103 #include <audacious/api-alias-end.h> 00104 00105 #endif 00106 00107 #undef AUD_API_NAME 00108 #undef AUD_API_SYMBOL 00109 00110 #endif 00111 00112 #ifdef AUD_API_DECLARE 00113 00114 #define AUD_API_NAME PlaylistAPI 00115 #define AUD_API_SYMBOL playlist_api 00116 00117 #include "api-define-begin.h" 00118 #include "playlist-api.h" 00119 #include "api-define-end.h" 00120 00121 #include "api-declare-begin.h" 00122 #include "playlist-api.h" 00123 #include "api-declare-end.h" 00124 00125 #undef AUD_API_NAME 00126 #undef AUD_API_SYMBOL 00127 00128 #endif