Commit Graph

28 Commits

Author SHA1 Message Date
Peter Hutterer
5adbc6b98c Initialise b_map_data to correct size. Bug #13991
X.Org Bug 13991 <http://bugs.freedesktop.org/show_bug.cgi?id=13991>
2008-01-29 14:07:49 +10:30
Zephaniah E. Hull
2d2c4804f9 evdev.c:
Set and use the X mode control, letting XInput see it properly.

    Kill some cruft.

evdev.h:

    Set and use the X mode control, letting XInput see it properly.

evdev_axes.c:

    Set and use the X mode control, letting XInput see it properly.

evdev_key.c:

    Remove some cruft, the bell func can be NULL now, so do so.

    Don't bother looking for keys above 0xF7 until we can actually do
    something with them.
2007-06-11 09:08:24 -04:00
Zephaniah E. Hull
f15636ac52 Wheel mice work again!
(Old configs don't.)

evdev.c:

    Add EvdevParseMapToButton and EvdevParseMapToButtons to evdev_map_parsers.

    Add EvdevParseMapOption to search through evdev_map_parsers.

    Fix up EvdevTokenize to handle the evdev_option_token_t changes.

    EvdevAxesNew0 after BtnNew0 instead of before now.
    (This isn't the right fix.)

evdev.h:

    EVDEV_MAXBUTTONS -> BTN_MAX.

    Redid evdevBtnRec with the new mapping goodness.

    Removed v_min and v_max from evdevAbsRec.

    Reworked evdev_option_token_t, no union, no is_chain.
    If it's a chain, it still has a string, but the chain pointer is set.

    EvdevParseMapToButton, EvdevParseMapToButtons, and EvdevParseMapOption.

evdev_axes.c:

    Kill off EvdevAxesMapButton, a variant lives in evdev_btn.c now.

    Changes for the evdev_option_token_t changes.

    Use EvdevParseMapOption instead of repeating the contents twice.

    Disable EV_ABS_V_INVERT for the moment. (Better fix maybe needed.)

evdev_btn.c:

    s/Ptr /Rec */g

    EvdevMapButton and parser.

    EvdevMapButtons and parser.

    Nuke EvdevBtnCalcRemap as a whole.

    Move everything but the alloc to New1 from New0.

    New mapping code, same guts os the axes mapping code even.
2007-06-06 04:41:54 -04:00
Zephaniah E. Hull
27a86f8168 Update the copyright notices for me to include 2007.
Finish merging copyright notices. (evdev_key.c was missed.)
2007-06-05 23:19:59 -04:00
Zephaniah E. Hull
26dbf38041 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/driver/xf86-input-evdev
Conflicts:

	src/evdev.h
2007-06-05 23:14:46 -04:00
Zephaniah E. Hull
294355842b Alright, this is a really big commit that breaks stuff.
evdev.h:

    Switch to flags in the abs and rel structs.

    Add the axes struct, and defines.

    Rework the abs and rel structs, moving stuff to the axes struct and moving
    everything to the new mapping handling.

    Add the structs and function declarations for the new tokenization stuff,
    parsing stuff, and mapping stuff.

evdev.c: Add EvdevTokenize, and the evdev_map_parsers list.

evdev_axes.c:

    Basicly a full rewrite, big, messy.

    We now use a completely different mapping setup for axes, and mapping to
    buttons is currently missing.

    However we now handle ABS_CALIB and ABS_AREA, including rotation in both
    rel and abs modes.

evdev_btn.c:

    Disable lots of code and break things horribly, we compile but we don't
    work very well.

    Fixing this is next on my todo list.
2007-06-05 23:12:58 -04:00
Kristian Høgsberg
9eb546e0e0 Fix header file #ifdef guard. 2007-06-05 18:26:07 -04:00
Kristian Høgsberg
daf926081d Merge copyright notices. 2007-06-05 18:24:33 -04:00
Zephaniah E. Hull
f87c44b90c Try harder to make unplugging work. 2007-04-24 07:44:26 -04:00
Zephaniah E. Hull
23309b334c Kill some more unused bits. 2007-04-24 07:34:53 -04:00
Zephaniah E. Hull
a0ea7363f5 Remove all of evdev_brain.c and all callers.
Remove the non-functional 2.4 kernel compiling compatibility.

Remove the XInput 1.4+ SendCoreEvents/DontSendCoreEvents define replacements.

Remove evdevDriver, some stuff from evdevDevice, all users.

NOTE: This WILL BREAK all existing configurations.

NOTE: Device read failure segfaults, don't unplug stuff.
2007-04-24 06:49:11 -04:00
Peter Hutterer
ba65c34068 Remove driver from list if no device is associated any more.
This effectively stops the driver from hotplugging new devices. Devices have
to be added with the dbus hotplugging events.
2007-04-23 10:08:48 +09:30
Philip Langdale
24f9e67a8f Stop caching the screen size for scaling.
Do be able to correctly scale absolute inputs, the actual
screen size must be used as this changes when the screen
resizes.
2007-02-10 22:17:01 -08:00
root
8155e49e76 Pad out button_names so we can loop over things more sanely.
Support for ignoring the existance of buttons,
and for not telling X about them.

By default don't tell X about tools and touch as buttons.
TODO: Revisit this choice later.
2007-01-08 08:59:44 -05:00
Daniel Stone
d7f686bfa3 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/driver/xf86-input-evdev into input-hotplug 2006-10-17 11:31:58 +03:00
Zephaniah E. Hull
a96b048e56 Make some debugging messages optional.
Correctly handle emulating relative mode from absolute data in the case where
we do not get X and Y data at the same time on touching.
2006-10-02 17:50:55 -04:00
Zephaniah E. Hull
ab65184d47 Fix compilation. 2006-09-10 06:47:15 -04:00
Zephaniah E. Hull
771eee9682 Replace the old two buffer approach to handling rel emulation of abs axes,
should help with some of the reported jitter problems.
2006-07-23 22:40:51 -04:00
Zephaniah E. Hull
fa03de438e Move the axis to button map code back into the rel code.
This might solve some problems, but should at least prevent some odd behavior.
2006-07-19 23:06:23 -04:00
Daniel Stone
1cb568c0a6 prune device list on DEVICE_CLOSE
Remove a device from the device list when we get DEVICE_CLOSE.
2006-07-19 19:41:54 -04:00
Zephaniah E. Hull
dc88668839 Split the New functions so that structs can be allocated and buttons
detected, and then stuff that depends on _other_ areas.
(Specificly, axes and btn have a circular dependency on which one has to
run first, this solves that.)

Add button names, and a way to get a button number from a name.

Add a function for checking to see if a button exists, takes the number from the previous function.

Change the (unused) state array of pointers in the button struct to an array of pointers to functions for callback.

Implemented the 'touch' feature, on by default if BTN_DIGI_TOUCH exists,
won't, in rel mode, process x/y data unless it's down, and is used to
try and make 'pick up stencil, move to other side of digitizer, set back
down' not jump to the other side of the screen in rel mode.
(This doesn't work as well as it could, but I'm fairly sure that it's
due to the quality of the absolute input device I'm using, but feedback
would be really nice.)

FIXME: Update the manpage for this.
2006-07-13 11:59:25 -04:00
Zephaniah E. Hull
1b03250797 Hopefully fix the bitops stuff to actually _work_. 2006-05-15 22:47:23 +00:00
Zephaniah E. Hull
e9c60da89a Tweak credits and references.
Change the longs to unsigned longs in the bitfields.
Cleanup our includes.
Stop pulling in asm/types.h and asm/bitops.h.
Conditionally define the stuff that used to come from the above, including
    our own test_bit, set_bit and clear_bit.
Change the longs to unsigned longs in the bitfields.
Change the longs to unsigned longs in the bitfields.
Use the bitop defines in evdev.h properly.
Change the longs to unsigned longs in the bitfields.
Change the longs to unsigned longs in the bitfields.
Use the bitop defines in evdev.h properly.
Change the longs to unsigned longs in the bitfields.
Use the bitop defines in evdev.h properly.
Add HPPA/HPPA64 entries. (Thanks to Fabio M. Di Nitto
    <fabbione@ubuntu.com>)
2006-05-14 11:55:50 +00:00
Zephaniah E. Hull
cffc51e04a evdevAbsRec: Remove the scale bool, rename scale_x and scale_y to scale[2].
evdevAxesRec: Make btnMap an int array instead of a Card8 array.
Make abs support and non-core stuff actually work.
Relative emulation for abs mode is still a bit broken, but that's far less
    critical.
How many buttons we've registered is configuration information, not an
    error message.
2006-04-14 07:01:37 +00:00
Zephaniah E. Hull
c97fdb4449 Remove evdev_abs.c and evdev_rel.c. Added evdev_axes.c.
Change the calls to refer to EvdevAxes instead of Abs and Rel. Include
    mipointer.h. (Fixes a compile error.) Remove an unused variable from
    EvdevReadInput.
Removed evdev_abs.c and evdev_rel.c, added evdev_axes.c. Added count to rel
    and abs. Moved btnMap from rel to the new axes. Shuffle some includes,
    and include stdarg.h.
Removed.
New, a mix of rel and abs that should actually work in the rel case.
Rearrange include order. btnMap was moved from being part of rel to being
    part of axes.
Removed.
Rearrange include order.
Rearrange include order.
NOTE: This commit has been compile tested, not run tested.
I have some other changes to make before I can do more heavy testing.
2006-04-08 17:23:06 +00:00
Adam Jackson
ad4d62e1d3 Unlibcwrap. Bump server version requirement. Bump to 1.1.0. 2006-04-07 17:30:27 +00:00
Zephaniah E. Hull
47482dad76 Compile with -Wall now. Add evdev.h to the sources so that make distcheck
gets it.
Bugzilla #5943 <https://bugs.freedesktop.org/show_bug.cgi=5943> Make sure
    we include errno.h.
Reduce EVDEV_MAXBUTTONS to 96.
Split up evdevStateRec into a struct with pointers to new structs for btn,
    abs, rel, and key.
New structure type for handling the device capability bitmaps.
Add device bits and struct input_id to evdevDeviceRec.
Add matching device bits, struct input_id, and pass number to
    evdevDriverRec.
Prototype for evdevGetBits from evdev_brain.c.
Conversion for the evdevStateRec split.
Remove the errno.h include, it's in evdev.h for now.
Move the bit getting from the drivers to here, into evdevDeviceRec.
Fix a rare case of fd leakage.
Add several new (and somewhat ugly) device matching options: <map>Bits:
    Where map is one of ev, key, rel, abs, msc, led, snd, or ff. In the
    format of '+0 +3 -1-2 ~5-10', requires bits 0 and 3 be set, bits 1 and
    2 to not be set, and at least one bit in the range of 5 to
10 be set. bustype, vendor, product, and version: Simple integer options
    for matching the struct device_id fields, must be 0 (the default) or
    the exact value you wish to match against. pass: Bounded to 0-3,
    devices are matched to the first matching entry found, order for
    multiple matching entries in the same pass is undefined, but it starts
    with pass 0 and goes to pass 3.
Adaptation for the evdevStateRec split and the change in capability bitmap
    handling.
Add evdevGetBits to fill the new evdevBitsRec struct type.
Lots of somewhat ugly code for matching by capability bits.
Split out of evdevRescanDevices to smaller handling functions. The new
    design should be better if I decide to handle arbitrary Device fields
    again.
Adaptation for the evdevStateRec split and the change in capability bitmap
    handling.
Handle all buttons, no button compression at this time, however we reorder
    things so that BTN_MOUSE comes before BTN_MISC, somewhat evily.
Support for the new btn->state[] array of int pointers.
Adaptation for the evdevStateRec split and the change in capability bitmap
    handling.
Adaptation for the evdevStateRec split and the change in capability bitmap
    handling.
I really hope I didn't miss any changes.
2006-02-24 13:44:56 +00:00
Zephaniah E. Hull
e7d4e6b11e Bugzilla #5696 <https://bugs.freedesktop.org/show_bug.cgi?id=5696> Slightly
updated version of the patch listed. Basicly a rewrite of the driver,
    with a few pieces of the old. XKB support, proper device matching,
    basic absolute pointer support. Lots more, will require some user
    config changes.
2006-02-14 14:57:37 +00:00