#?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 に に書いた記事 今から3年くらい前に、スクリーンセーバーを作った事があります。 で、去年、妹のためにおんぼろ計算機にそれを入れてやったんです。 (極悪人だ(笑)) 結構気に入っているみたいですが (だって'''他に選択肢もない'''し(藁)) さすがにおんぼろだし(謎)、例えばスクリーンセーバーが既に 起動しててもお構い無しに時間が経ったら別のスクリーンセーバーが 起動されるのでメモリーが段々減っていくとか (そんなこと Windoze の方で適当に処理しとくれ:-(), ランダム順再生なのに 非ランダム順再生ができないとか、こまったことが色々。 直したくても、この前、もういらんだろと思ってソース消しちまった し、もしまだどっかに探したらあるかもしれないけどそれ使っても、 ソースはスパゲティで読めないし(爆) その他、スクリプトもどき ファイル(謎)の仕様もあんまり良く覚えてない (ソースのスパゲティ 解読すればきっとわかります:-) とか。 今思えば良くあんなもん作ったなあとか思うもんです。 もし時間さえあれば、一から書き直すんですけどね。 でもあれは VB なんです。もう VB でプログラム書く気ってしないでしょ。 かといって、 Perl でコンソールに文字を出すスクリーンセーバー(謎) って面白くも何ともないし(藁。 Tk とか使って GUI 出せば いいんですけど、それわかばは良く分からんですし。 なんて馬鹿なことせずに、きっとそれくらい無料なソフトウェアで あるんじゃないかと思ってみたり。 でも結局、それさえ面倒だし(無料ソフトウェアって質のいいのがなかなか ないですし)、妹にはこの糞スクリーンセーバーであと数年我慢して もらうしかないかなあ、とか(爆)。