54 lines
769 B
C

/*
* 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