Change log handler API

This commit is contained in:
Jeffrey Pfau 2014-07-22 22:34:08 -07:00
parent 2ce9806de5
commit f55d085162
4 changed files with 11 additions and 13 deletions

View File

@ -110,7 +110,6 @@ static THREAD_ENTRY _GBAThreadRun(void* context) {
pthread_sigmask(SIG_SETMASK, &signals, 0);
#endif
gba.logHandler = threadContext->logHandler;
GBACreate(&gba);
ARMSetComponents(&cpu, &gba.d, numComponents, components);
ARMInit(&cpu);

View File

@ -10,6 +10,7 @@
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 GBAThread {
struct VFile* patch;
const char* fname;
int activeKeys;
// Run-time options
int frameskip;
float fpsTarget;
size_t audioBuffers;
@ -66,7 +69,7 @@ struct GBAThread {
Condition stateCond;
enum ThreadState savedState;
GBALogHandler logHandler;
LogHandler logHandler;
int logLevel;
ThreadCallback startCallback;
ThreadCallback cleanCallback;

View File

@ -537,16 +537,15 @@ void GBAHalt(struct GBA* gba) {
}
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) {

View File

@ -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 @@ struct GBA {
const char* activeFile;
int logLevel;
GBALogHandler logHandler;
};
struct GBACartridge {