いう関数を呼び出しキーコードの変換を(指定されていれば)やらせるようにした。この関数では以下のような処理を行う。変換テーブルの入力キーと一致していなければ、そのまま出力キーして使う。変換テーブル内の入力キーと一致すれば、対応する出力キーを使う。小指キー修飾が指定されている場合もある。なっているキーは取り捨てる(出力無し)。trueならば、ホスト側にキー入力通知を行わない。変換アダプタの中だけで有効な修飾キーは、今回のスケッチで以下のように定義した。UHSライブラリやHIDキーボードからは上がってこないはずのコードである。0;として押下中状態を表現している。Appキーや右側のAltやCtrlキーもローカルな修飾キーとして使うこともできるだろう。今回は、複数の小指キーのサポートはスケッチが長くなるのでやめた。そのうち追加の予定だが、小指で操作するキーばかりではないので名前を変える必要がある。配列にあらかじめ(スケッチレベルで)指定しておく。変換後の出力キーを指定する。おのおのの下位8ビットがキーコードで、上位8ビットが小指キー情報などの修飾情報をもつ。今後NICOLA配列をもつhoboNicolaアダプタにも適用していく予定なので、修飾情報には余裕をもたせた。個の要素をもつように宣言した。大きくできないのだけど、200エントリくらいなら問題ないだろう。今回のスケッチでは実装例ということで50エントリにしている。変換テーブル用の配列をPROGMEM宣言してフラッシュメモリに置いていないのは、スケッチをビルドし直さなくても変換テーブルの内容を外部から更新できるようにするため。今回は話が長くなるので省略した。今回のスケッチでは、小指キーは英数キーとし、小指キーを押しながらDFBHJKLMキーを使うことで最小限のテキスト編集ができるようにしてみた。テキストエディタでもブラウザのフォーム上でも同じように操作できる。ついでにEscキーと半角/全角キーを入れ替えている。(0x28)なお、単純に英数キーと左Ctrlキーを入れ替えるだけならば、テーブル内容は以下のようになる。要素を指定する必要がある。いう表記は今回のスケッチ内で使っている定義であり一般性はない。HID_BACKSPACE},...のように表現している。出力するためなどの理由で、出力側の上位8ビットの使い方は変えるかもしれない。コピーして使っているが、これはいくつかの変換テーブルを試した名残。(インストーラ版)を使った。ご無沙汰していたので最新版に更新したのだけど、いろいろなスケッチは問題なくビルドできた。こちらからダウンロードできます。IDEを起動してやること。UHSライブラリに接続されたキーボードに渡せるようにしている。今回のメインスケッチはGPL3でライセンスしています。今回のように、明示的にライセンス種別を示していない場合、ブログトップページに書いてある規約が適用されます。IDEでビルドする際には以下が必須になる。2.0が導入済みであること。IDEのライブラリマネージャから追加できるはず。きょうのまとめ小指キーによる編集操作は案外いける。昔々ASKeyboardでダイヤモンドカーソルのエディタを使ったいたころ、小指が痛くなったことを思い出す。急にEnterキーが遠く感じるようになったので、小指+MをEnterに割り付けた。今回のスケッチで変換テーブル内容を変更するためには、スケッチ内のテーブルを変更し、ビルドとフラッシュ書き込みが必要になる。Microを使っている人ならばこれで困らないだろう。いくつかの変換テーブルを切り替えて使うような場合、PCからテーブル内容を送り込めるような機能があったほうが便利だろう。次回は今回のスケッチを拡張し、変換テーブル内容をUSBを介して送り込めるようにする予定です。