diff options
author | Chris Browet <koying@semperpax.com> | 2015-12-11 18:45:48 +0100 |
---|---|---|
committer | Chris Browet <koying@semperpax.com> | 2015-12-11 18:45:48 +0100 |
commit | dc496289e96336efbd8964a4140dc680b980489e (patch) | |
tree | d68264f28c5de3dd6d14b56876d26c9894cfcbe0 | |
parent | eb52f52340ee57bcda628840c7d6ee834a340ee3 (diff) | |
parent | a3e57f40081a051313d117a8d06986fdb3b66138 (diff) |
Merge pull request #8560 from koying/fixdroidmouseJ
FIX: [droid] mouse handling regression
-rw-r--r-- | xbmc/android/activity/EventLoop.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/xbmc/android/activity/EventLoop.cpp b/xbmc/android/activity/EventLoop.cpp index 2d058909d3..e96f42fa03 100644 --- a/xbmc/android/activity/EventLoop.cpp +++ b/xbmc/android/activity/EventLoop.cpp @@ -24,8 +24,7 @@ #include <dlfcn.h> -typeof(AMotionEvent_getAxisValue) *p_AMotionEvent_getAxisValue; -typeof(AMotionEvent_getButtonState) *p_AMotionEvent_getButtonState; +#define IS_FROM_SOURCE(v, s) ((v & s) == s) CEventLoop::CEventLoop(android_app* application) : m_enabled(false), @@ -49,12 +48,6 @@ void CEventLoop::run(IActivityHandler &activityHandler, IInputHandler &inputHand m_activityHandler = &activityHandler; m_inputHandler = &inputHandler; - // missing in early NDKs, is present in r9b+ - p_AMotionEvent_getAxisValue = (typeof(AMotionEvent_getAxisValue)*) dlsym(RTLD_DEFAULT, "AMotionEvent_getAxisValue"); - // missing in NDK - p_AMotionEvent_getButtonState = (typeof(AMotionEvent_getButtonState)*) dlsym(RTLD_DEFAULT, "AMotionEvent_getButtonState"); - CXBMCApp::android_printf("CEventLoop: AMotionEvent_getAxisValue: %p, AMotionEvent_getButtonState: %p", p_AMotionEvent_getAxisValue, p_AMotionEvent_getButtonState); - CXBMCApp::android_printf("CEventLoop: starting event loop"); while (1) { @@ -152,7 +145,7 @@ int32_t CEventLoop::processInput(AInputEvent* event) switch(type) { case AINPUT_EVENT_TYPE_KEY: - if (source & AINPUT_SOURCE_GAMEPAD || source & AINPUT_SOURCE_JOYSTICK) + if (IS_FROM_SOURCE(source, AINPUT_SOURCE_GAMEPAD) || IS_FROM_SOURCE(source, AINPUT_SOURCE_JOYSTICK)) { if (m_inputHandler->onJoyStickKeyEvent(event)) return true; @@ -160,11 +153,11 @@ int32_t CEventLoop::processInput(AInputEvent* event) rtn = m_inputHandler->onKeyboardEvent(event); break; case AINPUT_EVENT_TYPE_MOTION: - if (source & AINPUT_SOURCE_TOUCHSCREEN) + if (IS_FROM_SOURCE(source, AINPUT_SOURCE_TOUCHSCREEN)) rtn = m_inputHandler->onTouchEvent(event); - else if (source & AINPUT_SOURCE_MOUSE) + else if (IS_FROM_SOURCE(source, AINPUT_SOURCE_MOUSE)) rtn = m_inputHandler->onMouseEvent(event); - else if (source & (AINPUT_SOURCE_GAMEPAD | AINPUT_SOURCE_JOYSTICK)) + else if (IS_FROM_SOURCE(source, AINPUT_SOURCE_GAMEPAD) || IS_FROM_SOURCE(source, AINPUT_SOURCE_JOYSTICK)) rtn = m_inputHandler->onJoyStickMotionEvent(event); break; } |