#?SuikaWiki/0.9
Multimedia screen saver の直訳(笑)。

[1] 1999年夏に、[[稲垣徹]]氏が[[わかば]]に、 [[Windoze]]
付属の「伝言板」 screen saver の絵が出る版が欲しいと
頼んできたので、 (ありそうな気もしたけど探すのが面倒だった,
なんせ1999年だよ(藁)。) [[VB]] でつくってしまったプログラム。
略称 oss または bss あるいは wss (なぜだ!)。

[2] >>1 ss はすべて Screen Saver。 o は Okuchuu,
b は不明, w はたぶん Wakaba (笑)。

[3] 稲垣さんの要望は単に絵が出る伝言板 screen saver
だったんだけど、ついでに [[WAVE]] とか [[MIDI]]
が鳴らせるようにもしてしまいました。更に [[AVI]]
再生の実験 (結局うまくいかなかった。) や、当時出たばかりの
[[WMP]]2 [[ActiveX]] Control 組み込み版もつくりました。
(WMP 版は WMP OCX の install が必要なんで、 
(当時それが入ってる機械なんてそんななかったし、)
時期尚早ってことになって、そのまま世に出ませんでした。)

[4] wss という一種の script (もどき) をつくって、それで色んなものの再生を制御できるようにしました。
(wss 再生モードでないときは、特定メッセージ又はファイルをずっと表示しておくか、特定ディレクトリの中身を無作為に再生する。)

wss の形式は構文解析や I/O の手間を省くため(笑)
[[INIファイル]]形式を流用しました。 entry の name=value
のところの name が行番号(笑)で、 value が処理内容です。

[5] >>4 行番号は行番号ですが、 timer を使うことで秒数とかになりました。手元に遊びで作った版(謎)がありましたから、抜粋します。

[PRE[
[list]
1="timer 10"
2="playmidi %ad\心の瞳.mid"
3="changetext  "
4="move text false"
53           ="changetext 心の瞳♪          "
348="changetext      "
355="changetext こ    "
357="changetext ここ   "
359="changetext こころ  "
362="changetext 心    "
365="changetext 心の   "
370="changetext 心のひ  "
378="changetext 心のひと "
380="changetext 心のひとみ"
385="changetext 心の瞳  "
390="changetext 心の瞳で "
456="changetext  "
460="changetext き      "
465="changetext きみ     "
468="changetext 君      "
474="changetext 君を     "
478="changetext 君を見    "
...
4771="changetext 心の瞳で君を見つめれば"
4921="end"
[list.cancel]
1="end"
]PRE]

見てのとおり秒数は hard coding されていて、しかも正確に測ったのではなくて感覚(謎)です。なんせ [[MCI]] 制御でしたし:-)
([[WMP]] 版はもうちょっと状況は良くなったんですが・・・。)

[6] この wss (拡張子が wss になったのをきっかけに、
略称は wss になんとなく統一されました(藁)。) 
は、[[奥中CD-ROM'99]]の multimedia(笑) viewer
として採用されました。例えば写真のディレクトリで、
そこの写真を無作為に表示してくんです。

[7] >>5-6 wss mode の時は default では全画面表示になりませんし、
mouse や keyboard を叩いても終了しません。

wss mode では終了は wss が制御します。利用者が終了を望めば
(たしか) 'cancel' という section が呼ばれます。終了 menu
は wss で無効にすることも出来たはずです。

但しこれでは危険なので、(たしか) Ctrl + Alt + Shift + "A"
を押すと無条件で終了します。

[8] という wss ですが、(稲垣さんはその後使ってますか?)
やっぱり廃れていきました。 Code が段々スパゲッティ化してってねぇ。
それに VB の限界っていうか柔軟性のなさって言うか、
そういうのが嫌になっちゃって。

[9] wss の source は何度か思い切って消しましたが、
backup と称して何度も復活して(藁)、とうとう最後の版は
未だに[[わかば]]が保持しています。 (コンパイル可能な
source tree であるかはわかりません。)

いっそ historical として公開しようとも思いましたが、
=あまりにもスパゲッティで恥ずかしすぎる
=自由でないモジュールを組み込んでいる
ので公開出来ません。 2 を直すのは膨大な手間だし、
1 の理由から直す気にはとてもなりません。それに直しちゃったら
もはや historical としての価値もないしね。

ってことで、どうしようもなくて、 (でも捨てるのもちょっとあれで。
もうほんとに backup すらないですから。) とりあえず保管してます。
だけど、もし欲しいって人がいても、何億円払ってくれても、
公開しません。そんな金があるなら[[自由ソフトウェア財団]]
辺りに寄付してください(笑)。

もしわかばがこの世から消えたら、でその時に wss の source
が残っていたら、有無を言わさず消去しちゃってください。
よろしく。 --[[わかば]]
- [10] 2002-10-20 (日) 13:02 ''>>9'': 何かの役に立つかもと思って保管していたら、この Wiki page 書くのに役立ちました:)

[11] (2002-01-14 に <IW:SuikaNews:suika.software> に書いた記事
今から3年くらい前に、スクリーンセーバーを作った事があります。
で、去年、妹のためにおんぼろ計算機にそれを入れてやったんです。
(極悪人だ(笑))

結構気に入っているみたいですが (だって'''他に選択肢もない'''し(藁))
さすがにおんぼろだし(謎)、例えばスクリーンセーバーが既に
起動しててもお構い無しに時間が経ったら別のスクリーンセーバーが
起動されるのでメモリーが段々減っていくとか (そんなこと
Windoze の方で適当に処理しとくれ:-(), ランダム順再生なのに
非ランダム順再生ができないとか、こまったことが色々。

直したくても、この前、もういらんだろと思ってソース消しちまった
し、もしまだどっかに探したらあるかもしれないけどそれ使っても、
ソースはスパゲティで読めないし(爆) その他、スクリプトもどき
ファイル(謎)の仕様もあんまり良く覚えてない (ソースのスパゲティ
解読すればきっとわかります:-) とか。

今思えば良くあんなもん作ったなあとか思うもんです。
もし時間さえあれば、一から書き直すんですけどね。
でもあれは VB なんです。もう VB でプログラム書く気ってしないでしょ。
かといって、 Perl でコンソールに文字を出すスクリーンセーバー(謎)
って面白くも何ともないし(藁。 Tk とか使って GUI 出せば
いいんですけど、それわかばは良く分からんですし。

なんて馬鹿なことせずに、きっとそれくらい無料なソフトウェアで
あるんじゃないかと思ってみたり。

でも結局、それさえ面倒だし(無料ソフトウェアって質のいいのがなかなか
ないですし)、妹にはこの糞スクリーンセーバーであと数年我慢して
もらうしかないかなあ、とか(爆)。