From 8fa2084703096e4104c4e7422366a2e10e404891 Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Wed, 14 Apr 2004 02:55:19 +0000 Subject: 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 --- src/directory.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'src/directory.c') 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) { -- cgit v1.2.3