aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/directory.c161
-rw-r--r--src/directory.h10
2 files changed, 55 insertions, 116 deletions
diff --git a/src/directory.c b/src/directory.c
index fb604c9d0..b4b021078 100644
--- a/src/directory.c
+++ b/src/directory.c
@@ -31,22 +31,13 @@
#include "volume.h"
#include "mpd_types.h"
#include "sig_handlers.h"
-#include "player.h"
#include "list.h"
#include "dbUtils.h"
#include "tagTracker.h"
-#include <string.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
#include <sys/wait.h>
-#include <sys/stat.h>
#include <dirent.h>
-#include <unistd.h>
-#include <stdio.h>
#include <errno.h>
-#include <signal.h>
#include <assert.h>
#include <libgen.h>
@@ -77,39 +68,39 @@ volatile int directory_reReadDB = 0;
volatile mpd_uint16 directory_updateJobId = 0;
-DirectoryList * newDirectoryList();
+static DirectoryList * newDirectoryList();
-int addToDirectory(Directory * directory, char * shortname, char * name);
+static int addToDirectory(Directory * directory, char * shortname, char * name);
-void freeDirectoryList(DirectoryList * list);
+static void freeDirectoryList(DirectoryList * list);
-void freeDirectory(Directory * directory);
+static void freeDirectory(Directory * directory);
-int exploreDirectory(Directory * directory);
+static int exploreDirectory(Directory * directory);
-int updateDirectory(Directory * directory);
+static int updateDirectory(Directory * directory);
-void deleteEmptyDirectoriesInDirectory(Directory * directory);
+static void deleteEmptyDirectoriesInDirectory(Directory * directory);
-void removeSongFromDirectory(Directory * directory, char * shortname);
+static void removeSongFromDirectory(Directory * directory, char * shortname);
-int addSubDirectoryToDirectory(Directory * directory, char * shortname,
+static int addSubDirectoryToDirectory(Directory * directory, char * shortname,
char * name, struct stat * st);
-Directory * getDirectoryDetails(char * name, char ** shortname);
+static Directory * getDirectoryDetails(char * name, char ** shortname);
-Directory * getDirectory(char * name);
+static Directory * getDirectory(char * name);
-Song * getSongDetails(char * file, char ** shortnameRet,
+static Song * getSongDetails(char * file, char ** shortnameRet,
Directory ** directoryRet);
-int updatePath(char * utf8path);
+static int updatePath(char * utf8path);
-void sortDirectory(Directory * directory);
+static void sortDirectory(Directory * directory);
-int inodeFoundInParent(Directory * parent, ino_t inode, dev_t device);
+static int inodeFoundInParent(Directory * parent, ino_t inode, dev_t device);
-int statDirectory(Directory * dir);
+static int statDirectory(Directory * dir);
static char * getDbFile() {
ConfigParam * param = parseConfigFilePath(CONF_DB_FILE, 1);
@@ -120,7 +111,7 @@ static char * getDbFile() {
return param->value;
}
-void clearUpdatePid() {
+static void clearUpdatePid() {
directory_updatePid = 0;
}
@@ -177,17 +168,17 @@ int updateInit(FILE * fp, List * pathList) {
even get a chance to assign directory_updatePID */
blockSignals();
directory_updatePid = fork();
- if(directory_updatePid==0) {
- /* child */
- int dbUpdated = 0;
+ if(directory_updatePid==0) {
+ /* child */
+ int dbUpdated = 0;
/* clearPlayerPid(); */
-
+
unblockSignals();
finishSigHandlers();
- closeAllListenSockets();
- freeAllInterfaces();
- finishPlaylist();
+ closeAllListenSockets();
+ freeAllInterfaces();
+ finishPlaylist();
finishVolume();
if(pathList) {
@@ -195,7 +186,7 @@ int updateInit(FILE * fp, List * pathList) {
while(node) {
switch(updatePath(node->key)) {
- case 1:
+ case 1:
dbUpdated = 1;
break;
case 0:
@@ -240,19 +231,19 @@ int updateInit(FILE * fp, List * pathList) {
return 0;
}
-DirectoryStat * newDirectoryStat(struct stat * st) {
+static DirectoryStat * newDirectoryStat(struct stat * st) {
DirectoryStat * ret = malloc(sizeof(DirectoryStat));
ret->inode = st->st_ino;
ret->device = st->st_dev;
return ret;
}
-void freeDirectoryStatFromDirectory(Directory * dir) {
+static void freeDirectoryStatFromDirectory(Directory * dir) {
if(dir->stat) free(dir->stat);
dir->stat = NULL;
}
-Directory * newDirectory(char * dirname, Directory * parent) {
+static Directory * newDirectory(char * dirname, Directory * parent) {
Directory * directory;
directory = malloc(sizeof(Directory));
@@ -267,7 +258,7 @@ Directory * newDirectory(char * dirname, Directory * parent) {
return directory;
}
-void freeDirectory(Directory * directory) {
+static void freeDirectory(Directory * directory) {
freeDirectoryList(directory->subDirectories);
freeSongList(directory->songs);
if(directory->path) free(directory->path);
@@ -277,15 +268,15 @@ void freeDirectory(Directory * directory) {
/*getDirectoryPath(NULL);*/
}
-DirectoryList * newDirectoryList() {
+static DirectoryList * newDirectoryList() {
return makeList((ListFreeDataFunc *)freeDirectory, 1);
}
-void freeDirectoryList(DirectoryList * directoryList) {
+static void freeDirectoryList(DirectoryList * directoryList) {
freeList(directoryList);
}
-void removeSongFromDirectory(Directory * directory, char * shortname) {
+static void removeSongFromDirectory(Directory * directory, char * shortname) {
void * song;
if(findInList(directory->songs,shortname,&song)) {
@@ -294,7 +285,7 @@ void removeSongFromDirectory(Directory * directory, char * shortname) {
}
}
-void deleteEmptyDirectoriesInDirectory(Directory * directory) {
+static void deleteEmptyDirectoriesInDirectory(Directory * directory) {
ListNode * node = directory->subDirectories->firstNode;
ListNode * nextNode;
Directory * subDir;
@@ -317,7 +308,7 @@ void deleteEmptyDirectoriesInDirectory(Directory * directory) {
0 -> no error, but nothing updated
1 -> no error, and stuff updated
*/
-int updateInDirectory(Directory * directory, char * shortname, char * name) {
+static int updateInDirectory(Directory * directory, char * shortname, char * name) {
void * song;
void * subDir;
struct stat st;
@@ -357,7 +348,7 @@ int updateInDirectory(Directory * directory, char * shortname, char * name) {
0 -> no error, but nothing removed
1 -> no error, and stuff removed
*/
-int removeDeletedFromDirectory(Directory * directory, DIR * dir) {
+static int removeDeletedFromDirectory(Directory * directory, DIR * dir) {
char cwd[2];
struct dirent * ent;
char * dirname = getDirectoryPath(directory);
@@ -431,7 +422,7 @@ int removeDeletedFromDirectory(Directory * directory, DIR * dir) {
return ret;
}
-Directory * addDirectoryPathToDB(char * utf8path, char ** shortname) {
+static Directory * addDirectoryPathToDB(char * utf8path, char ** shortname) {
char * parent;
Directory * parentDirectory;
void * directory;
@@ -476,7 +467,7 @@ Directory * addDirectoryPathToDB(char * utf8path, char ** shortname) {
return (Directory *)directory;
}
-Directory * addParentPathToDB(char * utf8path, char ** shortname) {
+static Directory * addParentPathToDB(char * utf8path, char ** shortname) {
char * parent;
Directory * parentDirectory;
@@ -503,7 +494,7 @@ Directory * addParentPathToDB(char * utf8path, char ** shortname) {
0 -> no error, but nothing updated
1 -> no error, and stuff updated
*/
-int updatePath(char * utf8path) {
+static int updatePath(char * utf8path) {
Directory * directory;
Directory * parentDirectory;
Song * song;
@@ -600,7 +591,7 @@ int updatePath(char * utf8path) {
0 -> no error, but nothing updated
1 -> no error, and stuff updated
*/
-int updateDirectory(Directory * directory) {
+static int updateDirectory(Directory * directory) {
DIR * dir;
char cwd[2];
struct dirent * ent;
@@ -662,7 +653,7 @@ int updateDirectory(Directory * directory) {
0 -> no error, but nothing found
1 -> no error, and stuff found
*/
-int exploreDirectory(Directory * directory) {
+static int exploreDirectory(Directory * directory) {
DIR * dir;
char cwd[2];
struct dirent * ent;
@@ -707,7 +698,7 @@ int exploreDirectory(Directory * directory) {
return ret;
}
-int statDirectory(Directory * dir) {
+static int statDirectory(Directory * dir) {
struct stat st;
if(myStat(getDirectoryPath(dir) ? getDirectoryPath(dir) : "", &st) < 0) {
@@ -719,7 +710,7 @@ int statDirectory(Directory * dir) {
return 0;
}
-int inodeFoundInParent(Directory * parent, ino_t inode, dev_t device) {
+static int inodeFoundInParent(Directory * parent, ino_t inode, dev_t device) {
while(parent) {
if(!parent->stat) {
if(statDirectory(parent) < 0) return -1;
@@ -736,7 +727,7 @@ int inodeFoundInParent(Directory * parent, ino_t inode, dev_t device) {
return 0;
}
-int addSubDirectoryToDirectory(Directory * directory, char * shortname,
+static int addSubDirectoryToDirectory(Directory * directory, char * shortname,
char * name, struct stat * st)
{
Directory * subDirectory;
@@ -757,7 +748,7 @@ int addSubDirectoryToDirectory(Directory * directory, char * shortname,
return 1;
}
-int addToDirectory(Directory * directory, char * shortname, char * name) {
+static int addToDirectory(Directory * directory, char * shortname, char * name) {
struct stat st;
if(myStat(name, &st)) {
@@ -788,7 +779,7 @@ void closeMp3Directory() {
destroyTagTracker();
}
-Directory * findSubDirectory(Directory * directory,char * name) {
+static Directory * findSubDirectory(Directory * directory,char * name) {
void * subDirectory;
char * dup = strdup(name);
char * key;
@@ -808,7 +799,7 @@ Directory * findSubDirectory(Directory * directory,char * name) {
return NULL;
}
-Directory * getSubDirectory(Directory * directory, char * name,
+static Directory * getSubDirectory(Directory * directory, char * name,
char ** shortname)
{
Directory * subDirectory;
@@ -829,19 +820,19 @@ Directory * getSubDirectory(Directory * directory, char * name,
return getSubDirectory(subDirectory,&(name[len]),shortname);
}
-Directory * getDirectoryDetails(char * name, char ** shortname) {
+static Directory * getDirectoryDetails(char * name, char ** shortname) {
*shortname = NULL;
return getSubDirectory(mp3rootDirectory,name,shortname);
}
-Directory * getDirectory(char * name) {
+static Directory * getDirectory(char * name) {
char * shortname;
return getSubDirectory(mp3rootDirectory,name,&shortname);
}
-int printDirectoryList(FILE * fp, DirectoryList * directoryList) {
+static int printDirectoryList(FILE * fp, DirectoryList * directoryList) {
ListNode * node = directoryList->firstNode;
Directory * directory;
@@ -870,7 +861,7 @@ int printDirectoryInfo(FILE * fp, char * name) {
return 0;
}
-void writeDirectoryInfo(FILE * fp, Directory * directory) {
+static void writeDirectoryInfo(FILE * fp, Directory * directory) {
ListNode * node = (directory->subDirectories)->firstNode;
Directory * subDirectory;
@@ -894,7 +885,7 @@ void writeDirectoryInfo(FILE * fp, Directory * directory) {
}
}
-void readDirectoryInfo(FILE * fp,Directory * directory) {
+static void readDirectoryInfo(FILE * fp,Directory * directory) {
char buffer[MAXPATHLEN*2];
int bufferSize = MAXPATHLEN*2;
char * key;
@@ -974,7 +965,7 @@ void readDirectoryInfo(FILE * fp,Directory * directory) {
}
}
-void sortDirectory(Directory * directory) {
+static void sortDirectory(Directory * directory) {
ListNode * node = directory->subDirectories->firstNode;
Directory * subDir;
@@ -1176,7 +1167,7 @@ void updateMp3Directory() {
return;
}
-int traverseAllInSubDirectory(FILE * fp, Directory * directory,
+static int traverseAllInSubDirectory(FILE * fp, Directory * directory,
int (*forEachSong)(FILE *, Song *, void *),
int (*forEachDir)(FILE *, Directory *, void *),
void * data)
@@ -1232,7 +1223,7 @@ int traverseAllIn(FILE * fp, char * name,
data);
}
-void freeAllDirectoryStats(Directory * directory) {
+static void freeAllDirectoryStats(Directory * directory) {
ListNode * node = directory->subDirectories->firstNode;
while(node != NULL) {
@@ -1255,7 +1246,7 @@ void initMp3Directory() {
if(stat(getDbFile(),&st)==0) directory_dbModTime = st.st_mtime;
}
-Song * getSongDetails(char * file, char ** shortnameRet,
+static Song * getSongDetails(char * file, char ** shortnameRet,
Directory ** directoryRet)
{
void * song = NULL;
@@ -1302,45 +1293,3 @@ Song * getSongFromDB(char * file) {
time_t getDbModTime() {
return directory_dbModTime;
}
-
-/* pass a NULL to this function to clear the static lastDir, this way
- * if a directory is freed, and then realloced, the wrong name isn't
- * output */
-/*char * getDirectoryPath(Directory * dir) {
- static char * buffer = NULL;
- static int bufferSize = 0;
- static Directory * lastDir = NULL;
- static int pos = 0;
- int dlen;
-
- if(!dir || !dir->name) {
- lastDir = NULL;
- return "";
- }
-
- if(lastDir == dir) return buffer+pos+1;
-
- pos = bufferSize-1;
-
- while(dir && dir->name) {
- dlen = strlen(dir->name);
- // add one for the '/'
- pos -= dlen+1;
- if(pos < 0) {
- buffer = realloc(buffer, bufferSize-pos);
- if(bufferSize) {
- memmove(buffer-pos, buffer, bufferSize);
- }
- bufferSize += -pos;
- buffer[bufferSize-1] = '\0';
- pos = 0;
- }
- strncpy(buffer+pos+1, dir->name, dlen);
- buffer[pos] = '/';
- dir = dir->parent;
- }
-
- lastDir = dir;
-
- return buffer+pos+1;
-}*/
diff --git a/src/directory.h b/src/directory.h
index 8cfed4dbd..037477836 100644
--- a/src/directory.h
+++ b/src/directory.h
@@ -24,9 +24,6 @@
#include "song.h"
#include "list.h"
-#include <stdio.h>
-#include <sys/param.h>
-
typedef List DirectoryList;
typedef struct _DirectoryStat {
@@ -44,8 +41,6 @@ typedef struct _Directory {
void readDirectoryDBIfUpdateIsFinished();
-void clearUpdatePid();
-
int isUpdatingDB();
void directory_sigChldHandler(int pid, int status);
@@ -75,11 +70,6 @@ int traverseAllIn(FILE * fp, char * name,
int (*forEachDir)(FILE *, Directory *, void *),
void * data);
-/* don't free this */
-/*char * getDirectoryPath(Directory * dir);*/
#define getDirectoryPath(dir) ((dir && dir->path) ? dir->path : "")
-/* free the string that is returned */
-char * catDirAndFileName(Directory * dir, char * filename);
-
#endif