other versions
- wheezy 4.1.0.20011224-6
| XListInputDevices(3X11) | X FUNCTIONS | XListInputDevices(3X11) |
名前¶
XListInputDevices, XFreeDeviceList - 利用可能な入力デバイスの列挙書式¶
XDeviceInfo *XListInputDevices( display, ndevices_return)Display * display;
int * ndevices_return;
XDeviceInfo * list;
引き数¶
- display
- X サーバへの接続を指定。
- ndevices_return
- 利用可能なデバイスの数を返す領域へのポインタを指定。
- list
- 解放するデバイスの数を指定。 関数 XFreeDeviceList は、利用可能な拡張入力のデバイスのリストを 解放する。
説明¶
XListInputDevices リクエストは、利用可能な拡張デバイスのリストを返す。このリストには、現 在X サーバを通じて利用可能な X のポインタ、X のキーボード、その他の入 力デバイスが含まれる。さらにこのリストには、現在は利用可能でないが要求 すれば X サーバを通じてアクセスすることができる入力デバイスも含まれる。 サーバの実装によっては、サーバを初期化したときに全ての入力デバイスを利 用可能にするものがあるかもしれない。あるいは、クライアントが入力デバイ スへのアクセスを要求するときまで待つものもあるかもしれない。後者の場合 には、ある時には入力デバイスは利用可能としてリストされ、別の時にはリス トされないこともある。 サーバが利用可能な各入力デバイスについて、XListInputDevices リクエスト は XDeviceInfo 構造体を返す。この構造体は構造体のリストへのポインタを 含んでおり、リストの各要素はデバイスがサポートしている入力のクラス1つ に関する情報を持っている。typedef struct _XDeviceInfo
{
XID id;
Atom type;
char *name;
int num_classes;
int use;
XAnyClassPtr inputclassinfo;
} XDeviceInfo;
id メンバは 0-128
の範囲の数字で、デバイスを一意に特定する。この数字は
サーバが初期化を行ったときに割り当てられる。
type フィールドは Atom
型であり、デバイスの性質を示す。
name
フィールドは、定義されているデバイスのタイプの1つに対応する、
NULL
で終る文字列へのポインタを持つ。この名前は以下に示す文字列のいず
れかである(ヘッダファイル
XI.h で定義されている):
XI_MOUSE XI_TABLET XI_KEYBOARD XI_TOUCHSCREEN XI_TOUCHPAD XI_BUTTONBOX
XI_BARCODE XI_TRACKBALL XI_QUADRATURE XI_ID_MODULE XI_ONE_KNOB XI_NINE_KNOB
XI_KNOB_BOX XI_SPACEBALL XI_DATAGLOVE XI_EYETRACKER XI_CURSORKEYS XI_FOOTMOUSE
これらの名前は XDeviceInfo
構造体の name
フィールドと直接比較すること
ができ、また、XDeviceInfo
構造体の type
フィールドと比較することができ
るアトムを取得するために
XInternAtom
リクエストで使うことができる。
num_classes フィールドは 0-255
の範囲の値であり、ListInputDevices
が返
す情報について、デバイスがサポートしている入力クラスの数を示す。入力ク
ラスによっては、ListInputDevices
が情報を全く返さないものもある(Focus
クラスや Proximiti
クラスなど)。
use
フィールドはデバイスが現在どのように使用されているかを示す。この値
が IsXKeyboard
ならば、現在このデバイスは
X
のキーボードとして使
われている。値が
IsXPointer
ならば、このデバイスは現在
X のポイ
ンタとして使われている。また、値が
IsXExtensionDevice ならば、こ
のデバイスは拡張デバイスとして使用することができる。
inputclassinfo
フィールドは、入力クラスに依存する最初のデータへのポイ
ンタを持っている。この最初の2つのフィールドは全てのクラスで共通である。
class フィールドは 0-255
の範囲の数である。この数は情報が返される入力
のクラスを一意に区別する。現在定義されているクラスは、KeyClass,
ButtonClass, ValuatorClass である。
length フィールドは 0-255
の範囲の数である。この数は、この入力クラスに
含まれているデータのバイト数を示す。この長さは
class フィールドと length
フィールドを含んでいる。
XKeyInfo
構造体は、デバイス上のキーの特性を記述する。これは以下のよう
に定義されている:
typedef struct _XKeyInfo {
XID class;
int length;
unsigned short min_keycode;
unsigned short max_keycode;
unsigned short num_keys;
} XKeyInfo;
min_keycode は KEYCODE
型である。これはデバイスが通知する最小のキーコー
ドを指定する。最小のキーコードは8未満にはならない。
min_keycode は KEYCODE
型である。これはデバイスが通知する最大のキーコー
ドを指定する。最大のキーコードは255より大きくはならない。
num_keys
はデバイスが持っているキーの数を示す。
XButtonInfo
構造体は、デバイス上のボタンの特性を定義する。これは以下の
ように定義されている:
typedef struct _XButtonInfo {
XID class;
int length;
short num_buttons;
} XButtonInfo;
num_bottons
はデバイスが持っているボタンの数を示す。
XValuatorInfo
構造体は、デバイス上のバリュエータの特性を定義する。これ
は以下のように定義されている:
typedef struct _XValuatorInfo {
XID class;
int length;
unsigned char num_axes;
unsigned char mode;
unsigned long motion_buffer;
XAxisInfoPtr axes;
} XValuatorInfo;
num_axes
はデバイスがサポートしている軸の数を示す。
mode は定数であり、Absolute と
Relative
のいずれかである。デバイスによっ
ては、SetDeviceMode
リクエストによって mode
を動的に変えることができる。
motion_buffer_size
はデバイスの動作履歴バッファが持つことができる要素
数を示す基数である。
axis フィールドは XAxisInfo
構造体へのポインタを持つ。
XAxisInfo
構造体は以下のように定義されている:
typedef struct _XAxisInfo {
int resolution;
int min_value;
int max_value;
} XAxisInfo;
解像度は、カウント数/メートルの値を持つ。
min_value
フィールドは、この軸に対してデバイスが通知する最小値を示す。
モードが Relative
であるデバイスに対しては、min_value
フィールドは 0
となる。
max_value
フィールドは、この軸に対してデバイスが通知する最大値を示す。
モードが Relative
であるデバイスに対しては、max_value
フィールドは 0
となる。
XListInputDevices
によって生成された
XDeviceInfo の配列を
解放するには、
XFreeDeviceList
を使用すること。
返り値¶
無し。関連項目¶
Programming with Xlib| Release 6.5 | X Version 11 |