/*
 * Copyright 2007 Peter Hutterer
 * Copyright 2009 Przemys¿aw Firszt
 *
 * Permission to use, copy, modify, distribute, and sell this software
 * and its documentation for any purpose is hereby granted without
 * fee, provided that the above copyright notice appear in all copies
 * and that both that copyright notice and this permission notice
 * appear in supporting documentation, and that the name of Red Hat
 * not be used in advertising or publicity pertaining to distribution
 * of the software without specific, written prior permission.  Red
 * Hat makes no representations about the suitability of this software
 * for any purpose.  It is provided "as is" without express or implied
 * warranty.
 *
 * THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
 * NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
 * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#include <pthread.h> 
 
#define SYSCALL(call) while (((call) == -1) && (errno == EINTR))

typedef struct _TS_TouchScreenDeviceRec
{
    char *device;
    pthread_t thread;
    int run;
    int done;           /* set when module is being removed */
    int version;        /* Driver version */
    Atom* labels;
    int num_vals;
    int axes;
    
    int minX, maxX, minY, maxY;
    int screenWidth, screenHeight;
    
} TS_TouchScreenDeviceRec, *TS_TouchScreenDevicePtr ;

typedef struct  _TS_TouchScreenDeviceReport
{
   short x, y;
   unsigned short event;   
} TS_TouchScreenDeviceReport, *TS_TouchScreenDeviceReportPtr;


#define CURSOR_MOVE_EVENT  1
#define BUTTON_DOWN_EVENT  2
#define BUTTON_UP_EVENT    4
