mirror of
https://github.com/blawar/GLideN64.git
synced 2024-06-25 22:09:35 +00:00
53 lines
1.1 KiB
C++
53 lines
1.1 KiB
C++
#include <stdarg.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <cwchar>
|
|
#include "Log.h"
|
|
#include "PluginAPI.h"
|
|
#include "wst.h"
|
|
#include <mutex>
|
|
|
|
std::mutex g_logMutex;
|
|
|
|
void LOG(u16 type, const char * format, ...) {
|
|
if (type > LOG_LEVEL)
|
|
return;
|
|
|
|
std::unique_lock<std::mutex> lock(g_logMutex);
|
|
|
|
wchar_t logPath[PLUGIN_PATH_SIZE + 16];
|
|
api().GetUserDataPath(logPath);
|
|
gln_wcscat(logPath, wst("/gliden64.log"));
|
|
|
|
#ifdef OS_WINDOWS
|
|
FILE *dumpFile = _wfopen(logPath, wst("a+"));
|
|
#else
|
|
constexpr size_t bufSize = PLUGIN_PATH_SIZE * 6;
|
|
char cbuf[bufSize];
|
|
wcstombs(cbuf, logPath, bufSize);
|
|
FILE *dumpFile = fopen(cbuf, "a+");
|
|
#endif //OS_WINDOWS
|
|
|
|
if (dumpFile == nullptr)
|
|
return;
|
|
va_list va;
|
|
va_start(va, format);
|
|
vfprintf(dumpFile, format, va);
|
|
fclose(dumpFile);
|
|
va_end(va);
|
|
}
|
|
|
|
#if defined(OS_WINDOWS) && !defined(MINGW)
|
|
#include "windows/GLideN64_windows.h"
|
|
void debugPrint(const char * format, ...) {
|
|
char text[256];
|
|
wchar_t wtext[256];
|
|
va_list va;
|
|
va_start(va, format);
|
|
vsprintf(text, format, va);
|
|
mbstowcs(wtext, text, 256);
|
|
OutputDebugString(wtext);
|
|
va_end(va);
|
|
}
|
|
#endif
|