/* * SPDX-License-Identifier: AGPL-3.0-only * Copyright (c) Camden Dixie O'Brien */ #ifndef TIME_MANAGER_H #define TIME_MANAGER_H #include "time_types.h" typedef void (*TimeCallback)(Time now); /** * Initialize the time module. */ void time_manager_init(void); /** * Add a callback to be regularly invoked with time updates. */ void add_time_callback(TimeCallback callback); /** * Get the current time. */ Time get_time(void); /** * Set the time. */ void set_time(Time time); /** * Get the current date. */ Date get_date(void); /** * Set the date. */ void set_date(Date date); /** * Get which day of the week it is. */ WeekDay get_week_day(void); /** * Get the name of a day of the week. */ const char *week_day_name(WeekDay day); #endif