mirror of https://github.com/mgba-emu/mgba.git
Core: Add missing files
This commit is contained in:
parent
2290dd6781
commit
2716a0f64f
|
@ -0,0 +1,38 @@
|
||||||
|
/* Copyright (c) 2013-2016 Jeffrey Pfau
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
#ifndef M_CORE_H
|
||||||
|
#define M_CORE_H
|
||||||
|
|
||||||
|
#include "util/common.h"
|
||||||
|
|
||||||
|
struct VFile;
|
||||||
|
|
||||||
|
struct mCore {
|
||||||
|
void* cpu;
|
||||||
|
void* board;
|
||||||
|
|
||||||
|
bool (*init)(struct mCore*);
|
||||||
|
void (*deinit)(struct mCore*);
|
||||||
|
|
||||||
|
void (*desiredVideoDimensions)(struct mCore*, unsigned* width, unsigned* height);
|
||||||
|
void (*setVideoBuffer)(struct mCore*, void* buffer, size_t stride);
|
||||||
|
|
||||||
|
bool (*isROM)(struct mCore*, struct VFile* vf);
|
||||||
|
bool (*loadROM)(struct mCore*, struct VFile* vf, struct VFile* save, const char* fname);
|
||||||
|
void (*unloadROM)(struct mCore*);
|
||||||
|
|
||||||
|
bool (*loadBIOS)(struct mCore*, struct VFile* vf, int biosID);
|
||||||
|
bool (*selectBIOS)(struct mCore*, int biosID);
|
||||||
|
|
||||||
|
void (*reset)(struct mCore*);
|
||||||
|
void (*runFrame)(struct mCore*);
|
||||||
|
void (*runLoop)(struct mCore*);
|
||||||
|
void (*step)(struct mCore*);
|
||||||
|
|
||||||
|
void (*setKeys)(struct mCore*, uint32_t keys);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,16 @@
|
||||||
|
/* Copyright (c) 2013-2016 Jeffrey Pfau
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
#include "log.h"
|
||||||
|
|
||||||
|
struct mLogger* mLogGetContext(void) {
|
||||||
|
return NULL; // TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
int mLogGenerateCategory(void) {
|
||||||
|
static int category = 0;
|
||||||
|
++category;
|
||||||
|
return category;
|
||||||
|
}
|
|
@ -0,0 +1,55 @@
|
||||||
|
/* Copyright (c) 2013-2016 Jeffrey Pfau
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
#ifndef M_LOG_H
|
||||||
|
#define M_LOG_H
|
||||||
|
|
||||||
|
#include "util/common.h"
|
||||||
|
|
||||||
|
enum mLogLevel {
|
||||||
|
mLOG_FATAL = 0x01,
|
||||||
|
mLOG_ERROR = 0x02,
|
||||||
|
mLOG_WARN = 0x04,
|
||||||
|
mLOG_INFO = 0x08,
|
||||||
|
mLOG_DEBUG = 0x10,
|
||||||
|
mLOG_STUB = 0x20,
|
||||||
|
mLOG_GAME_ERROR = 0x40
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mLogger {
|
||||||
|
ATTRIBUTE_FORMAT(printf, 4, 5)
|
||||||
|
void (*log)(struct mLogger*, int category, enum mLogLevel level, const char* format, ...);
|
||||||
|
};
|
||||||
|
|
||||||
|
struct mLogger* mLogGetContext(void);
|
||||||
|
int mLogGenerateCategory(void);
|
||||||
|
|
||||||
|
ATTRIBUTE_FORMAT(printf, 3, 4)
|
||||||
|
static inline void _mLog(int (*category)(void), enum mLogLevel level, const char* format, ...) {
|
||||||
|
struct mLogger* context = mLogGetContext();
|
||||||
|
va_list args;
|
||||||
|
va_start(args, format);
|
||||||
|
if (context) {
|
||||||
|
context->log(context, category(), level, format, args);
|
||||||
|
} else {
|
||||||
|
vprintf(format, args);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
va_end(args);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define mLOG(CATEGORY, LEVEL, ...) _mLog(_mLOG_CAT_ ## CATEGORY, mLOG_ ## LEVEL, __VA_ARGS__)
|
||||||
|
|
||||||
|
#define mLOG_DECLARE_CATEGORY(CATEGORY) int _mLOG_CAT_ ## CATEGORY (void);
|
||||||
|
#define mLOG_DEFINE_CATEGORY(CATEGORY) \
|
||||||
|
int _mLOG_CAT_ ## CATEGORY (void) { \
|
||||||
|
static int category = 0; \
|
||||||
|
if (!category) { \
|
||||||
|
category = mLogGenerateCategory(); \
|
||||||
|
} \
|
||||||
|
return category; \
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue