package org.westmalle.wayland.nativ.libxkbcommonx11;


import com.sun.jna.Pointer;

public class Libxkbcommonx11 {

    public native int xkb_x11_get_core_keyboard_device_id(Pointer connection);

    public native Pointer xkb_x11_keymap_new_from_device(Pointer context,
                                                         Pointer connection,
                                                         int device_id,
                                                         int flags);

    public native Pointer xkb_x11_state_new_from_device(Pointer keymap,
                                                        Pointer connection,
                                                        int device_id);
}

@@ -81,39 +81,389 @@
 r;%0A%0A
-public class Libxkbcommonx11 %7B%0A
+import javax.annotation.Nonnegative;%0Aimport javax.annotation.Nonnull;%0Aimport javax.annotation.Nullable;%0A%0Apublic class Libxkbcommonx11 %7B%0A%0A    /**%0A     * Get the keyboard device ID of the core X11 keyboard.%0A     *%0A     * @param connection An XCB connection to the X server.%0A     *%0A     * @return A device ID which may be used with other xkb_x11_* functions, or -1 on failure.%0A     */
 %0A   
@@ -517,16 +517,25 @@
 vice_id(
+@Nonnull 
 Pointer 
@@ -544,24 +544,741 @@
 nnection);%0A%0A
+    /**%0A     * Create a keymap from an X11 keyboard device.%0A     * %3Cp/%3E%0A     * This function queries the X server with various requests, fetches the details of the active keymap on a keyboard%0A     * device, and creates an xkb_keymap from these details.%0A     *%0A     * @param context    The context in which to create the keymap.%0A     * @param connection An XCB connection to the X server.%0A     * @param device_id  An XInput 1 device ID (in the range 0-255) with input class KEY. Passing values outside of this%0A     *                   range is an error.%0A     * @param flags      Optional flags for the keymap, or 0.%0A     *%0A     * @return A keymap retrieved from the X server, or NULL on failure.%0A     */%0A    @Nullable%0A
     public n
@@ -1314,32 +1314,41 @@
 new_from_device(
+@Nonnull 
 Pointer context,
@@ -1397,32 +1397,41 @@
                 
+@Nonnull 
 Pointer connecti
@@ -1483,32 +1483,45 @@
                 
+@Nonnegative 
 int device_id,%0A 
@@ -1585,24 +1585,654 @@
 nt flags);%0A%0A
+    /**%0A     * Create a new keyboard state object from an X11 keyboard device.%0A     * %3Cp/%3E%0A     * This function is the same as xkb_state_new(), only pre-initialized with the state of the device at the time this%0A     * function is called.%0A     *%0A     * @param keymap     The keymap for which to create the state.%0A     * @param connection An XCB connection to the X server.%0A     * @param device_id  An XInput 1 device ID (in the range 0-255) with input class KEY. Passing values outside of this%0A     *                   range is an error.%0A     *%0A     * @return A new keyboard state object, or NULL on failure.%0A     */%0A    @Nullable%0A
     public n
@@ -2275,16 +2275,25 @@
 _device(
+@Nonnull 
 Pointer 
@@ -2356,16 +2356,25 @@
         
+@Nonnull 
 Pointer 
@@ -2437,24 +2437,37 @@
             
+@Nonnegative 
 int device_i

add docs