BizHawk/waterbox/melon/BizPlatform/BizLog.cpp

36 lines
635 B
C++

#include "Platform.h"
#include <emulibc.h>
#include <stdarg.h>
namespace melonDS::Platform
{
using LogCallback_t = void (*)(LogLevel level, const char* message);
ECL_INVISIBLE static LogCallback_t LogCallback;
ECL_INVISIBLE static char LogBuffer[1 << 16];
ECL_EXPORT void SetLogCallback(LogCallback_t logCallback)
{
LogCallback = logCallback;
}
void Log(LogLevel level, const char* fmt, ...)
{
va_list args;
va_start(args, fmt);
int bufferSize = vsnprintf(LogBuffer, sizeof(LogBuffer), fmt, args);
va_end(args);
if (bufferSize < 0)
{
return;
}
LogCallback(level, LogBuffer);
}
}