Change log handler API
Jeffrey Pfau jeffrey@endrift.com
Tue, 22 Jul 2014 22:34:08 -0700
4 files changed,
11 insertions(+),
13 deletions(-)
M
src/gba/gba-thread.c
→
src/gba/gba-thread.c
@@ -110,7 +110,6 @@ sigemptyset(&signals);
pthread_sigmask(SIG_SETMASK, &signals, 0); #endif - gba.logHandler = threadContext->logHandler; GBACreate(&gba); ARMSetComponents(&cpu, &gba.d, numComponents, components); ARMInit(&cpu);
M
src/gba/gba-thread.h
→
src/gba/gba-thread.h
@@ -10,6 +10,7 @@ #include "platform/commandline.h"
struct GBAThread; typedef void (*ThreadCallback)(struct GBAThread* threadContext); +typedef void (*LogHandler)(struct GBAThread*, enum GBALogLevel, const char* format, va_list args); enum ThreadState { THREAD_INITIALIZED = -1,@@ -55,6 +56,8 @@ struct VFile* bios;
struct VFile* patch; const char* fname; int activeKeys; + + // Run-time options int frameskip; float fpsTarget; size_t audioBuffers;@@ -66,7 +69,7 @@ Mutex stateMutex;
Condition stateCond; enum ThreadState savedState; - GBALogHandler logHandler; + LogHandler logHandler; int logLevel; ThreadCallback startCallback; ThreadCallback cleanCallback;
M
src/gba/gba.c
→
src/gba/gba.c
@@ -537,16 +537,15 @@ gba->cpu->halted = 1;
} static void _GBAVLog(struct GBA* gba, enum GBALogLevel level, const char* format, va_list args) { - if (!gba) { - struct GBAThread* threadContext = GBAThreadGetContext(); - if (threadContext) { + struct GBAThread* threadContext = GBAThreadGetContext(); + if (threadContext) { + if (!gba) { gba = threadContext->gba; } - } - - if (gba && gba->logHandler) { - gba->logHandler(gba, level, format, args); - return; + if (threadContext->logHandler) { + threadContext->logHandler(threadContext, level, format, args); + return; + } } if (gba && !(level & gba->logLevel) && level != GBA_LOG_FATAL) {
M
src/gba/gba.h
→
src/gba/gba.h
@@ -65,8 +65,6 @@ struct GBARotationSource;
struct Patch; struct VFile; -typedef void (*GBALogHandler)(struct GBA*, enum GBALogLevel, const char* format, va_list args); - struct GBA { struct ARMComponent d;@@ -108,7 +106,6 @@
const char* activeFile; int logLevel; - GBALogHandler logHandler; }; struct GBACartridge {