Permalink
Browse files

GUI: Move running check into frontend

  • Loading branch information...
endrift committed Jan 10, 2018
1 parent 7097d24 commit e40cba5c8ba76b00aa87d5e97ac57b12d11c2d16
Showing with 13 additions and 11 deletions.
  1. +6 −10 src/feature/gui/gui-runner.c
  2. +1 −0 src/feature/gui/gui-runner.h
  3. +6 −1 src/platform/3ds/main.c
@@ -18,10 +18,6 @@
#include <mgba-util/png-io.h>
#include <mgba-util/vfs.h>
-#ifdef _3DS
-#include <3ds.h>
-#endif
-
#include <sys/time.h>
mLOG_DECLARE_CATEGORY(GUI_RUNNER);
@@ -334,13 +330,13 @@ void mGUIRun(struct mGUIRunner* runner, const char* path) {
gettimeofday(&tv, 0);
runner->lastFpsCheck = 1000000LL * tv.tv_sec + tv.tv_usec;
- while (true) {
-#ifdef _3DS
- running = aptMainLoop();
- if (!running) {
- break;
+ while (running) {
+ if (runner->running) {
+ running = runner->running(runner);
+ if (!running) {
+ break;
+ }
}
-#endif
uint32_t guiKeys;
uint32_t heldKeys;
GUIPollInput(&runner->params, &guiKeys, &heldKeys);
@@ -70,6 +70,7 @@ struct mGUIRunner {
void (*incrementScreenMode)(struct mGUIRunner*);
void (*setFrameLimiter)(struct mGUIRunner*, bool limit);
uint16_t (*pollGameInput)(struct mGUIRunner*);
+ bool (*running)(struct mGUIRunner*);
};
void mGUIInit(struct mGUIRunner*, const char* port);
View
@@ -678,6 +678,10 @@ static void _setFrameLimiter(struct mGUIRunner* runner, bool limit) {
tickCounter = svcGetSystemTick();
}
+static bool _running(struct mGUIRunner* runner) {
+ return aptMainLoop();
+}
+
static uint32_t _pollInput(const struct mInputMap* map) {
hidScanInput();
int activeKeys = hidKeysHeld();
@@ -1020,7 +1024,8 @@ int main() {
.unpaused = _gameLoaded,
.incrementScreenMode = _incrementScreenMode,
.setFrameLimiter = _setFrameLimiter,
- .pollGameInput = _pollGameInput
+ .pollGameInput = _pollGameInput,
+ .running = _running
};
mGUIInit(&runner, "3ds");

0 comments on commit e40cba5

Please sign in to comment.