試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

Wine上のfoobar2000の覚え書き(2008/7/12現在)

以前扱ったのはバージョン0.9.4系だったのだが、色々と変わったことがあるため、0.9.5対応の情報としてまとめておく。
(2008/12/15)バージョン0.9.6関係は「Wine上のfoobar2000の覚え書き(2008/12/15現在)」を参照。

Windows XP以上が必須な件について

バージョン0.9.5以上のfoobar2000では、インストーラWindows XP以上を要求する。Wineが返すWindowsのバージョンをwinecfg設定ツールで「Windows XP」にすることでこのチェックは通せる。
なお、Wineのバージョン1.0の時点では、初期状態でWindows XPとして設定されている。

設定ファイルやプレイリストの場所について

インストール後、設定ダイアログの「General」を選択し、右側の「Location of configuration files」のラジオボタンを「Application install folder」にすると、アプリケーションのインストールディレクトリ(標準では${WINEPREFIX}/dosdevices/c:/Program Files/foobar2000/)に設定が保存されるようになり、Wineで使う上で管理がしやすくなる

イコライザの謎

バージョン0.9.5系のfoobar2000で「View - Equalizer」からイコライザを開こうとしても、そこで表示がおかしくなり、操作不能となってしまう現象が起きてしまう。こうなったら、「killall foobar2000.exe」などで止めるしかない。
この件について、どこでおかしいのかを調べようと試行錯誤していたところ、これまた謎なことに

$ WINEDEBUG=+gdi WINEPREFIX=[Wine環境の場所] wine "C:\Program Files\foobar2000\foobar2000.exe" &

のようにして環境変数WINEDEBUGに「gdi」を含めたときに限り、何故かおかしくならずにイコライザが表示され、コントロールと有効/無効化/リセット*1もできた。しかし、プリセット管理などはできなかった。
(2008/12/15)Mandriva上のWineバージョン1.1.10の時点ではうまく表示されず、通常通り固まってしまった。
(2009/2/3)Wineバージョン1.1.14とfoobar2000バージョン0.9.6.2ではWINEDEBUG=+gdiの指定で表示されている。

ただ、このままでは大量のデバッグ用トレースメッセージ*2が表示され、処理も無駄に遅くなってしまう*3ため、イコライザをいじるとき限定でこの起動のしかたをする、かつ、通常時にはイコライザは開かないというのが無難な使い方となりそう。
foobar2000が動作していない状態で

$ WINEDEBUG=+gdi WINEPREFIX=[Wine環境の場所] wine "C:\Program Files\foobar2000\foobar2000.exe" /command:Equalizer 2>/dev/null

のように実行すると、起動しつつイコライザが開く。
この件については、恐らくはWine側の不具合と思われるが、どこをどう修正すればよいのかは分からない。「WINEDEBUGで挙動が変わる」というのがヒントになればよいのだが...

Matroskaコンテナを扱うためのコンポーネント(foo_input_matroska.dll)が認識されない件について

http://foobar2000.xrea.jp/index.php?Input#yb1c6816
にあるように、(いつからかは分からないが)何故かそのままのファイル名では認識されず、動作しなくなっているが、リンク先を参考に名前変更を行うことで正常動作するようになった。

新しい既定のユーザインターフェースについて

バージョン0.9.5系のfoobar2000では既定のユーザインターフェースコンポーネント(以下「新デフォルトUI」)が変更され、機能も強化されている。

テーマについて

設定ダイアログの「Display」を選択し、右側の「Default User Interface」にある「Theme Management」でテーマの管理ができる。
ここで言うテーマとは、新デフォルトUIにおけるユーザインターフェースレイアウト*4や配色、フォント設定といった項目をテーマファイル(.fthファイル)として保存/読み込みを行うもの。
テーマは「Quick Setup」を押して定義済みのレイアウトや配色などから設定することができる他、「Import Theme」で.fthファイルを開く形での取り込みもできる。もちろん、手動でレイアウトを編集することもできる。

テーマの編集とカスタムテーマ

「Theme Management」にある「Enable Layout Editing Mode」のチェックを入れると、部品右クリックで出るメニューを使用することでユーザインターフェースを柔軟に編集できる。「Splitter」を使用することで上下/左右にペイン分割ができるので、これをうまく使うとよいかもしれない。

他に、タブを配置して各タブに部品を貼り付けることもできる。タブの名前変更はダブルクリックで。

保存するには「Theme Management」で「Export Theme」を選択し、出力したい部分にチェックを入れて(ツールバーとステータスバーを除いたメインのレイアウトは「Main Layout」)ファイルに書き出す。
今回

  1. 全ての部品を消す
  2. タブを配置(タブ数は2)
  3. 1つ目のタブをスプリッタで左右分割し、左側にプレイリスト一覧、右側にプレイリストを入れる
  4. 2つ目のタブも左右分割し、左側に情報表示、右側にコンソール(ログ表示)

というものを作成した。書き出した.fthファイルは
http://cid-3f9be5b1cd4a806c.skydrive.live.com/browse.aspx/%E5%85%AC%E9%96%8B/%E3%83%86%E3%83%BC%E3%83%9E/foobar2000
にアップロードした。

ステータスバーは新デフォルトUIで正常に描画される

ステータスバーが時間ごとに更新されない件は、新しいデフォルトUIを使用することで再生時間も毎秒更新されるようになっている。しかし、Columns UI使用時はダメだった。
Columns UIはプレイリストの一括エクスポートなどの便利な機能もあるため、入れておいても損はなさそう。一括インポートは新デフォルトUIでもできる。

レーティング

Wine レーティング: foobar2000
項目
ランクSilver
Wineのバージョン1.0, 1.1.2, 1.1.3
アプリケーションのバージョン0.9.5.4
不具合回避イコライザを表示しようとすると変な表示になって固まる環境変数WINEDEBUGに「gdi」を含めて起動したときに限り表示可能(動作は重い)
未解決の不具合Columns UI使用時、再生中にステータスバーが更新されない
WINEDEBUGに「gdi」がないとイコライザがおかしくなる
(2008/7/29)Wineのバージョン1.1.2での動作について、1.0のときと同様に振る舞うことが分かったため、バージョン「1.1.2」の表記を追加
(2008/8/23)同様にバージョン「1.1.3」の表記を追加
(2010/9/16)新しいバージョン向けの内容を以下に追記する。イコライザとColumns UI使用時のステータスバーの問題はなくなっている。
Wine レーティング: foobar2000
項目
ランクGold
Wineのバージョン1.3.1
アプリケーションのバージョン1.1
ランクをGoldとしたが、音声の出力先がALSAで、かつ仮想WindowsのバージョンがXP以上になっていればよく、多くの場合にこれを満たすため、foobar2000のバージョンが1.1でかつWineのバージョンが1.3.1以上でかつfoobar2000をDefault User Interfaceで使っている分にはPlatinumランクとしてもよいレベル。ただ、全ての機能を使いこなしているわけではないため、未知の不具合がある可能性はある。

関連記事:

使用したバージョン(追加コンポーネント):

  • Matroska Plugin 0.9.2.1
  • Columns UI 0.3.3.2

*1:チェックボックスの右の辺りを押す・表示が変?

*2:現在、ソースの中のどこを実行しているところなのかが分かるように、多くのところで出力されるメッセージ

*3:「2>/dev/null」を付けても、端末への出力は抑制されるが処理自体は同様に行われ、重いのは変わらない

*4:メイン/ツールバー/ステータスバーの3系統がある