49 lines
960 B
C
49 lines
960 B
C
//
|
|
// File: foldhaus_log.h
|
|
// Author: Peter Slattery
|
|
// Creation Date: 2020-02-05
|
|
//
|
|
#ifndef FOLDHAUS_LOG_H
|
|
|
|
enum log_entry_type
|
|
{
|
|
LogEntry_Message,
|
|
LogEntry_Error,
|
|
};
|
|
|
|
struct log_entry
|
|
{
|
|
gs_string Message;
|
|
log_entry_type Type;
|
|
};
|
|
|
|
#define LOG_ENTRIES_MAX 256
|
|
struct event_log
|
|
{
|
|
log_entry Entries[LOG_ENTRIES_MAX];
|
|
// Circular buffer head position
|
|
u32 NextEntry;
|
|
};
|
|
|
|
#define LogMessage(_Log, _Message) PushLogEntry(_Log, MakeString(_Message), LogEntry_Message)
|
|
#define LogError(_Log, _Message) PushLogEntry(_Log, MakeString(_Message), LogEntry_Error)
|
|
|
|
internal void
|
|
PushLogEntry(event_log* Log, gs_string Message, log_entry_type Type)
|
|
{
|
|
u32 NewLogIndex = Log->NextEntry++;
|
|
if (Log->NextEntry >= LOG_ENTRIES_MAX)
|
|
{
|
|
Log->NextEntry = 0;
|
|
}
|
|
|
|
log_entry* NewEntry = Log->Entries + NewLogIndex;
|
|
NewEntry->Message = Message;
|
|
NewEntry->Type = Type;
|
|
}
|
|
|
|
|
|
|
|
|
|
#define FOLDHAUS_LOG_H
|
|
#endif // FOLDHAUS_LOG_H
|