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, or that entries have been added to or removed from 00034 * the queue. PLAYLIST_UPDATE_METADATA means that new metadata has been read 00035 * for some entries, or that the title or filename of a playlist has changed, 00036 * and implies PLAYLIST_UPDATE_SELECTION. PLAYLIST_UPDATE_STRUCTURE covers any 00037 * change not listed under the other types, and implies both 00038 * PLAYLIST_UPDATE_SELECTION and 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_FORMATTED_TITLE, 00060 PLAYLIST_SORT_SCHEMES}; 00061 00062 #define PlaylistFilenameCompareFunc PlaylistStringCompareFunc /* deprecated */ 00063 typedef gint (* PlaylistStringCompareFunc) (const gchar * a, const gchar * b); 00064 typedef gint (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b); 00065 00066 #define AUD_API_NAME PlaylistAPI 00067 #define AUD_API_SYMBOL playlist_api 00068 00069 #ifdef _AUDACIOUS_CORE 00070 00071 #include "api-local-begin.h" 00072 #include "playlist-api.h" 00073 #include "api-local-end.h" 00074 00075 /* playlist-files.c */ 00076 gboolean playlist_load (const gchar * filename, gchar * * title, 00077 struct index * * filenames, struct index * * tuples); 00078 gboolean playlist_insert_playlist_raw (gint list, gint at, 00079 const gchar * filename); 00080 00081 /* playlist-new.c */ 00082 void playlist_init (void); 00083 void playlist_end (void); 00084 void playlist_load_state (void); 00085 void playlist_save_state (void); 00086 00087 void playlist_reformat_titles (void); 00088 00089 void playlist_entry_insert_batch_raw (gint playlist, gint at, 00090 struct index * filenames, struct index * tuples, struct index * decoders); 00091 void playlist_entry_set_tuple (gint playlist, gint entry, Tuple * tuple); 00092 00093 gboolean playlist_entry_is_segmented (gint playlist, gint entry); 00094 gint playlist_entry_get_start_time (gint playlist, gint entry); 00095 gint playlist_entry_get_end_time (gint playlist, gint entry); 00096 00097 gboolean playlist_prev_song (gint playlist); 00098 gboolean playlist_next_song (gint playlist, gboolean repeat); 00099 00100 /* playlist-utils.c */ 00101 void save_playlists (void); 00102 void load_playlists (void); 00103 00104 #else 00105 00106 #include <audacious/api-define-begin.h> 00107 #include <audacious/playlist-api.h> 00108 #include <audacious/api-define-end.h> 00109 00110 #include <audacious/api-alias-begin.h> 00111 #include <audacious/playlist-api.h> 00112 #include <audacious/api-alias-end.h> 00113 00114 #endif 00115 00116 #undef AUD_API_NAME 00117 #undef AUD_API_SYMBOL 00118 00119 #endif 00120 00121 #ifdef AUD_API_DECLARE 00122 00123 #define AUD_API_NAME PlaylistAPI 00124 #define AUD_API_SYMBOL playlist_api 00125 00126 #include "api-define-begin.h" 00127 #include "playlist-api.h" 00128 #include "api-define-end.h" 00129 00130 #include "api-declare-begin.h" 00131 #include "playlist-api.h" 00132 #include "api-declare-end.h" 00133 00134 #undef AUD_API_NAME 00135 #undef AUD_API_SYMBOL 00136 00137 #endif