« Brynhildr 「2.2.5」 がリリースされました | トップページ | Brynhildr 「2.2.6」 がリリースされました »

2017年4月10日 (月)

キーボードタイプ依存データの外部ファイル化について考える その4

テキスト形式ファイルの拡張子 .lng は .kl (key layout)、バイナリ形式ファイルの拡張子 .lngx は .klx に変更したいと思います。

テキスト形式ファイルである .kl を解析する処理はできるだけ本体とは分離したいので、インターフェースとしてはディレクトリを指定して解析を実行するとそのディレクトリ下にある .kl を解析して解析結果である .klx を同じディレクトリに出力するという単純なものにしようと思います。

解析部と本体側が解析結果をチマチマとやりとりするインターフェースは持たせず、本体側は作成された .klx の読込みのみをサポートします。.kl/.klx ファイルがなんらかの原因で壊れた場合を想定して、これまでの"JP Keyboard","US Keyboard"はビルトインデータとしてQt Brynhildr内部に残します。

設定によって、.klx を残して次回起動時に利用したり、常に .kl を解析して更新するようにできたりすればいいかなと思います。初期設定としては、.klx よりも .kl が新しい時だけ再解析するということになるかと思います。もちろん、.klx が存在しない初回起動時は無条件で .kl を解析して .klx を作成します。

デバッグログを出力させて確認しました。


Created KeyLayoutFileReader! layoutfilepath = ./keylayout
NOT supported File : FlexLexer.h
NOT supported File : GNUmakefile
NOT supported File : Japanese109.kl
    supported File : Japanese109.klx
Opened file : ./keylayout/Japanese109.klx
[File Header]
magic      = "KLF"
spec       = 1
size       = 3964
keynum     = 139
softkeynum = 67
[General]
Name       = Japanese 109
Author     = FunFun <fu.aba.dc5@gmail.com>
Closed file : ./keylayout/Japanese109.klx
NOT supported File : key.h
NOT supported File : keylayoutfile.cpp
NOT supported File : keylayoutfile.h
NOT supported File : keylayoutfile.l
NOT supported File : keylayoutfile.y
NOT supported File : keylayoutfilereader.cpp
NOT supported File : keylayoutfilereader.h
NOT supported File : obj
NOT supported File : US101.kl
    supported File : US101.klx
Opened file : ./keylayout/US101.klx
[File Header]
magic      = "KLF"
spec       = 1
size       = 3928
keynum     = 136
softkeynum = 67
[General]
Name       = US 101
Author     = FunFun <fu.aba.dc5@gmail.com>
Closed file : ./keylayout/US101.klx
NOT supported File : util
Deleted KeyLayoutFileReader!


とりあえず、外部ファイルから読み込んだ"Japanese 109"を選択して"JP Kyboard (built-in)"と同様に動作することを確認しました。

Ws000000

« Brynhildr 「2.2.5」 がリリースされました | トップページ | Brynhildr 「2.2.6」 がリリースされました »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

« Brynhildr 「2.2.5」 がリリースされました | トップページ | Brynhildr 「2.2.6」 がリリースされました »