From 837f952230ae3a83bdbfa4f3d459ba0841622daf Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sat, 9 Mar 2019 12:01:00 -0800 Subject: [PATCH] Python: Add support for keysRead core callback --- src/platform/python/core.c | 1 + src/platform/python/core.h | 1 + src/platform/python/mgba/core.py | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/src/platform/python/core.c b/src/platform/python/core.c index dccd393d7..6d7c1c855 100644 --- a/src/platform/python/core.c +++ b/src/platform/python/core.c @@ -13,6 +13,7 @@ struct mCoreCallbacks* mCorePythonCallbackCreate(void* pyobj) { callbacks->videoFrameEnded = _mCorePythonCallbacksVideoFrameEnded; callbacks->coreCrashed = _mCorePythonCallbacksCoreCrashed; callbacks->sleep = _mCorePythonCallbacksSleep; + callbacks->keysRead = _mCorePythonCallbacksKeysRead; callbacks->context = pyobj; return callbacks; diff --git a/src/platform/python/core.h b/src/platform/python/core.h index ed4790917..5e6f23be0 100644 --- a/src/platform/python/core.h +++ b/src/platform/python/core.h @@ -13,3 +13,4 @@ PYEXPORT void _mCorePythonCallbacksVideoFrameStarted(void* user); PYEXPORT void _mCorePythonCallbacksVideoFrameEnded(void* user); PYEXPORT void _mCorePythonCallbacksCoreCrashed(void* user); PYEXPORT void _mCorePythonCallbacksSleep(void* user); +PYEXPORT void _mCorePythonCallbacksKeysRead(void* user); diff --git a/src/platform/python/mgba/core.py b/src/platform/python/mgba/core.py index 589ef0cb3..8987f8d42 100644 --- a/src/platform/python/mgba/core.py +++ b/src/platform/python/mgba/core.py @@ -79,6 +79,12 @@ def _mCorePythonCallbacksSleep(user): # pylint: disable=invalid-name context._sleep() +@ffi.def_extern() +def _mCorePythonCallbacksKeysRead(user): # pylint: disable=invalid-name + context = ffi.from_handle(user) + context._keys_read() + + class CoreCallbacks(object): def __init__(self): self._handle = ffi.new_handle(self) @@ -86,6 +92,7 @@ class CoreCallbacks(object): self.video_frame_ended = [] self.core_crashed = [] self.sleep = [] + self.keys_read = [] self.context = lib.mCorePythonCallbackCreate(self._handle) def _video_frame_started(self): @@ -104,6 +111,10 @@ class CoreCallbacks(object): for callback in self.sleep: callback() + def _keys_read(self): + for callback in self.keys_read: + callback() + class Core(object): if hasattr(lib, 'PLATFORM_GBA'):