From a92c54454f151377e0fc34be525b90c42b42d4af Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Sun, 1 Apr 2012 23:44:06 +0200 Subject: [PATCH] IPHONE: Move event fetching implementation to iPhoneView. --- backends/platform/iphone/iphone_video.h | 2 ++ backends/platform/iphone/iphone_video.mm | 31 +++++++++++++----------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/backends/platform/iphone/iphone_video.h b/backends/platform/iphone/iphone_video.h index 0c70b1fe976..ed147eed2a3 100644 --- a/backends/platform/iphone/iphone_video.h +++ b/backends/platform/iphone/iphone_video.h @@ -111,6 +111,8 @@ struct InternalEvent { - (void)applicationResume; +- (bool)fetchEvent:(int *)outEvent value1:(int *)v1 value2:(int *)v2; + @end extern iPhoneView *g_iPhoneViewInstance; diff --git a/backends/platform/iphone/iphone_video.mm b/backends/platform/iphone/iphone_video.mm index 1984c7c36f0..da328133c37 100644 --- a/backends/platform/iphone/iphone_video.mm +++ b/backends/platform/iphone/iphone_video.mm @@ -66,20 +66,7 @@ void iPhone_updateScreen() { } bool iPhone_fetchEvent(int *outEvent, int *outX, int *outY) { - [g_iPhoneViewInstance->_eventLock lock]; - Common::List &events = g_iPhoneViewInstance->_events; - if (events.empty()) { - [g_iPhoneViewInstance->_eventLock unlock]; - return false; - } - - const InternalEvent &front = *events.begin(); - *outEvent = front.type; - *outX = front.value1; - *outY = front.value2; - events.pop_front(); - [g_iPhoneViewInstance->_eventLock unlock]; - return true; + return [g_iPhoneViewInstance fetchEvent:outEvent value1:outX value2:outY]; } uint getSizeNextPOT(uint size) { @@ -582,6 +569,22 @@ const char *iPhone_getDocumentsDir() { [_eventLock unlock]; } +- (bool)fetchEvent:(int *)outEvent value1:(int *)v1 value2:(int *)v2 { + [_eventLock lock]; + if (_events.empty()) { + [_eventLock unlock]; + return false; + } + + const InternalEvent &front = *_events.begin(); + *outEvent = front.type; + *v1 = front.value1; + *v2 = front.value2; + _events.pop_front(); + [_eventLock unlock]; + return true; +} + /** * Converts portrait mode coordinates into rotated mode coordinates. */