Hi, 
I am trying to integrate a proprietary keyboard, sending linux scancodes via 
TCP.
My idea is to use uinput to forward the received keycodes to locally running 
applications (including the x server).
In my xorg.conf I have the following section:

Section "InputDevice"
    # to enable user defined virtual keyboard
    Identifier     "Keyboard1"
    Option         "Device" "/dev/input/event14"
    Driver         "evdev"
EndSection
where event14 is the event queue associated to the uinput simulated "device".
I do see the scancodes sent from my device with both commands:
- xinput test-xi2 --root
-  showkey -s
However I am not able to intercept the keyboard events in this simple X 
application

int main(int argc, char** argv)
{
  Display* display = XOpenDisplay(NULL);
  Window window = XCreateSimpleWindow(display, RootWindow(display, 0), 1, 1, 
500, 500,
                                      0, BlackPixel(display, 0), 
BlackPixel(display, 0));
  XSelectInput(display, window, KeyPressMask | KeyReleaseMask);
  XMapWindow(display, window);
  XEvent report;
  while (1)
  {
    XNextEvent(display, &report);
    switch (report.type)
    {
    case KeyRelease:
      printf("got a KeyRelease event: %d, %d\n", report.xkey.keycode, 
report.xkey.state);
      break;
    case KeyPress:
      printf("got a KeyPress event: %d, %d\n", report.xkey.keycode, 
report.xkey.state);
      break;
    default:
      printf("got a %d event\n", report.type);
      break;

    }
  }
  XFlush(display);
  sleep(5);
  return (EXIT_SUCCESS);
}








_______________________________________________
xorg@lists.x.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.x.org/mailman/listinfo/xorg
Your subscription address: %(user_address)s

Reply via email to