俺俺フレームワークのWindowsへの対応

OS-X 対応で、Windows はまぁとりあえずスルーしても良いかなぁーって思ったけど、やっぱり折角動くもんなら、
少しの労力でマルチプラットホームになる事だしサポートしようと思い、少しばかり修正した。

MSYS の Mingw 環境では、C++11 の thread 関係 API をサポートしていない。
そこで、それら API を使わないように修正をするだけの事で、Mac、Windows 両対応となった。

内部ソースには、機種依存の条件分岐が色々あるのだが、それらは、今後少しづつ無くしていき、クリーンな状態
へ移行する。

以前のブログで、Mingw 環境の構築を少しだけ載せたけど、新しいフレームワークでは、Mac 対応で、少しばかり
環境を更新したので、その辺りを少し解説しておく。

(1) MP3 タグ情報ライブラリー
以前のシステムでは、tag 情報を取得するライブラリーとして、id3tag ライブラリーを使っていて、機能的にどう
しても不足していた部分やバグを修正して使っていたのだけど、色々探したけど、修正したソースが無い事が判った・・
そこで、少し探して、簡単に使えそうなライブラリーとして、taglib を検討してみた、ソースは C++ なんだけど、
かなり、昔の C++ って感じで、イマイチ感があったけど、他の候補を色々探して、検討するのも時間がかかりそう
なので、とりあえず、このライブラリーを使わせてもらう事にして、実装した。
なので、Windows でも、このライブラリーをコンパイルしてインストールする必要がある。
※taglib-1.9.1 を使った。

(2) OpenJPEG ライブラリー
macport でインストールした OpenJPEG ライブラリーは 2.1 で、API も少し違う為、Windows も 2.1 にアップ
デートした。

(3) JPEG ライブラリー
macport では、MMX で高速化した JPEG ライブラリーとして、libjpeg-turbo がある、またこのライブラリーは
若干の拡張がしてある。(Alpha チャネルを扱える)
そこで、Windows でもこのライブラリーを使いたいのだけど、コンパイルする為に、nasm が必要で、インストール
が複雑になるので、とりあえず、Windows では以前のライブラリーを使う事にした。
※アルファ付き画像をセーブした場合、アルファチャネルは無くなる。

(4) Makefile の改修
Windows では、Makefile を共有する事が難しい為、Makefile.win と別にした。
※この辺りも、cmake を使うとか、今後工夫が必要と思う。

以上の対応で、音楽プレイヤーは同等の動作をするようになった。

※最新版ソースコードは GitHub に push してある。

カテゴリー: ソフトウェアー・エンジニアリング パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください