X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Finput%2Fandroid%2Ftouchscreen.cpp;h=ac205386ee0781f952ec40d5d68d57a95d07829e;hb=11ab96ba152e389814543a6398e2cd6f17a31092;hp=bfbf7aaa8181c78aa73373fddf56de71b989f374;hpb=1d7113259625a91f5f6d2f53365aad22ae744689;p=libs%2Fgui.git diff --git a/source/input/android/touchscreen.cpp b/source/input/android/touchscreen.cpp index bfbf7aa..ac20538 100644 --- a/source/input/android/touchscreen.cpp +++ b/source/input/android/touchscreen.cpp @@ -1,10 +1,49 @@ #include "touchscreen.h" +#include namespace Msp { namespace Input { -void Touchscreen::input_event(const Graphics::Window::Event &) +bool Touchscreen::is_available() { + return true; +} + +void Touchscreen::input_event(const Graphics::Window::Event &event) +{ + int type = AInputEvent_getType(event.aevent); + if(type!=AINPUT_EVENT_TYPE_MOTION) + return; + + int source = AInputEvent_getSource(event.aevent); + if(source!=AINPUT_SOURCE_TOUCHSCREEN && source!=AINPUT_SOURCE_STYLUS) + return; + + int action = AMotionEvent_getAction(event.aevent); + int action_pointer = (action&AMOTION_EVENT_ACTION_POINTER_INDEX_MASK)>>AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT; + action &= AMOTION_EVENT_ACTION_MASK; + + int pointer_count = AMotionEvent_getPointerCount(event.aevent); + for(int i=0; i