aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/command.c5
-rw-r--r--src/directory.c11
2 files changed, 13 insertions, 3 deletions
diff --git a/src/command.c b/src/command.c
index 4259b58e7..f61cb7630 100644
--- a/src/command.c
+++ b/src/command.c
@@ -165,6 +165,7 @@ int commandStatus(FILE * fp, unsigned int * permission, int argArrayLength,
char ** argArray)
{
char * state = NULL;
+ int updateJobId;
playPlaylistIfPlayerStopped();
switch(getPlayerState()) {
@@ -194,7 +195,9 @@ int commandStatus(FILE * fp, unsigned int * permission, int argArrayLength,
myfprintf(fp,"%s: %u:%i:%i\n",COMMAND_STATUS_AUDIO,getPlayerSampleRate(),getPlayerBits(),getPlayerChannels());
}
- if(isUpdatingDB()) myfprintf(fp,"%s: 1\n",COMMAND_STATUS_UPDATING_DB);
+ if((updateJobId = isUpdatingDB())) {
+ myfprintf(fp,"%s: %i\n",COMMAND_STATUS_UPDATING_DB,updateJobId);
+ }
if(getPlayerError()!=PLAYER_ERROR_NOERROR) {
myfprintf(fp,"%s: %s\n",COMMAND_STATUS_ERROR,getPlayerErrorStr());
diff --git a/src/directory.c b/src/directory.c
index 7ecc5bd62..17d91631c 100644
--- a/src/directory.c
+++ b/src/directory.c
@@ -29,6 +29,7 @@
#include "listen.h"
#include "interface.h"
#include "volume.h"
+#include "mpd_types.h"
#include <string.h>
#include <sys/types.h>
@@ -72,6 +73,8 @@ char directorydb[MAXPATHLEN+1];
int directory_updatePid = 0;
+mpd_uint16 directory_updateJobId = 0;
+
DirectoryList * newDirectoryList();
int addToDirectory(Directory * directory, char * shortname, char * name);
@@ -89,7 +92,7 @@ void deleteEmptyDirectoriesInDirectory(Directory * directory);
int addSubDirectoryToDirectory(Directory * directory, char * shortname, char * name);
int isUpdatingDB() {
- if(directory_updatePid>0) return 1;
+ if(directory_updatePid>0) return directory_updateJobId;
return 0;
}
@@ -143,7 +146,11 @@ int updateInit(FILE * fp) {
return -1;
}
- DEBUG("updateInit: fork()'d update child\n");
+ directory_updateJobId++;
+ if(directory_updateJobId > 1<<15) directory_updateJobId = 1;
+ DEBUG("updateInit: fork()'d update child for update job id %i\n",
+ (int)directory_updateJobId);
+ myfprintf(fp,"updating_db: %i\n",(int)directory_updateJobId);
return 0;
}