2007年6月4日月曜日

とりあえず暫定版が完成

昨日から取り組み始めたRainmeterのSkin作り。一応暫定的に完成とあいなりました。
残すところは細々とした調整かな。作成に協力してくれたVelnirに感謝。
昨日は結局曲情報のS-JIS化については分からなかったけれど、今日になって意外な事実が発覚。foobar2000のプラグインにてファイルに出力しているのだけど、その出力の際の文字コード指定が「UTF-8(BOMつき、なし)」と「ASCII」だったんですね。で、ASCIIは文字通りASCIIコードを吐くモノで、そもそも日本語が吐けないだろうと思っていたのですが、どうやらASCIIを選択すると現在指定されている規定の文字コードで出力するモノだった模様。つまり、cp932、S-JISで出力してくれたのでした。
なんだったんだ私の試行錯誤はOrz
まぁそれはそれでよかったのですが、元々のタグはUTF-8で書かれているためか、それともRainmeterに用意させたパーサがマルチバイト文字をうまく扱いきれないのか、セパレータに指定した文字でなくても誤認識して切り取ってしまうことがたまに出てきちゃったり。
まぁそれ自体はぶっちゃけ日本語タグを扱う以上仕方ないとは思っているのですが、どうせならRainmeter側のFileReadPluginを真似るような機能のプラグインを作ってみようじゃねーのということでチャレンジしてみることに。
VC++2005Expressをインストールしていましたが、Win32系のDLLを作成できる環境に設定していなかった模様。前回OSを入れ直した際、そこまでするのを忘れていたらしい。
とりあえず設定ファイルを追記したり変更したりして編集し、いざコンパイル・・・できないOrz windows.hが存在しないとかそんなわけあるかと。Win32の通常のコンソールアプリケーションなら以前から作成できていたのだからそんなことはないだろうと思ってインストールされているはずのPlatformSDKを確認してみると・・・、なんとインストールされていない!!!Orz
どうも前回はインストールしていたモノの、今回はインストールしなかったらしい。ではなぜその状態でWin32プロジェクトを実行できたかというと、代わりにWindowsSDKをインストールしていたからっぽい。こっちは確かVistaにも対応してたんだっけかな。詳しくは忘れたけど。
で、しゃーないので設定ファイルのうちPlatformSDKのパスが書かれた部分をWindowsSDKのパスに変更し、ようやくコンパイル成功。
したはいいけれど、結局それがプラグインとして認識されることはなかったのでした。なぜだっ!!!Orz
とりあえず必要な関数は
UINT Initialize(HMODULE instance, LPCTSTR iniFile, LPCTSTR section, UINT id);
void Finalize(HMODULE instance, UINT id);
UINT Update(UINT id);
double Update2(UINT id);
LPCTSTR GetString(UINT id, UINT flags);
の4つで、とりあえずこいつらさえしっかりと宣言しておけばよいはずだろうと考えた訳なんですね。
で、中身を実装する前にプラグインってーのがどうやって動作するんだろう、と思って中身は意味のないテストコードを埋め込んだだけの簡単なプラグインを作ってRainmeterに読み込ませてみたんですよ。
ところが、なぜか読み込んでくれない。きちんと宣言はしているはずのUpdateとGetString関数がexportされないとかいうエラー。
他にプラグインのソースでもあれば参考にできたのでしょうが、公式サイトも潰れている今では探すのが難しいというのが現状。とりあえずはプラグイン作成は諦めるしかなさそうです。
まぁそれはさておき、暫定的に完成したはいいのですが、まだ困った問題が。foobar2000で再生している曲のタイトルやアルバム名が長い場合、画像をぶっちぎりではみ出すんですよねぇ。Velnirは
「スクロールさせることができるんじゃない?」
と言ってたけど、ちょーっとそのあたりはヘルプにも載ってなかった気がするから分からないんだよねぇ。できるのならそれが理想だけど、せめてはみ出さないところで切ってしまうだけでもいい。はみ出すという状況を何とかしたいというのが残る作業かな。
とりあえず、己の配色、彩色能力のなさには辟易Orz 見た目というか枠組みだけならなんとか考えられるけれど、配色まではどうしようもないんだよなぁ。センスねぇなぁ自分Orz
けどまぁそれも慣れ・・・なんだろうか。今回の作成で大体の構造は掴めたし、第2弾はもう少し効率よく作れるかも。作るかどうか分からないけどw
まぁ、もう少しバランスは考えよう、うん。
Skin.png
画面は捨てうどんげを用いてみたSkin。捨てうどんげはどこで拾ったか忘れてしまった^^; 絵師には感謝します。
下の枠はSensitiveKnife2のサイトにて公開されていたモノをちょっと改造しました。デュアルコアのCPUパワーにして現在のCPU周波数と温度を表示しただけですが^^;
横の曲情報表示枠はVelnirにお願いしました。重ねて感謝。フォントはさなフォントだったっけ。
とまぁ他力本願なSkinではありますが一応完成。ちょいとバランスが悪いかなぁ。まぁ、第2弾を作る機会が在れば頑張ろう。


才能は在るだろう。大きい小さいを問わねば、誰にだってある。だがそれを意味のある形にまで研ぎ澄ますことができるかどうかは、本人次第だ


神曲奏界ポリフォニカ キネティックノベル 第3話 コーティカルテ・アパ・ラグランジェス
うむ、深いお言葉。意味のある形にするもなにも、どんな才能が眠っているのかしら分からなかったりもするのだけれど^^;
とりあえず、今私に備わっている才能となると、何があるかしら。多少プログラムは組める。信号処理にも興味はある。研究やら仕事に役立ちそうな才能となるとこんなところか。
人間的な才能となると、自身ではよくわかんねーな。けど、分からないと言ってしまわないできちんと知っておく方がいいのだろうな。自身の特性を知らないと活かしようもないし。
ふむ、もう少し自分の内面を見つめてみる必要があるやも知れないな・・・。