aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWarren Dukes <warren.dukes@gmail.com>2004-04-14 02:55:19 +0000
committerWarren Dukes <warren.dukes@gmail.com>2004-04-14 02:55:19 +0000
commit8fa2084703096e4104c4e7422366a2e10e404891 (patch)
treeb1473609951f58e662c9ca06ee55d4f31a9c5052
parent32b62ade7bb0ea58ee4a48822377a868d50c4230 (diff)
downloadmpd-8fa2084703096e4104c4e7422366a2e10e404891.tar.gz
mpd-8fa2084703096e4104c4e7422366a2e10e404891.tar.xz
mpd-8fa2084703096e4104c4e7422366a2e10e404891.zip
pseduo-code for creating new entries in db for incremental update
git-svn-id: https://svn.musicpd.org/mpd/trunk@743 09075e82-0dd4-0310-85a5-a0d7c8717e4f
-rw-r--r--src/directory.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/src/directory.c b/src/directory.c
index 1ddc3af61..fd82f3fb1 100644
--- a/src/directory.c
+++ b/src/directory.c
@@ -363,18 +363,14 @@ int removeDeletedFromDirectory(Directory * directory) {
void updatePath(char * utf8path) {
Directory * directory;
Directory * parentDirectory;
+ Song * song;
char * shortname;
+ DIR * dir;
- /* if path is already in the DB */
- if(NULL==(directory = getDirectoryDetails(utf8path,&shortname,
+ /* if path is in the DB try to update it, or else delete it */
+ if((directory = getDirectoryDetails(utf8path,&shortname,
&parentDirectory)))
{
- Song * song = getSongDetails(utf8path,&shortname,&directory);
- if(song && updateSongInfo(song)<0) {
- removeSongFromDirectory(directory,shortname);
- }
- }
- else {
/* if updateDirectory fials, means we should delete it */
if(updateDirectory(directory)<0 && directory!=mp3rootDirectory)
{
@@ -382,6 +378,22 @@ void updatePath(char * utf8path) {
shortname);
}
}
+ else if((song = getSongDetails(utf8path,&shortname,&parentDirectory))) {
+ if(song && updateSongInfo(song)<0) {
+ removeSongFromDirectory(parentDirectory,shortname);
+ }
+ }
+ /* apth not found in the db, see if it actually exists on the fs */
+ else if((dir = opendir(utf8path))) {
+ closedir(dir);
+ /* create parent/get parent directory */
+ /* create new directory and add to parent */
+ /* explore direcotry */
+ }
+ else if((song = newSong(utf8path))) {
+ /* create parent/get parent directory */
+ /* add song to directory */
+ }
}
int updateDirectory(Directory * directory) {