all repos — mgba @ f55d0851628b44ee8fb0a475bba14c27c32f53a0

mGBA Game Boy Advance Emulator

Change log handler API
Jeffrey Pfau jeffrey@endrift.com
Tue, 22 Jul 2014 22:34:08 -0700
commit

f55d0851628b44ee8fb0a475bba14c27c32f53a0

parent

2ce9806de5335fe08d82d0040bed1063802b475d

4 files changed, 11 insertions(+), 13 deletions(-)

jump to
M src/gba/gba-thread.csrc/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.hsrc/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.csrc/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.hsrc/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 {