stats: added num_artists, num_albums
Don't recalculate the number of artists and albums each time a client requests statistics. Calculate that once in stats_update().
This commit is contained in:
parent
0d449d8df7
commit
91fb2a29de
18
src/stats.c
18
src/stats.c
@ -33,12 +33,6 @@ void stats_global_init(void)
|
|||||||
stats.start_time = time(NULL);
|
stats.start_time = time(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void stats_update(void)
|
|
||||||
{
|
|
||||||
stats.song_count = countSongsIn(NULL);
|
|
||||||
stats.song_duration = sumSongTimesIn(NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct visit_data {
|
struct visit_data {
|
||||||
enum tag_type type;
|
enum tag_type type;
|
||||||
struct strset *set;
|
struct strset *set;
|
||||||
@ -78,6 +72,14 @@ getNumberOfTagItems(enum tag_type type)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void stats_update(void)
|
||||||
|
{
|
||||||
|
stats.song_count = countSongsIn(NULL);
|
||||||
|
stats.song_duration = sumSongTimesIn(NULL);
|
||||||
|
stats.artist_count = getNumberOfTagItems(TAG_ITEM_ARTIST);
|
||||||
|
stats.album_count = getNumberOfTagItems(TAG_ITEM_ALBUM);
|
||||||
|
}
|
||||||
|
|
||||||
int stats_print(struct client *client)
|
int stats_print(struct client *client)
|
||||||
{
|
{
|
||||||
client_printf(client,
|
client_printf(client,
|
||||||
@ -88,8 +90,8 @@ int stats_print(struct client *client)
|
|||||||
"playtime: %li\n"
|
"playtime: %li\n"
|
||||||
"db_playtime: %li\n"
|
"db_playtime: %li\n"
|
||||||
"db_update: %li\n",
|
"db_update: %li\n",
|
||||||
getNumberOfTagItems(TAG_ITEM_ARTIST),
|
stats.artist_count,
|
||||||
getNumberOfTagItems(TAG_ITEM_ALBUM),
|
stats.album_count,
|
||||||
stats.song_count,
|
stats.song_count,
|
||||||
time(NULL) - stats.start_time,
|
time(NULL) - stats.start_time,
|
||||||
(long)(getPlayerTotalPlayTime() + 0.5),
|
(long)(getPlayerTotalPlayTime() + 0.5),
|
||||||
|
@ -30,6 +30,12 @@ struct stats {
|
|||||||
/** sum of all song durations in the music directory (in
|
/** sum of all song durations in the music directory (in
|
||||||
seconds) */
|
seconds) */
|
||||||
unsigned long song_duration;
|
unsigned long song_duration;
|
||||||
|
|
||||||
|
/** number of distinct artist names in the music directory */
|
||||||
|
unsigned artist_count;
|
||||||
|
|
||||||
|
/** number of distinct album names in the music directory */
|
||||||
|
unsigned album_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct stats stats;
|
extern struct stats stats;
|
||||||
|
Loading…
Reference in New Issue
Block a user