diff options
author | Eric Wong <normalperson@yhbt.net> | 2008-10-07 03:10:13 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2008-10-07 03:10:13 -0700 |
commit | 38b5be3be82d09342640fa13a64ebd09a7d4a341 (patch) | |
tree | 6c723a2008cea9afe43cb7de071e6e387b139175 /src/dbUtils.c | |
parent | e0aca2dbf9ce1ed3db295f2c4345b231c11d6c64 (diff) | |
parent | 19c6f1ee92cf6514e885def44f7deb9d225de4dc (diff) | |
download | mpd-38b5be3be82d09342640fa13a64ebd09a7d4a341.tar.gz mpd-38b5be3be82d09342640fa13a64ebd09a7d4a341.tar.xz mpd-38b5be3be82d09342640fa13a64ebd09a7d4a341.zip |
Merge branch 'ew/update-thrsafe'
* ew/update-thrsafe:
directory: serialize song deletes from playlist during update
directory: use songvec_for_each for iterators
dbUtils: more cleanups
song: Add song_print_url_x
dbUtils/directory: traverseAllIn forEachSong returns -1 on error
songvec: lock traversals for thread-safe updates/reads
song: add print_song_info_x for iterators tha pass void *
songvec: add songvec_for_each iterator
song: replace printSong* with song_print_*
Assert if we don't have song or song->url set
Diffstat (limited to '')
-rw-r--r-- | src/dbUtils.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/dbUtils.c b/src/dbUtils.c index 246d27385..bd990e96d 100644 --- a/src/dbUtils.c +++ b/src/dbUtils.c @@ -64,13 +64,6 @@ static int printDirectoryInDirectory(Directory * directory, void *data) return 0; } -static int printSongInDirectory(Song * song, mpd_unused void *data) -{ - int fd = (int)(size_t)data; - printSongUrl(fd, song); - return 0; -} - struct search_data { int fd; LocateTagItemArray array; @@ -83,7 +76,7 @@ static int searchInDirectory(Song * song, void *_data) LocateTagItemArray *array = &data->array; if (strstrSearchTags(song, array->numItems, array->items)) - printSongInfo(fd, song); + return (int)song_print_info(song, fd); return 0; } @@ -125,7 +118,7 @@ static int findInDirectory(Song * song, void *_data) LocateTagItemArray *array = &data->array; if (tagItemsFoundAndMatches(song, array->numItems, array->items)) - printSongInfo(fd, song); + return (int)song_print_info(song, fd); return 0; } @@ -181,7 +174,7 @@ int searchStatsForSongsIn(int fd, const char *name, int numItems, int printAllIn(int fd, const char *name) { - return traverseAllIn(name, printSongInDirectory, + return traverseAllIn(name, song_print_url_x, printDirectoryInDirectory, (void*)(size_t)fd); } @@ -217,13 +210,6 @@ int addAllInToStoredPlaylist(const char *name, const char *utf8file) &data); } -static int directoryPrintSongInfo(Song * song, void *data) -{ - int fd = (int)(size_t)data; - - return printSongInfo(fd, song); -} - static int sumSongTime(Song * song, void *data) { unsigned long *sum_time = (unsigned long *)data; @@ -236,7 +222,7 @@ static int sumSongTime(Song * song, void *data) int printInfoForAllIn(int fd, const char *name) { - return traverseAllIn(name, directoryPrintSongInfo, + return traverseAllIn(name, song_print_info_x, printDirectoryInDirectory, (void*)(size_t)fd); } @@ -284,7 +270,7 @@ static void visitTag(int fd, struct strset *set, struct mpd_tag *tag = song->tag; if (tagType == LOCATE_TAG_FILE_TYPE) { - printSongUrl(fd, song); + song_print_url(song, fd); return; } |