2016-04-13 06:07:23 +00:00
|
|
|
#ifndef __URDE_CBASICS_HPP__
|
|
|
|
#define __URDE_CBASICS_HPP__
|
2015-08-17 05:26:58 +00:00
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdlib.h>
|
2016-10-09 21:41:23 +00:00
|
|
|
#include <chrono>
|
2015-08-17 05:26:58 +00:00
|
|
|
|
2015-08-19 05:48:57 +00:00
|
|
|
#include "RetroTypes.hpp"
|
2015-08-17 20:33:58 +00:00
|
|
|
|
2016-03-04 23:04:53 +00:00
|
|
|
namespace urde
|
2015-08-17 22:05:00 +00:00
|
|
|
{
|
|
|
|
|
2016-10-09 21:41:23 +00:00
|
|
|
using OSTime = s64;
|
|
|
|
|
2016-12-23 06:41:39 +00:00
|
|
|
struct OSCalendarTime
|
|
|
|
{
|
|
|
|
int x0_sec; // seconds after the minute [0, 61]
|
|
|
|
int x4_min; // minutes after the hour [0, 59]
|
|
|
|
int x8_hour; // hours since midnight [0, 23]
|
|
|
|
int xc_mday; // day of the month [1, 31]
|
|
|
|
int x10_mon; // month since January [0, 11]
|
|
|
|
int x14_year; // years in AD [1, ...]
|
|
|
|
int x18_wday; // days since Sunday [0, 6]
|
|
|
|
int x1c_yday; // days since January 1 [0, 365]
|
|
|
|
|
|
|
|
int x20_msec; // milliseconds after the second [0,999]
|
|
|
|
int x24_usec; // microseconds after the millisecond [0,999]
|
|
|
|
};
|
|
|
|
|
2015-08-17 05:26:58 +00:00
|
|
|
class CBasics
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
static void Init();
|
|
|
|
static const char* Stringize(const char* fmt, ...);
|
2016-10-09 21:41:23 +00:00
|
|
|
|
|
|
|
static const u64 SECONDS_TO_2000;
|
|
|
|
static const u64 TICKS_PER_SECOND;
|
|
|
|
|
|
|
|
static OSTime ToWiiTime(std::chrono::system_clock::time_point time);
|
|
|
|
static std::chrono::system_clock::time_point FromWiiTime(OSTime wiiTime);
|
2016-12-23 06:41:39 +00:00
|
|
|
|
2016-12-24 00:45:51 +00:00
|
|
|
static OSCalendarTime ToCalendarTime(OSTime time) { return ToCalendarTime(FromWiiTime(time)); }
|
|
|
|
static OSCalendarTime ToCalendarTime(std::chrono::system_clock::time_point time);
|
2015-08-17 05:26:58 +00:00
|
|
|
};
|
|
|
|
|
2015-08-17 22:05:00 +00:00
|
|
|
}
|
|
|
|
|
2016-04-13 06:07:23 +00:00
|
|
|
#endif // __URDE_CBASICS_HPP__
|