Display *display; XDevice *device; int first_keycode; int keysyms_per_keycode; KeySym *keysyms; int keycode_count; KeySym *XGetDeviceKeyMapping(display, device, first_keycode, keycode_count, keysyms_per_keycode_return) Display *display; XDevice *device; KeyCode first_keycode; int keycode_count; int *keysyms_per_keycode_return;
first_keycode + keycode_count - 1
そうでない場合は、エラー BadValue となる。 キーシンボルのリスト中の要素の数は次のようになる:
keycode_count * keysyms_per_keycode_return
キーコード K に対する、番号 N の キーシンボル (0から数える)は、 リスト中で(0から数えて)次のインデックスを持つ: (K - first_code) * keysyms_per_code_return + N
X サーバは keysyms_per_keycode_return の値として、要求された全ての シンボルを知らせるために十分な長さを持つ任意の値を選ぶ。 特殊なキーシンボル値である NoSymbol は特定のキーコードの集合について、未使用の要素を埋めるために使われる。 XGetDeviceKeyMapping が返した値を解放するには、 XFree を使用すること。
指定されたデバイスが入力クラス key をサポートしていない場合は、エラー BadMatch となる。
XGetDeviceKeyMapping はエラー BadDevice, BadMatch, BadValue を起こすことがある。
XChangeDeviceKeyMapping リクエストは、指定されたデバイスについて、 指定された数のキーコードに対するシンボルを定義する。 キーコードは first_keycode から始まる。 この範囲に含まれないキーコードに対するシンボルは変化しない。 キーシンボル中の要素の数は次の数でなければならない:
num_codes * keysyms_per_keycode
指定された first_keycode は XListInputDevices が返した min_keycode 以上の値でなければならない。そうでない場合には、エラー BadValue となる。 さらに次の式は、XListInputDevices が返した max_keycode 以下の 値でなければならず、そうでない場合にはエラー BadValue となる:
first_keycode + num_codes - 1
キーコード K に対する(0から数えて)N 番目のキーシンボルは、 キーシンボル中で0から数えて次のインデックスを持つ:
(K - first_keycode) * keysyms_per_keycode + N
クライアントは、指定する keysyms_per_keycode について、必要な全ての シンボルを保持できる十分な長さである任意の数を選ぶことができる。 特別なキーシンボル値である NoSymbol は、特定のキーコードの集合に対して未使用の要素を埋めるために使われる。 NoSymbol がキーコードに対する有効なリストの最後でない位置に現われるのは正しい。 XChangeDeviceKeyMapping は、そのタイプのイベントを選択した全ての クライアントに送られる DeviceMappingNotify イベントを生成する。
X サーバは、このマッピングを解釈する必要はない。 X サーバは、クライアントによる読み書きのために単に格納しているだけで ある。
指定されたデバイスが入力クラス key をサポートしていない場合、エラー BadMatch となる。
XChangeDeviceKeyMapping はエラー BadDevice, BadMatch, BadAlloc, BadValue を起こすことがある。