#pragma once #include static inline s32 camu_print_time(char *buf, size_t size, u64 nanoseconds, bool always_show_hour, u32 hour_padding) { u32 hours = nanoseconds / 3600000000u; u32 minutes = nanoseconds / 60000000u; bool show_hour = always_show_hour || minutes >= 60u; u32 seconds = nanoseconds / 1000000u; seconds -= minutes * 60u; minutes -= hours * 60u; s32 offset = 0; if (show_hour && hour_padding >= 2 && hour_padding <= 4) { static const char *padding_table[] = { "%.2u:", "%.3u:", "%.4u:" }; offset += al_snprintf(buf, size, padding_table[hour_padding - 2u], hours); } offset += al_snprintf(buf + offset, size - offset, "%.2u:%.2u", minutes, seconds); return offset; }