aboutsummaryrefslogtreecommitdiffstats
path: root/src/directory.h
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-10-08 11:07:35 +0200
committerEric Wong <normalperson@yhbt.net>2008-10-11 19:21:48 -0700
commit729523ec80f35a683c982054628cd47d2161d3d4 (patch)
tree5882104ab6f21ec0e62aa52931bcab257cfe6f76 /src/directory.h
parentf8e2879c37b9ee5953e71456ba777363f7dc30fc (diff)
downloadmpd-729523ec80f35a683c982054628cd47d2161d3d4.tar.gz
mpd-729523ec80f35a683c982054628cd47d2161d3d4.tar.xz
mpd-729523ec80f35a683c982054628cd47d2161d3d4.zip
directory: moved code to database.c
Taming the directory.c monster, part II: move the database management stuff to database. directory.c should only contain code which works on directory objects.
Diffstat (limited to 'src/directory.h')
-rw-r--r--src/directory.h36
1 files changed, 22 insertions, 14 deletions
diff --git a/src/directory.h b/src/directory.h
index 127da678c..84913c036 100644
--- a/src/directory.h
+++ b/src/directory.h
@@ -22,6 +22,15 @@
#include "song.h"
#include "songvec.h"
+#define DIRECTORY_DIR "directory: "
+#define DIRECTORY_MTIME "mtime: " /* DEPRECATED, noop-read-only */
+#define DIRECTORY_BEGIN "begin: "
+#define DIRECTORY_END "end: "
+#define DIRECTORY_INFO_BEGIN "info_begin"
+#define DIRECTORY_INFO_END "info_end"
+#define DIRECTORY_MPD_VERSION "mpd_version: "
+#define DIRECTORY_FS_CHARSET "fs_charset: "
+
struct dirvec {
struct directory **base;
size_t nr;
@@ -37,18 +46,12 @@ struct directory {
unsigned stat; /* not needed if ino_t == dev_t == 0 is impossible */
};
-void directory_init(void);
-
-void directory_finish(void);
-
static inline int isRootDirectory(const char *name)
{
/* TODO: verify and remove !name check */
return (!name || *name == '\0' || !strcmp(name, "/"));
}
-struct directory * directory_get_root(void);
-
struct directory * newDirectory(const char *dirname, struct directory *parent);
void freeDirectory(struct directory *directory);
@@ -58,26 +61,31 @@ static inline int directory_is_empty(struct directory *directory)
return directory->children.nr == 0 && directory->songs.nr == 0;
}
-struct directory * getDirectory(const char *name);
-
-void sortDirectory(struct directory * directory);
-
int printDirectoryInfo(int fd, const char *dirname);
-int checkDirectoryDB(void);
+void deleteEmptyDirectoriesInDirectory(struct directory *directory);
-int writeDirectoryDB(void);
+struct directory *
+getSubDirectory(struct directory *directory, const char *name);
-int readDirectoryDB(void);
+int directory_print(int fd, const struct directory *directory);
struct mpd_song *getSongFromDB(const char *file);
-time_t getDbModTime(void);
+int writeDirectoryInfo(int fd, struct directory *directory);
+
+void readDirectoryInfo(FILE *fp, struct directory *directory);
+
+void sortDirectory(struct directory * directory);
int traverseAllIn(const char *name,
int (*forEachSong) (struct mpd_song *, void *),
int (*forEachDir) (struct directory *, void *), void *data);
+int traverseAllInSubDirectory(struct directory *directory,
+ int (*forEachSong) (struct mpd_song *, void *),
+ int (*forEachDir) (struct directory *, void *), void *data);
+
#define getDirectoryPath(dir) ((dir && dir->path) ? dir->path : "")
#endif