2007年6月3日日曜日

もう一息なんだがなぁ

Windowsで使っているデスクトップアクセサリはYahoo!Widget。が、こいつのウィジェットに、foobar2000の曲情報を表示させるものがないんですなぁ。Winampの曲情報を表示するウィジェットはあるけれど、foobar2000の擬態モードでは日本語のタグが化けたので使ってなかったり。いやひょっとしたら擬態モードが悪いのではなくてウィジェットのフォントが日本語に対応していなかっただけかも知れないけれど^^;
で、ないなら作れってことでウィジェットを作りたかったのだけど、Y!Widgetは表示用の設定ファイル(XML)と、動作用のスクリプトファイル(JavaScript)の2つを組み合わせて成り立っておるんですな。
で、その両方を、私は知らないOrz なのでウィジェットを作成するためにはその2つの言語仕様を理解しないといけないのですな。既存のウィジェットを改造するにしてもある程度は文法を理解しておかないとどこを改造していいか分かりませんし。
おまけにそれらを作成したらzipで圧縮して拡張子をwidgetに書き換えてからY!Widgetに読み込ませなくてはいけないので、トライ&エラーがめんどいめんどい。
というわけでWidget作成は「気が向いたら」ってことで放置していたのですが、ネットサーフしていると久々にRainmeterのSkinサイトに遭遇。そーいやこっちはSamurizeに比べても作成は容易だってどっかで書いてあったし、試してみるかってことでDL。
しようとしてびっくり。Rainmeterのサイトなくなってたのね^^; 正確にはRainmeterと共に公開されていたRainlenderがバージョンアップし、仕様も変更になった際、作者がそちらに集中したいと言うことでmeterの開発を一旦凍結し、さらに旧サイトも閉鎖していたのでした。まぁ他で配布されていたのでそちらからDL。
rainmeterのSkin構成は比較的簡単で、iniファイルと必要な画像やサウンドファイルのみ。iniファイルの文法も分かりやすく、とっつきやすいものでした。
これなら自分で作れるかも、ってことでfoobar2000の曲情報表示はどうしたらいいか模索。まずはWinampの曲表示はどうやってんだろーってことを調べてみる。WinampのAPI使ってるならそれはそれでよし、それ以外ならfoobar2000にも流用できるかも〜と思って探してみると、よさげな方法発見。
SensitiveKnife2というサイト内で紹介されている方法で、http://visualc.hp.infoseek.co.jp/にて公開されているRainmeter用プラグインのFileReadPluginというものを利用するモノでした。
このプラグインは、テキストファイル内のテキストを取り出すことができるツールで、SensitiveKnife2のサイトではWinampに再生中の曲情報をテキストに吐かせ、それをFileReadPluginに読み込ませる形でSkinへの反映を実現させていました。
ってことはですよ。foobar2000にもそのようなプラグインが在れば同じコトが可能と言うことになります。で、探してみるとこれがあったんですな、えぇ。
早速foobar2000にて適当に設定してテキストファイルを吐かせ、Rain側で読み込ませてみる。
うん、テキストは無事吐き出されてるし、表示もできた。
が、日本語が文字化けOrz
テキストデータはUTF-8で吐かせたのだけれど、Rain側がそれを認めてくれないらしい。
で、試しにiniファイルをUTF-8で保存してみたりしたけど全部が文字化けしてダメ。どうやらテキストデータをS-JISにするしかないらしい。
つーかiniファイルがUTF-8でなんで文字化けるのか謎。iniファイルの文字コードってS-JISしか認めてないってか? だとすると災難だよなぁ・・・。
そう考えるとUTF-8でデータを扱うXMLに分がある気がしてくるんだよな・・・。Rainlenderが一息ついて、Rainmeterも改良されてXML対応になったらこのあたりが楽にできるようになるのかしら^^;
タグはUTF-8で保存してるからなぁ。UTF-8で文字化けせず表示できて欲しかったOrz
まぁこうなると泣き寝入りしかないのかと言えばそうでもない。Rainmeterかfoobar2000のプラグインを自作するという手が残っている。多分meterのプラグインの方が自作しやすいだろうと思ったり。ただサンプルソースでもあればかなりありがたいのだけれどそれも見つからないんだよなー。旧サイトが閉鎖されてるのが痛い。ヘルプファイルに少しだけ仕様が書いてあるけどはてさてDLLなんて作ったことないからなぁ。
それともSDKでもあんだろか? foobar2000にはあったけど、Rainにもあるとかいうならそれから揃えないといけないんだが・・・。
う〜ん、なんかいい解決方法ないかしら^^;