#include "../../SDL_internal.h"
#ifndef SDL_x11pen_h_
#define SDL_x11pen_h_
#include "SDL_x11video.h"
#include "../../events/SDL_pen_c.h"
extern void X11_InitPen(SDL_VideoDevice *_this);
extern void X11_QuitPen(SDL_VideoDevice *_this);
#ifdef SDL_VIDEO_DRIVER_X11_XINPUT2
struct SDL_VideoData;
#define SDL_X11_PEN_AXIS_VALUATOR_MISSING -1
typedef struct X11_PenHandle
{
SDL_PenID pen;
bool is_eraser;
int x11_deviceid;
int valuator_for_axis[SDL_PEN_AXIS_COUNT];
float slider_bias; float rotation_bias; float axis_min[SDL_PEN_AXIS_COUNT];
float axis_max[SDL_PEN_AXIS_COUNT];
} X11_PenHandle;
extern void X11_PenAxesFromValuators(const X11_PenHandle *pen,
const double *input_values, const unsigned char *mask, int mask_len,
float axis_values[SDL_PEN_AXIS_COUNT]);
extern X11_PenHandle *X11_MaybeAddPenByDeviceID(SDL_VideoDevice *_this, int deviceid);
extern void X11_RemovePenByDeviceID(int deviceid);
extern X11_PenHandle *X11_FindPenByDeviceID(int deviceid);
extern void X11_NotifyPenProximityChange(SDL_VideoDevice *_this, SDL_Window *window, int deviceid);
#endif
#endif