XQueryDeviceState(3) 拡張入力デバイスの状態を問い合わせる

書式

XQueryDeviceState(display, device)

      Display *display;

      XDevice *device

引き数

display
X サーバへの接続を指定する。
device
状態を問い合わせるデバイスを指定する。

説明

XQueryDeviceState リクエストは入力デバイスの状態を問い合わせる。 このリクエストによってデバイス上のキーやボタン(押されているかどうか)や バリュエータ(現在の値)の現在の状態が通知される。 デバイス上のバリュエータは、相対値の情報の場合には 0 を通知し、絶対値 の情報の場合には現在の値を通知する。

XQueryDeviceState はエラー BadDevice を起こすことがある。

構造体

XDeviceState 構造体の内容を以下に示す。

typedef struct {
        XID device_id;
        int num_classes;
        XInputClass *data;
} XDeviceState;

XValuatorState 構造体の内容を以下に示す。

typedef struct {
        unsigned char class;
        unsigned char length;
        unsigned char num_valuators;
        unsigned char mode;
        int *valuators;
} XValuatorState;

XKeyState 構造体の内容を以下に示す。

typedef struct {
        unsigned char class;
        unsigned char length;
        short         num_keys;
        char keys[32];
} XKeyState;

XButtonState 構造体の内容を以下に示す。

typedef struct {
        unsigned char class;
        unsigned char length;
        short         num_buttons;
        char buttons[32];
} XButtonState;

返り値

BadDevice
不正なデバイスが指定された。指定されたデバイスが存在しないか、そのクラ イアントが XOpenInputDevice を使ってデバイスをオープンしていない。 このエラーは、指定したデバイスが他のクライアントの XChangeKeyboardDevice リクエストや XChangePointerDevice リ クエストによって X のキーボードデバイスや X のポインタデバイスにされた 時にも起こる。