[Xcb] Change touchscreen resolution with XChangeDeviceControl
Jeremy A. Kolb
jkolb at brandeis.edu
Sun Jul 17 10:36:06 EST 2005
You'll want to ask xorg at lists.freedesktop.org.
Jeremy
On Fri, 15 Jul 2005, Carlo E. Prelz wrote:
> Happy day. I hope this forum is an acceptable place for posting my
> question. I find myself in this situation: I have a microtouch
> touchscreen, which I configure as core pointer. All works OK as long
> as I set the proper values for the MinX, MaxX, MinY and MinY
> parameters in xorg.conf.
>
> My problem is that, while in my application (configured to run at
> 1280x1024), I am starting a copy of tuxpaint, a program that you
> probably know. Tuxpaintonly works at 640x480 or 800x600.
>
> With a normal mouse, there is no problem in switching from one
> resolution to the other. With the microtouch, I would have to provide
> new parameters for MinX and friends so that the position of the finger
> corresponds with that of the pointer.
>
> >From what I saw in the code for the microtouch driver (microtouch.c),
> it is possible to assign new values by calling ControlProc (line 530),
> which corresponds to the control_proc field in the local_device_stc
> structure, filled on line 230.
>
> This function is only used within
> programs/Xserver/hw/xfree86/common/xf86Xinput.c, where it is executed
> within ChangeDeviceControl. My knowledge of the X protocol is
> decidedly fuzzy, but I believe that this function is connected with
> the XLib function called XChangeDeviceControl.
>
> So I have been trying to get to the possibility of calling
> XChangeDeviceControl. The first problem I had was that, if I call
> XOpenDevice on a device that is a core pointer, the open call will
> fail. But I need a pointer to a XDevice structure to call
> XChangeDeviceControl. How do I get the XDevice pointers for the core
> pointer and the core keyboard?
>
> Then I added a dummy mouse (module 'void_drv') and set that as core
> pointer. Thus I was able to receive a XDevice structure pointer for
> the touchscreen. But calling XGetDeviceControl always returns an
> error:
>
> X Error of failed request: BadValue (integer parameter out of range
> for operation)
> Major opcode of failed request: 145 (XInputExtension)
> Minor opcode of failed request: 34 (X_GetDeviceControl)
> Value in failed request: 0x0
> Serial number of failed request: 12
> Current serial number in output stream: 12
>
> No matter what value I chose for the controltype parameter - it is not
> clear from the manpage what should this value be.
>
> So: first of all, am I following the appropriate path to solve this
> problem, or there is a brighter solution? And is there some practical
> example about using XGetDeviceControl and friends?
>
> Thanks in advance - Carlo, The Hague
>
>
More information about the xcb
mailing list