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);
98 enum TouchScreenPressState_t
107 eC_Int m_iTouchScreenDevice;
109 eC_Int m_iTSFilterDelta;
111#ifdef GUILIANI_UNIX_INPUT_RESISTIVE_TOUCH
114 TouchScreenPressState_t m_eTSState;
115 TouchScreenPressState_t m_eLastTSState;
117 eC_Int m_iTouchscreenWidth;
118 eC_Int m_iTouchscreenHeight;
119 eC_Int m_iTouchscreenOffsetX;
120 eC_Int m_iTouchscreenOffsetY;
125 eC_Int m_iTSLastButtonX;
126 eC_Int m_iTSLastButtonY;
128 eC_Int m_iLastDraggedX;
129 eC_Int m_iLastDraggedY;
132#ifdef GUILIANI_UNIX_INPUT_USE_REMOTE
134class CGUIInputThreadDeviceUnix_Remote :
public CGUIThread
141 CGUIInputThreadDeviceUnix_Remote(
CGUIInputDeviceUnix* pkInputDevice,
char* pkRemoteDevice);
142 ~CGUIInputThreadDeviceUnix_Remote();
148 eC_Int m_iRemoteDevice;
172 const char* pcKeyboardDevice,
173 const char* pcTouchscreenDevice,
174 const char* pcRemoteDevice,
175 const eC_Int& iTouchScreenX = 0,
176 const eC_Int& iTouchScreenY = 0,
177 const eC_Int& iTouchscreenWidth = 0,
178 const eC_Int& iTouchscreenHeight = 0,
179 const eC_Int& iTSFilterDelta = 10);
203 virtual void SetSize(
const eC_Int& iSizeX,
const eC_Int& iSizeY);
204 virtual void SetOffset(
const eC_Int& iOffsetX,
const eC_Int& iOffsetY);
214 const char* pcKeyboardDevice,
215 const char* pcTouchscreenDevice,
216 const char* pcRemoteDevice,
217 const eC_Int& iTouchscreenFilterDelta);
231 const char* m_pcKeyboardDevice;
232 const char* m_pcTouchscreenDevice;
233 const char* m_pcRemoteDevice;
235#ifdef GUILIANI_UNIX_INPUT_USE_KEYBOARD
239 CGUIInputThreadDeviceUnix_Keyboard* m_pkKeyboardThread;
247#ifdef GUILIANI_UNIX_INPUT_USE_REMOTE
251 CGUIInputThreadDeviceUnix_Remote* m_pkRemoteThread;
254 eC_Int m_iTouchscreenFilterDelta;
261 eC_Semaphore m_kEventQueueSemaphore;
263 pthread_cond_t m_kInputEventCond;
264 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