Top > iPod

Rockbox をコンパイルする#6   2010/10/13 (Wed)  02:34  [iPod]

前回更新からかなり期間経ってますが気にしちゃ負けです。
今回は Rockbox 自体をコンパイルするためのネタではないのですが、WPS 関連のコンパイルネタです。
現行バージョン(3.6)用の WPS を、現在開発中のバージョンの新しいフォーマットに簡単に変換できます。


WPS (While Playing Screen)と呼ばれる再生画面のスキン(テーマ)の記述フォーマットは、これまで何度か変更されてきています。

2007年くらいの頃は、フォントの高さ ≒ 1行の高さ、という感じで、
1行目
2行目
3行目



と各行の内容を記述していくフォーマットでした。そのため、もう少し細かい位置調整が必要なスキンを使えるようにしたパッチを当てたりしていたものです。その頃適用していたパッチは Rockbox カスタムビルド#1を参考にしてもらえばいいのですが、さすがにこれらのパッチ用のフォーマットは自力で修正するしか方法はありません。

その次に、Viewport という名称で呼ばれるパッチが出てきて、これのフォーマットは
%V|x|y|width|height|fgcolor|bgcolor|
という感じでした。この形式は大半の部分は簡単に新フォーマットに変換できますが、Progress Bar とその後の行の一部はおかしくなってしまうため、これも多少の手修正が必要です。

この後、Viewport パッチのアイデアが公式ソースに取り込まれ、Version 3.6 として公開されているのが現行バージョンですが、このバージョンに対応した WPS はまず手修正なしで変換できます。

ここまでは前触れで、ここからが本題。現在開発中のバージョンでは、CustomWPS に書かれているように、各タグの開始と終了を小括弧に、パラメータの区切りをカンマで記述するようなフォーマットになっています。それ以外にもいくつか変更になっていますが、一度やれば後は機械的に修正できる内容です。機械的な修正なら機械にやらせてしまえ、というわけで skinupdater なるものが用意されています。

まずは ~/rockbox/utils/skinupdater/Makefile を以下のように修正します。これは cygwin を使用している宿命とも言うべき cygwin1.dll に依存しないバイナリを生成するためのコンパイルオプションを追加しています。
all:
    gcc -g -Wall -mno-cygwin -o skinupdater skinupdater.c tag_table.c

そして cygwin からコンパイル。

$ cd ~/rockbox/utils/skinupdater/
$ make

コンパイルが成功すると skinupdater.exe ができるはずです。そして、以下のコマンドを実行すると WPS を新フォーマットに変換できます。なお、私の環境の Windows 7 x64 では、パーミッションの関係でそのままでは実行できないので、cygwin の替わりに管理者として実行したコマンドプロンプトを使用しました。

$ cd ~/rockbox/utils/skinupdater/
$ ./skinupdater.exe <変換対象の WPS のファイル名> <変換後のファイル名>

skinupdater.exe は、これ単体で実行できるので、任意のフォルダにコピーして実行しても良いでしょう。変換した WPS は、uisimulator を使って問題ないかチェックしておくと良いと思います。

No TrackBack.
No Comment.

writeback message: Thanks for your Comment!