48 lines
967 B
C
48 lines
967 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
|
||
|
{
|
||
|
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, MakeStringLiteral(_Message), LogEntry_Message)
|
||
|
#define LogError(_Log, _Message) PushLogEntry(_Log, MakeStringLiteral(_Message), LogEntry_Error)
|
||
|
|
||
|
internal void
|
||
|
PushLogEntry(event_log* Log, 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
|