|
|
|
|
@ -2,6 +2,9 @@
|
|
|
|
|
#include "parser.h"
|
|
|
|
|
#include "timer.h"
|
|
|
|
|
|
|
|
|
|
#include <raylib.h>
|
|
|
|
|
extern Font font;
|
|
|
|
|
|
|
|
|
|
void print_segment(segment *seg) {
|
|
|
|
|
printf("%s\n", seg->name);
|
|
|
|
|
//printf("%ld.%ld\n", seg->realtime.tv_sec, seg->realtime.tv_nsec);
|
|
|
|
|
@ -26,6 +29,21 @@ struct timespec parse_time(char *str) {
|
|
|
|
|
return time;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char *time_unparse(char *buffer, size_t len, struct timespec *ts) {
|
|
|
|
|
struct tm *t = gmtime(&ts->tv_sec);
|
|
|
|
|
if (t->tm_hour == 0) {
|
|
|
|
|
strftime(buffer, len, "%M:%S.", gmtime(&ts->tv_sec));
|
|
|
|
|
} else if (t->tm_min == 0) {
|
|
|
|
|
strftime(buffer, len, "%S.", gmtime(&ts->tv_sec));
|
|
|
|
|
} else {
|
|
|
|
|
strftime(buffer, len, "%T.", gmtime(&ts->tv_sec));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
snprintf(&buffer[strlen(buffer)], len, "%.02ld", ts->tv_nsec / 10000000);
|
|
|
|
|
|
|
|
|
|
return buffer;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
segment *read_segment(char *file, char *line) {
|
|
|
|
|
segment *seg = calloc(1, sizeof(segment));
|
|
|
|
|
|
|
|
|
|
@ -107,5 +125,16 @@ segment_list open_splits_file(const char *path) {
|
|
|
|
|
return segments;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void render_splits(segment_list *segments) {
|
|
|
|
|
char buffer[100];
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < segments->cnt; i++) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DrawTextEx(font, segments->list[i]->name, (Vector2){10, 30 * i}, (float)font.baseSize/16, 2, BLACK);
|
|
|
|
|
DrawTextEx(font, time_unparse(buffer, 100, &segments->list[i]->realtime), (Vector2){200, 30 * i}, (float)font.baseSize/16, 2, BLACK);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//probably need a thing to free all the segments
|
|
|
|
|
|
|
|
|
|
|