From b8e9f50c92a55c3d81b2f5f12bbc6d49a84f1a9c Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Tue, 23 Jun 2020 22:59:00 -0700 Subject: [PATCH] Core: Add mVideoLogIsCompatible function --- include/mgba/feature/video-logger.h | 3 +++ src/feature/video-logger.c | 22 ++++++++++++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/include/mgba/feature/video-logger.h b/include/mgba/feature/video-logger.h index b466e4b6c..b40caff6d 100644 --- a/include/mgba/feature/video-logger.h +++ b/include/mgba/feature/video-logger.h @@ -10,6 +10,8 @@ CXX_GUARD_START +#include + #include #define mVL_MAX_CHANNELS 32 @@ -128,6 +130,7 @@ void mVideoLoggerInjectVideoRegister(struct mVideoLogger* logger, uint32_t addre void mVideoLoggerInjectPalette(struct mVideoLogger* logger, uint32_t address, uint16_t value); void mVideoLoggerInjectOAM(struct mVideoLogger* logger, uint32_t address, uint16_t value); +enum mPlatform mVideoLogIsCompatible(struct VFile*); struct mCore* mVideoLogCoreFind(struct VFile*); CXX_GUARD_END diff --git a/src/feature/video-logger.c b/src/feature/video-logger.c index a240d2c33..e28e20ac1 100644 --- a/src/feature/video-logger.c +++ b/src/feature/video-logger.c @@ -5,7 +5,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include -#include #include #include #include @@ -1033,7 +1032,7 @@ static ssize_t mVideoLoggerWriteChannel(struct mVideoLogChannel* channel, const return read; } -struct mCore* mVideoLogCoreFind(struct VFile* vf) { +static const struct mVLDescriptor* _mVideoLogDescriptor(struct VFile* vf) { if (!vf) { return NULL; } @@ -1055,6 +1054,25 @@ struct mCore* mVideoLogCoreFind(struct VFile* vf) { break; } } + if (descriptor->platform == PLATFORM_NONE) { + return NULL; + } + return descriptor; +} + +enum mPlatform mVideoLogIsCompatible(struct VFile* vf) { + const struct mVLDescriptor* descriptor = _mVideoLogDescriptor(vf); + if (descriptor) { + return descriptor->platform; + } + return PLATFORM_NONE; +} + +struct mCore* mVideoLogCoreFind(struct VFile* vf) { + const struct mVLDescriptor* descriptor = _mVideoLogDescriptor(vf); + if (!descriptor) { + return NULL; + } struct mCore* core = NULL; if (descriptor->open) { core = descriptor->open();