From 6f87bb7f9302ba82caf721ce901c69baf6ffc886 Mon Sep 17 00:00:00 2001 From: Vito Caputo Date: Fri, 7 Jul 2023 22:26:16 -0700 Subject: til: introduce til_ticks_now() Thin wrapper around gettimeofday(), prolly change the main ticks stuff over to this too. --- src/til.c | 19 +++++++++++++++++++ src/til.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/til.c b/src/til.c index 7ee4744..dec18bf 100644 --- a/src/til.c +++ b/src/til.c @@ -26,6 +26,7 @@ #define TIL_DEFAULT_NESTED_MODULE "compose" static til_threads_t *til_threads; +static struct timeval til_start_tv; extern til_module_t blinds_module; extern til_module_t checkers_module; @@ -92,6 +93,8 @@ int til_init(void) if (!(til_threads = til_threads_create())) return -errno; + gettimeofday(&til_start_tv, NULL); + return 0; } @@ -109,6 +112,22 @@ void til_shutdown(void) } +/* returns number of "ticks" since til_init(), which are currently milliseconds */ +unsigned til_ticks_now(void) +{ + struct timeval now, diff; + + /* for profiling purposes in particular, it'd be nice to bump up to microseconds... + * but then it'll prolly need uint64_t + */ + + gettimeofday(&now, NULL); + timersub(&now, &til_start_tv, &diff); + + return diff.tv_sec * 1000 + diff.tv_usec / 1000; +} + + /* "blank" built-in module */ static void _blank_prepare_frame(til_module_context_t *context, til_stream_t *stream, unsigned ticks, til_fb_fragment_t **fragment_ptr, til_frame_plan_t *res_frame_plan) { diff --git a/src/til.h b/src/til.h index 318f1b6..6ec43e6 100644 --- a/src/til.h +++ b/src/til.h @@ -40,6 +40,7 @@ struct til_module_t { int til_init(void); void til_quiesce(void); void til_shutdown(void); +unsigned til_ticks_now(void); const til_module_t * til_lookup_module(const char *name); void til_get_modules(const til_module_t ***res_modules, size_t *res_n_modules); char * til_get_module_names(unsigned flags_excluded, const char **exclusions); -- cgit v1.2.3