MPD 0.17~git
|
00001 /* 00002 * Copyright (C) 2003-2011 The Music Player Daemon Project 00003 * http://www.musicpd.org 00004 * 00005 * This program is free software; you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation; either version 2 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License along 00016 * with this program; if not, write to the Free Software Foundation, Inc., 00017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00018 */ 00019 00020 #ifndef MPD_PLAYLIST_VECTOR_H 00021 #define MPD_PLAYLIST_VECTOR_H 00022 00023 #include <stdbool.h> 00024 #include <stddef.h> 00025 #include <sys/time.h> 00026 00030 struct playlist_metadata { 00031 struct playlist_metadata *next; 00032 00036 char *name; 00037 00038 time_t mtime; 00039 }; 00040 00041 struct playlist_vector { 00042 struct playlist_metadata *head; 00043 }; 00044 00045 static inline void 00046 playlist_vector_init(struct playlist_vector *pv) 00047 { 00048 pv->head = NULL; 00049 } 00050 00051 void 00052 playlist_vector_deinit(struct playlist_vector *pv); 00053 00054 static inline bool 00055 playlist_vector_is_empty(const struct playlist_vector *pv) 00056 { 00057 return pv->head == NULL; 00058 } 00059 00060 struct playlist_metadata * 00061 playlist_vector_find(struct playlist_vector *pv, const char *name); 00062 00063 void 00064 playlist_vector_add(struct playlist_vector *pv, 00065 const char *name, time_t mtime); 00066 00070 bool 00071 playlist_vector_update_or_add(struct playlist_vector *pv, 00072 const char *name, time_t mtime); 00073 00074 bool 00075 playlist_vector_remove(struct playlist_vector *pv, const char *name); 00076 00077 #endif /* SONGVEC_H */