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
This commit is contained in:
Warren Dukes 2004-04-14 02:55:19 +00:00
parent 32b62ade7b
commit 8fa2084703
1 changed files with 20 additions and 8 deletions

View File

@ -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) {