ならば

音とかで遊んでいたログ

HID

HIDはHuman Interface Deviceの略語で、マンマシンインタフェースとなるコンピュータ周辺機器のこと。主なものにキーボードやマウス、ジョイスティックなどがある。

ChucKでは、HIDやMIDI機器・ソフトのようなVMの外部から引き起こされるイベントも(Eventクラスを拡張したクラスを用意して)サポートしている。まだ部分的で、ドキュメントも全然整理されていないからあまり使う気になれないけど。
今日のメモはHIDの中で一番身近なキーボードとマウスについて。イベントの使い方はexamplesにあるkb.ckやmouse.ckを眺めれば基本的なことは分かる。それからPDFのマニュアルの一番最後にHIDを扱うためのクラスのパラメータ一覧がある。

HIDに共通するイベント処理の大まかな流れを擬似的なコードで書くと、

Hid hi;      // HIDレシーバーのオブジェクトを作る
HidMsg msg;  // HIDからのデータ受け入れ用オブジェクトを作る

if (目的のデバイスとの接続に失敗した) me.exit();

// イベントループ
while(true) {
    hi => now;  // 次の入力(イベント)が来るまで待つ
    while(hi.recv(msg)) {  // デバイスからのデータをmsgに渡す
        /* msgを使って何かする */
    }
}

という感じになる。msgの関数やパラメータの意味は、具体的に何のデバイスからのデータかによって変わる。