Permalink
Browse files
GUI: Move running check into frontend
- Loading branch information...
Showing
with
13 additions
and
11 deletions.
-
+6
−10
src/feature/gui/gui-runner.c
-
+1
−0
src/feature/gui/gui-runner.h
-
+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);
|
|
|
|
|
|
@@ -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