10#ifndef _GUIINPUTDEVICEUNIX_H_
11#define _GUIINPUTDEVICEUNIX_H_
14#include "eC_TList_doubleLinked.h"
15#include "eC_Semaphore.h"
17#include "GUIInputMedia.h"
20#ifdef GUILIANI_UNIX_INPUT_RESISTIVE_TOUCH
25#define REM_KEY_PREV_CH 34
27#define REM_KEY_LEFT 17
28#define REM_KEY_RIGHT 16
30#define REM_KEY_DOWN 33
43#ifdef GUILIANI_UNIX_INPUT_USE_KEYBOARD
45class CGUIInputThreadDeviceUnix_Keyboard :
public CGUIThread
52 CGUIInputThreadDeviceUnix_Keyboard(
CGUIInputDeviceUnix* pkInputDevice,
const char* pkKeyboardDevice);
53 ~CGUIInputThreadDeviceUnix_Keyboard();
59 eC_Int m_iKeyboardDevice;
74 const char* pkTouchscreenDevice,
75 const eC_Int& iTSFilterDelta);
84 void SetSize(
const eC_Int& iSizeX,
const eC_Int& iSizeY);
90 void SetOffset(
const eC_Int& iOffsetX,
const eC_Int& iOffsetY);
93 void DumpRawEvent(
char* pcData);
97 eC_Int CalcXPosition(
const int& x);
98 eC_Int CalcYPosition(
const int& y);
101 enum TouchScreenPressState_t
110 eC_Int m_iTouchScreenDevice;
112 eC_Int m_iTSFilterDelta;
114#ifdef GUILIANI_UNIX_INPUT_RESISTIVE_TOUCH
117 TouchScreenPressState_t m_eTSState;
118 TouchScreenPressState_t m_eLastTSState;
120 eC_Int m_iTouchscreenWidth;
121 eC_Int m_iTouchscreenHeight;
122 eC_Int m_iTouchscreenOffsetX;
123 eC_Int m_iTouchscreenOffsetY;
128 eC_Int m_iTSLastButtonX;
129 eC_Int m_iTSLastButtonY;
131 eC_Int m_iLastDraggedX;
132 eC_Int m_iLastDraggedY;
135#ifdef GUILIANI_UNIX_INPUT_USE_REMOTE
137class CGUIInputThreadDeviceUnix_Remote :
public CGUIThread
144 CGUIInputThreadDeviceUnix_Remote(
CGUIInputDeviceUnix* pkInputDevice,
char* pkRemoteDevice);
145 ~CGUIInputThreadDeviceUnix_Remote();
151 eC_Int m_iRemoteDevice;
175 const char* pcKeyboardDevice,
176 const char* pcTouchscreenDevice,
177 const char* pcRemoteDevice,
178 const eC_Int& iTouchScreenX = 0,
179 const eC_Int& iTouchScreenY = 0,
180 const eC_Int& iTouchscreenWidth = 0,
181 const eC_Int& iTouchscreenHeight = 0,
182 const eC_Int& iTSFilterDelta = 10);
206 virtual void SetSize(
const eC_Int& iSizeX,
const eC_Int& iSizeY);
207 virtual void SetOffset(
const eC_Int& iOffsetX,
const eC_Int& iOffsetY);
217 const char* pcKeyboardDevice,
218 const char* pcTouchscreenDevice,
219 const char* pcRemoteDevice,
220 const eC_Int& iTouchscreenFilterDelta);
234 const char* m_pcKeyboardDevice;
235 const char* m_pcTouchscreenDevice;
236 const char* m_pcRemoteDevice;
238#ifdef GUILIANI_UNIX_INPUT_USE_KEYBOARD
242 CGUIInputThreadDeviceUnix_Keyboard* m_pkKeyboardThread;
250#ifdef GUILIANI_UNIX_INPUT_USE_REMOTE
254 CGUIInputThreadDeviceUnix_Remote* m_pkRemoteThread;
257 eC_Int m_iTouchscreenFilterDelta;
260 eC_Semaphore m_kEventQueueSemaphore;
262 pthread_cond_t m_kInputEventCond;
263 pthread_mutex_t m_kInputEventMutex;
Base class for Guiliani Events.
Definition: GUIEvent.h:26
This is the base class for Guiliani threads.
Definition: GUIThread.h:85
virtual void Execute(void *pArg)=0