Commit 004dfddc authored by Max Kellermann's avatar Max Kellermann

stats: use GTimer instead of time(NULL)

time(NULL) shows the wrong results when the machine's clock is changed.
parent 14ca99b2
...@@ -350,6 +350,7 @@ int main(int argc, char *argv[]) ...@@ -350,6 +350,7 @@ int main(int argc, char *argv[])
songvec_deinit(); songvec_deinit();
dirvec_deinit(); dirvec_deinit();
idle_deinit(); idle_deinit();
stats_global_finish();
close_log_files(); close_log_files();
return EXIT_SUCCESS; return EXIT_SUCCESS;
......
...@@ -29,7 +29,12 @@ struct stats stats; ...@@ -29,7 +29,12 @@ struct stats stats;
void stats_global_init(void) void stats_global_init(void)
{ {
stats.start_time = time(NULL); stats.timer = g_timer_new();
}
void stats_global_finish(void)
{
g_timer_destroy(stats.timer);
} }
struct visit_data { struct visit_data {
...@@ -107,7 +112,7 @@ int stats_print(struct client *client) ...@@ -107,7 +112,7 @@ int stats_print(struct client *client)
stats.artist_count, stats.artist_count,
stats.album_count, stats.album_count,
stats.song_count, stats.song_count,
time(NULL) - stats.start_time, (long)g_timer_elapsed(stats.timer, NULL),
(long)(getPlayerTotalPlayTime() + 0.5), (long)(getPlayerTotalPlayTime() + 0.5),
stats.song_duration, stats.song_duration,
db_get_mtime()); db_get_mtime());
......
...@@ -19,10 +19,12 @@ ...@@ -19,10 +19,12 @@
#ifndef MPD_STATS_H #ifndef MPD_STATS_H
#define MPD_STATS_H #define MPD_STATS_H
#include <glib.h>
struct client; struct client;
struct stats { struct stats {
unsigned long start_time; GTimer *timer;
/** number of song files in the music directory */ /** number of song files in the music directory */
unsigned song_count; unsigned song_count;
...@@ -42,6 +44,8 @@ extern struct stats stats; ...@@ -42,6 +44,8 @@ extern struct stats stats;
void stats_global_init(void); void stats_global_init(void);
void stats_global_finish(void);
void stats_update(void); void stats_update(void);
int stats_print(struct client *client); int stats_print(struct client *client);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment