Release 1.5.4
[platform/upstream/ibus.git] / src / tests / ibus-keymap.c
1 /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
2 #include <sys/types.h>
3 #include <sys/stat.h>
4 #include <fcntl.h>
5 #include <unistd.h>
6 #include "ibus.h"
7
8 #ifndef __linux__
9 /* the test is supported only on linux */
10 int main (int argc, char **argv)
11 {
12     return 3;
13 }
14 #else
15
16 #include <linux/input.h>
17
18 #define KEYBOARDPATH "/dev/input/event4"
19
20 int main (int argc, char **argv)
21 {
22 #if 0
23     gint fd;
24     struct input_event e;
25
26     ibus_init ();
27
28     IBusKeymap *keymap = ibus_keymap_get (argc > 1 ? argv[1] : "us");
29
30     g_object_unref (keymap);
31     return 0;
32
33     fd = open (KEYBOARDPATH, O_RDONLY);
34
35
36     while (fd >= 0 && read (fd, &e, sizeof (e)) == sizeof (e)) {
37         if (e.type != EV_KEY)
38             continue;
39         if (e.value != 0)
40             continue;
41
42         g_debug ("=========================================================================");
43         g_debug ("keycode = %d, %s %s %s %s %s", e.code,
44                     ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, 0)),
45                     ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_SHIFT_MASK)),
46                     ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_MOD5_MASK)),
47                     ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_MOD5_MASK | IBUS_SHIFT_MASK)),
48                     ibus_keyval_name (ibus_keymap_lookup_keysym (keymap, e.code, IBUS_MOD2_MASK))
49         );
50     }
51
52     g_object_unref (keymap);
53 #endif
54     return 0;
55 }
56 #endif