2014年1月10日金曜日

libWRP-key: C++ multiplatform(GNU/Linux, Mac/OSX, Microsoft/Windows) key code/name library


libWRP-keyを公開しました。githubでの公開自体は少し前からでしたが、今日3つめの対応予定プラットフォームだったMicrosoft Windowsに対応しましたので、ブログでもライブラリーの公開を紹介します。

このライブラリーの特徴は次の通りです。
  • ヘッダーオンリーで使用できます。
  • OSに依存しないキーの名前による、各OS API向けのキーコード値を取り扱いできます。
  • 対応プラットフォームの皆さん↓
    • GNU/Linux
    • Mac/OSX
    • Microsoft/Windows
なお、constexprライブラリーでは無く、実行時にライブラリーの内部的にはstd::unordered_mapにより対象プラットフォームのキーコード/名称の辞書を保持するので実行時コストは消費します。

もともと、このライブラリーの作成動機はOS毎に異なるシステムへのキーストロークのソフトウェアエミュレーションの実装のためでした。マルチプラットフォームな仮想キーボードシステムを構築するに辺り、OS毎に仮想キーボードを実現する為の根本的な方法も、API仕様異なる事はもちろん、それらOSのAPIレベルで使用されるキーコードやそのシンボルも異なりました。そこで、統一的にユーザーアプリケーションから実行時に同じキー名称で複数のプラットフォームのキーに対応し、その管理を行いたいというニーズから開発したライブラリーです。

exampleはg++-4.7, mingw-g++-4.6, clang++-3.3でビルド、Linux Mint 16(kernel-3.11.0-14-generic), OSX-10.9, Windows 8(NT-6.2)で動作確認を行いました。

GCC-4.6はLinux Mint 16にmingw-g++をaptしたところ4.6だったので仕方無く後から無理やりサポートしました :) GCC-4.7以降、clang-3.3以降での利用を推奨します。

0 件のコメント:

コメントを投稿