stats: use GTimer instead of time(NULL)
time(NULL) shows the wrong results when the machine's clock is changed.
This commit is contained in:
parent
14ca99b224
commit
004dfddca3
@ -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;
|
|||||||
|
|
||||||
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)
|
|||||||
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 @@
|
|||||||
#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;
|
|||||||
|
|
||||||
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);
|
||||||
|
Loading…
Reference in New Issue
Block a user