typedef struct { Uint8 ctrl; Uint8 led; Uint8 key[6]; } PDS_KEYBOARD;
ctrl | 特殊キーの状態 |
led | LEDの点灯状態(未使用) |
key[6] | キーデータ |
メンバkeyには押されているキーコードが格納されます。 キーコードは6番目に押されたキーまでのキーコードがkey[0]からkey[5]に順に格納されます。 押されているキーが6個に満たない場合、残りのメンバには0x00が格納されます。
以下に示すコード表は、列が上位4bitを行が下位4bitを示しています。
7個以上のキーの同時押しを検出することはできません。 7個以上のキーが押された場合、key[0]に0x01が格納されます。 また、ハードウェアの構成上押されるキーの組み合わせによっては、 3〜6個の同時押しでもキーコード検出不可能になる場合があります。 この場合もkey[0]に0x01が格納されます。
メンバctrlには、現在どのコントロールキーが押されているかが格納されています。 キーが押されていれば対応するビットが1、押されていなければ0になります。
ビット位置指定マクロ | 押されているキー |
PDD_KEY_CTRL_RGUI | S2 |
PDD_KEY_CTRL_RALT | 右Alt |
PDD_KEY_CTRL_RSHIFT | 右Shift |
PDD_KEY_CTRL_RCTRL | 右Ctrl |
PDD_KEY_CTRL_LGUI | S1 |
PDD_KEY_CTRL_LALT | 左Alt |
PDD_KEY_CTRL_LSHIFT | 左Shift |
PDD_KEY_CTRL_LCTRL | 左Ctrl |