void playlist_vector_update_or_add(struct playlist_vector *pv, const char *name, time_t mtime) { struct playlist_metadata **pmp = playlist_vector_find_p(pv, name); if (pmp != NULL) { struct playlist_metadata *pm = *pmp; pm->mtime = mtime; } else playlist_vector_add(pv, name, mtime); }
bool playlist_vector_remove(struct playlist_vector *pv, const char *name) { struct playlist_metadata **pmp = playlist_vector_find_p(pv, name); if (pmp == NULL) return false; struct playlist_metadata *pm = *pmp; *pmp = pm->next; playlist_metadata_free(pm); return true; }
bool playlist_vector_update_or_add(struct playlist_vector *pv, const char *name, time_t mtime) { struct playlist_metadata **pmp = playlist_vector_find_p(pv, name); if (pmp != NULL) { struct playlist_metadata *pm = *pmp; if (mtime == pm->mtime) return false; pm->mtime = mtime; } else playlist_vector_add(pv, name, mtime); return true; }
struct playlist_metadata * playlist_vector_find(struct playlist_vector *pv, const char *name) { struct playlist_metadata **pmp = playlist_vector_find_p(pv, name); return pmp != NULL ? *pmp : NULL; }