new keyboard event processing system (second take)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello fellow _xfree86_ hackers!

This is a second attempt to propose (for inclusion in XFree86) my keyboard
driver, and a whole reimplementation of key-event handling.


I have some pieces of documentation on my site, you can start here: 
    http://maruska.dyndns.org/wiki/fork-install

There's a brief documentation on "medved" too.

The patch is here:
http://maruska.dyndns.org/comp/packages/medved-pipeline.patch


I'm writing this email, because I have modified the code recently:

- in the low-level keyboard driver (medved) I have separated the OS dependent
  part. I think that BSD hackers could make it non linux-only easily.

  Despite my 3 emails to the linux-kernel ML, the necessary feature (timestamping
  events with monotonic time) is still missing in Linux.
  'Wscons' driver in BSD does provide timestamped events.
   
- I have put all the new functionality in separate new files, so the patch
  constains, i hope readable, necessary changes to the current code and
  separate new files.

- I provide the sources of the "forking" plugin under the XFree86 1.1 license
  (as is the patch itself, of course).



Let me outline the changes to the current code, and problems which need solution:


** Changes due to the new Xlib calls:

I don't master the configuration (imake) system, so the patch is not clean:
in the header files used for client side libraries, I use

#if (1 || MMC_PIPELINE)
instead of
#if MMC_PIPELINE

This is because I don't know how to push -D MMC_PIPELINE to the CFLAGS used for
the compilation of client libs, but _also_ I don't know where is kept the
configuration for when external applications are compiled: is there any
_generated_ header file where are build-time preferences? I guess it's in the
imake(file) system somewhere.

include/extensions/XKB.h
include/extensions/XKBproto.h
include/extensions/XKBstr.h
lib/X11/XKBlib.h

The server side patch for processing those requests:

programs/Xserver/xkb/xkb.c


** Changes due to new input event  with time
programs/Xserver/hw/xfree86/common/xf86Init.c


** Medved provides timestamped events so to hand the over: 

Also, related, -- after processing events -- push the current time (an estimate
on time without any key events) down the pipeline:

programs/Xserver/hw/xfree86/common/xf86Xinput.c
programs/Xserver/hw/xfree86/common/xf86Xinput.h


** Changes due to different time handling:

I needed to access the current-time (current just before calling Select) in
wakup-handler, and also need the current-time for BlockHandlers.


include/Xdefs.h
programs/Xserver/dix/dixutils.c
programs/Xserver/include/dix.h

programs/Xserver/os/WaitFor.c


*** ProcessInputEvents passes current time from Select() to XKB.

programs/Xserver/dix/dispatch.c

also down in hw/xfree86:

programs/Xserver/hw/xfree86/common/xf86Priv.h
programs/Xserver/hw/xfree86/common/xf86Events.c
programs/Xserver/hw/xfree86/common/xf86Init.c
programs/Xserver/hw/xfree86/loader/dixsym.c     .... low-level drivers need
                                                access;  medved for example.


** VT changing common to kbd &  medved:
programs/Xserver/hw/xfree86/loader/xf86sym.c
programs/Xserver/hw/xfree86/os-support/linux/lnx_kbd.c


** Time: I need the X server to use "monotonic time"
programs/Xserver/os/utils.c


** Integrating the pipeline into the server:
Disabling the old path.

programs/Xserver/dix/devices.c
programs/Xserver/dix/events.c    ... 

programs/Xserver/include/input.h
programs/Xserver/include/inputstr.h


programs/Xserver/xkb/xkbActions.c

xkbAccessX.c is incompatible with the new code !!
AccessX functionality is not reimplemented, apart from better auto-repeat.
programs/Xserver/xkb/xkbAccessX.c


programs/Xserver/xkb/xkbInit.c
ograms/Xserver/xkb/xkbPrKeyEv.c

programs/Xserver/xkb/xkb.h

programs/Xserver/xkb/xkbUtils.c


** API for plugins
include/extensions/XKBsrv.h


bye
_______________________________________________

Devel@xxxxxxxxxxx
http://XFree86.Org/mailman/listinfo/devel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [X Forum]     [XFree86]     [XFree86 Newbie]     [X.Org]     [IETF Annouce]     [Security]     [Fontconfig]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux