#ifndef __TUI_TOUCH_H__
#define __TUI_TOUCH_H__

#include "TuiState.h"
#include "TuiRotation.h"

#define MAX_MULTI_TOUCH 2

#ifdef __cplusplus
extern "C" {
#endif

	typedef enum ETouchEventType {
		NONE_TOUCH_EVENT, RELEASED_TOUCH_EVENT, PRESSED_TOUCH_EVENT
	}ETouchEventType;
	
	typedef enum EEndOfTouch {
		CONTINUE_OF_TOUCH, END_OF_TOUCH
	} EEndOfTouch;

	typedef struct TouchEvent {
		uint32_t x;
		uint32_t y;
		uint32_t type;
	}TouchEvent ;

	typedef struct TOUCH_BUFFER {
		uint32_t controlId;
		uint32_t counter;
		ETouchEventType touchState;
	} TouchBuffer;
	
	void executeTouchEvent(TouchEvent touch);
	void clearTouchEvent(void);
	TuiState doTouchEvent(uint32_t x, uint32_t y, uint32_t type);

	EEndOfTouch isEndOfTouch(void);
	void setEndOfTouch(EEndOfTouch isEnd);
	void rotateCoodinate(uint32_t* x, uint32_t* y, RotationType rotation);

#ifdef __cplusplus
}
#endif

#endif
