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