| 1 | /*****************************************************************************
|
|---|
| 2 | ** wacomcfg.h
|
|---|
| 3 | **
|
|---|
| 4 | ** Copyright (C) 2003 - John E. Joganic
|
|---|
| 5 | ** Copyright (C) 2004-2008 - Ping Cheng
|
|---|
| 6 | **
|
|---|
| 7 | ** This program is free software; you can redistribute it and/or
|
|---|
| 8 | ** modify it under the terms of the GNU Lesser General Public License
|
|---|
| 9 | ** as published by the Free Software Foundation; either version 2
|
|---|
| 10 | ** of the License, or (at your option) any later version.
|
|---|
| 11 | **
|
|---|
| 12 | ** This program is distributed in the hope that it will be useful,
|
|---|
| 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|---|
| 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|---|
| 15 | ** GNU Lesser General Public License for more details.
|
|---|
| 16 | **
|
|---|
| 17 | ** You should have received a copy of the GNU Lesser General Public License
|
|---|
| 18 | ** along with this program; if not, write to the Free Software
|
|---|
| 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|---|
| 20 | **
|
|---|
| 21 | ****************************************************************************/
|
|---|
| 22 |
|
|---|
| 23 | #ifndef __LINUXWACOM_WACOMCFG_H
|
|---|
| 24 | #define __LINUXWACOM_WACOMCFG_H
|
|---|
| 25 |
|
|---|
| 26 | #include <X11/Xlib.h>
|
|---|
| 27 | #include <X11/extensions/XInput.h>
|
|---|
| 28 | #include <X11/extensions/XIproto.h>
|
|---|
| 29 |
|
|---|
| 30 | /* JEJ - NOTE WE DO NOT INCLUDE Xwacom.h HERE. THIS ELIMINATES A CONFLICT
|
|---|
| 31 | * WHEN THIS FILE IS INSTALLED SINCE Xwacom.h WILL IN MANY CASES NOT
|
|---|
| 32 | * GO WITH IT. SOMEDAY IT MAY BE PART OF XFREE86. */
|
|---|
| 33 |
|
|---|
| 34 | typedef struct _WACOMCONFIG WACOMCONFIG;
|
|---|
| 35 | typedef struct _WACOMDEVICE WACOMDEVICE;
|
|---|
| 36 | typedef void (*WACOMERRORFUNC)(int err, const char* pszText);
|
|---|
| 37 | typedef struct _WACOMDEVICEINFO WACOMDEVICEINFO;
|
|---|
| 38 |
|
|---|
| 39 | typedef enum
|
|---|
| 40 | {
|
|---|
| 41 | WACOMDEVICETYPE_UNKNOWN,
|
|---|
| 42 | WACOMDEVICETYPE_CURSOR,
|
|---|
| 43 | WACOMDEVICETYPE_STYLUS,
|
|---|
| 44 | WACOMDEVICETYPE_ERASER,
|
|---|
| 45 | WACOMDEVICETYPE_PAD,
|
|---|
| 46 | WACOMDEVICETYPE_TOUCH,
|
|---|
| 47 | WACOMDEVICETYPE_MAX
|
|---|
| 48 | } WACOMDEVICETYPE;
|
|---|
| 49 |
|
|---|
| 50 | struct _WACOMDEVICEINFO
|
|---|
| 51 | {
|
|---|
| 52 | const char* pszName;
|
|---|
| 53 | WACOMDEVICETYPE type;
|
|---|
| 54 | };
|
|---|
| 55 |
|
|---|
| 56 | struct _WACOMCONFIG
|
|---|
| 57 | {
|
|---|
| 58 | Display* pDisp;
|
|---|
| 59 | WACOMERRORFUNC pfnError;
|
|---|
| 60 | XDeviceInfo * pDevs;
|
|---|
| 61 | int nDevCnt;
|
|---|
| 62 | };
|
|---|
| 63 |
|
|---|
| 64 | struct _WACOMDEVICE
|
|---|
| 65 | {
|
|---|
| 66 | WACOMCONFIG* pCfg;
|
|---|
| 67 | XDevice* pDev;
|
|---|
| 68 | };
|
|---|
| 69 |
|
|---|
| 70 |
|
|---|
| 71 | /*****************************************************************************
|
|---|
| 72 | ** Functions
|
|---|
| 73 | *****************************************************************************/
|
|---|
| 74 |
|
|---|
| 75 | WACOMCONFIG * WacomConfigInit(Display* pDisplay, WACOMERRORFUNC pfnErrorHandler);
|
|---|
| 76 | /* Initializes configuration library.
|
|---|
| 77 | * pDisplay - display to configure
|
|---|
| 78 | * pfnErrorHandler - handler to which errors are reported; may be NULL
|
|---|
| 79 | * Returns WACOMCONFIG handle on success, NULL on error.
|
|---|
| 80 | * errno contains error code. */
|
|---|
| 81 |
|
|---|
| 82 | void WacomConfigTerm(WACOMCONFIG * hConfig);
|
|---|
| 83 | /* Terminates configuration library, releasing display. */
|
|---|
| 84 |
|
|---|
| 85 | int WacomConfigListDevices(WACOMCONFIG * hConfig, WACOMDEVICEINFO** ppInfo,
|
|---|
| 86 | unsigned int* puCount);
|
|---|
| 87 | /* Returns a list of wacom devices.
|
|---|
| 88 | * ppInfo - pointer to WACOMDEVICEINFO* to receive device data
|
|---|
| 89 | * puSize - pointer to receive device count
|
|---|
| 90 | * Returns 0 on success, -1 on failure. errno contains error code.
|
|---|
| 91 | * Comments: You must free this structure using WacomConfigFree. */
|
|---|
| 92 |
|
|---|
| 93 | WACOMDEVICE * WacomConfigOpenDevice(WACOMCONFIG * hConfig,
|
|---|
| 94 | const char* pszDeviceName);
|
|---|
| 95 | /* Open a device by name.
|
|---|
| 96 | * pszDeviceName - name of XInput device corresponding to wacom device
|
|---|
| 97 | * Returns handle to device on success, NULL on error.
|
|---|
| 98 | * errno contains error code.
|
|---|
| 99 | * Comments: Close using WacomConfigCloseDevice */
|
|---|
| 100 |
|
|---|
| 101 | int WacomConfigCloseDevice(WACOMDEVICE * hDevice);
|
|---|
| 102 | /* Closes a device.
|
|---|
| 103 | * Returns 0 on success, -1 on error. errno contains error code. */
|
|---|
| 104 |
|
|---|
| 105 | int WacomConfigSetRawParam(WACOMDEVICE * hDevice, int nParam, int nValue, unsigned * keys);
|
|---|
| 106 | /* Sets the raw device parameter to specified value.
|
|---|
| 107 | * nParam - valid paramters can be found Xwacom.h which is not
|
|---|
| 108 | * automatically included.
|
|---|
| 109 | * nValue - 32 bit integer value
|
|---|
| 110 | * keys - an array of keys and modifiers
|
|---|
| 111 | * Returns 0 on success, -1 on error. errno contains error code.
|
|---|
| 112 | * EINVAL - invalid parameter or value
|
|---|
| 113 | * EIO - unknown X failure, use XSetErrorHandler to capture complete
|
|---|
| 114 | * error code and message
|
|---|
| 115 | * Comments: Data is sent to wacom_drv module without any error checking.
|
|---|
| 116 | * Generally, you should use the more specific handler functions in this
|
|---|
| 117 | * library, but for some parameters, particularly experimental ones, you
|
|---|
| 118 | * will probably have to set them directly. */
|
|---|
| 119 |
|
|---|
| 120 | int WacomConfigGetRawParam(WACOMDEVICE *hDevice, int nParam, int *nValue, int valu, unsigned * keys);
|
|---|
| 121 | /* Gets the raw device parameter.
|
|---|
| 122 | * nParam - valid paramters can be found Xwacom.h which is not
|
|---|
| 123 | * automatically included.
|
|---|
| 124 | * nValue - the device parameter is returned in the integer
|
|---|
| 125 | * pointed by this parameter.
|
|---|
| 126 | * valu - calling valuator value: 1: Get 3: GetDefault
|
|---|
| 127 | * keys - an array of keys and modifiers
|
|---|
| 128 | * Returns 0 on success, -1 on error. errno contains error code.
|
|---|
| 129 | * EINVAL - invalid parameter or value
|
|---|
| 130 | * EIO - unknown X failure, use XSetErrorHandler to capture complete
|
|---|
| 131 | * error code and message
|
|---|
| 132 | */
|
|---|
| 133 |
|
|---|
| 134 | void WacomConfigFree(void* pvData);
|
|---|
| 135 | /* Frees memory allocated by library. */
|
|---|
| 136 |
|
|---|
| 137 | #endif /* __LINUXWACOM_WACOMCFG_H */
|
|---|
| 138 |
|
|---|