display db_playtime in stats
git-svn-id: https://svn.musicpd.org/mpd/trunk@98 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
		| @@ -477,6 +477,7 @@ int writeDirectoryDB() { | ||||
|  | ||||
| 	sortDirectory(mp3rootDirectory); | ||||
| 	stats.numberOfSongs = countSongsIn(stderr,NULL); | ||||
| 	stats.dbPlayTime = sumSongTimesIn(stderr,NULL); | ||||
|  | ||||
| 	while(!(fp=fopen(directorydb,"w")) && errno==EINTR); | ||||
| 	if(!fp) return -1; | ||||
| @@ -570,6 +571,7 @@ int readDirectoryDB() { | ||||
| 	while(fclose(fp) && errno==EINTR); | ||||
|  | ||||
| 	stats.numberOfSongs = countSongsIn(stderr,NULL); | ||||
| 	stats.dbPlayTime = sumSongTimesIn(stderr,NULL); | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
| @@ -777,6 +779,14 @@ int directoryPrintSongInfo(FILE * fp, Song * song, void * data) { | ||||
| 	return printSongInfo(fp,song); | ||||
| } | ||||
|  | ||||
| int sumSongTime(FILE * fp, Song * song, void * data) { | ||||
| 	unsigned long * time = (unsigned long *)data; | ||||
|  | ||||
| 	if(song->tag && song->tag->time>=0) *time+=song->tag->time; | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| int printInfoForAllIn(FILE * fp, char * name) { | ||||
|         return traverseAllIn(fp,name,directoryPrintSongInfo,NULL,NULL); | ||||
| } | ||||
| @@ -790,6 +800,15 @@ int countSongsIn(FILE * fp, char * name) { | ||||
| 	return count; | ||||
| } | ||||
|  | ||||
| unsigned long sumSongTimesIn(FILE * fp, char * name) { | ||||
| 	unsigned long dbPlayTime = 0; | ||||
| 	void * ptr = (void *)&dbPlayTime; | ||||
| 	 | ||||
|         traverseAllIn(fp,name,sumSongTime,NULL,ptr); | ||||
|  | ||||
| 	return dbPlayTime; | ||||
| } | ||||
|  | ||||
| void initMp3Directory() { | ||||
| 	mp3rootDirectory = newDirectory(NULL,NULL,0); | ||||
| 	exploreDirectory(mp3rootDirectory); | ||||
|   | ||||
| @@ -50,6 +50,8 @@ int findSongsIn(FILE * fp, char * name, char * item, char * string); | ||||
|  | ||||
| int countSongsIn(FILE * fp, char * name); | ||||
|  | ||||
| unsigned long sumSongTimesIn(FILE * fp, char * name); | ||||
|  | ||||
| Song * getSong(char * file); | ||||
|  | ||||
| time_t getDbModTime(); | ||||
|   | ||||
| @@ -41,6 +41,7 @@ int printStats(FILE * fp) { | ||||
| 	myfprintf(fp,"songs: %i\n",stats.numberOfSongs); | ||||
| 	myfprintf(fp,"uptime: %li\n",time(NULL)-stats.daemonStart); | ||||
| 	myfprintf(fp,"playtime: %li\n",(long)(getPlayerTotalPlayTime()+0.5)); | ||||
| 	myfprintf(fp,"db_playtime: %li\n",stats.dbPlayTime); | ||||
| 	/*myfprintf(fp,"songs_played: %li\n",stats.songsPlayed);*/ | ||||
| 	myfprintf(fp,"db_update: %li\n",getDbModTime()); | ||||
| 	return 0; | ||||
|   | ||||
| @@ -24,6 +24,7 @@ | ||||
| typedef struct _Stats { | ||||
| 	unsigned long daemonStart; | ||||
| 	int numberOfSongs; | ||||
| 	unsigned long dbPlayTime; | ||||
| 	/*unsigned long playTime; | ||||
| 	unsigned long songsPlayed;*/ | ||||
| } Stats; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Warren Dukes
					Warren Dukes