ムービースクリーンセーバーを作ろう!

今日は以前このblogにも書いたことのある
LUSScreesSaverとシェルプログラムおよびmplayerを合わせて
ムービースクリーンセーバーを構築する方法をお教えします。
簡単なシェルを組み合わせることで、本格的なアプリケーションになる!
これってLinuxUnixの醍醐味ですよ。ほんと。
では、以下のサイトから必要なソフトをダウンロードしてください。


まずはスクリーンセーバーソフト本体。
LUSScreenSaver(モジュール動的入れ替え可能なスクリーンセーバ)


次に、スクリーンセーバーからプログラム(ここではシェル)を呼び出すための追加モジュール。
LUSSSExeKicker(他ファイル実行スクリーンセーバ)


そして動画再生に欠かすことの出来ないmplayer
mplayer


では以下の2つのシェルスクリプトを用意してください。
もちろん実行権限(chmod +x)をわすれずにぃ!
リスト1

>cat moviesaver.sh
#/bin/bash

# Moview Saver Program by UMIPI
# 2005/06/25

# Play process
movieplay(){
mplayer -quiet -nosound -vo w100 -fs -vf rotate=1 好きなムービーの
ファイル名
}

# Lock file delete
unalias rm
rm -f /tmp/lock.tmp

# Moview Loop process
until [ -f /tmp/lock.tmp ];do
movieplay
done

スト2

>cat moviesaver_stop.sh
#!/bin/bash
# Movie Saver Stop process by UMIPI
# 2005/06/25

# Lock file make
touch /tmp/lock.tmp
sync;sync;sync


# Process Kill
MPCS=`ps -ef|grep moviesaver.sh|grep -v grep|cut -c 10-16`
kill $MPCS
wait;wait;wait
MPCS=`ps -ef|grep mplayer|grep -v grep|cut -c 10-16`
kill $MPCS
wait;wait;wait

上記プログラムはどこにおいてもかまいません。
で、LUSScreenSaverプログラムで設定を行います。
「Module」タグで「lusssexekicer」を選択し、
「設定」を押します。
ここで
「開始時実行ファイル」にリスト1を
「停止時実行ファイル」にリスト2を設定します。
実行関数は・・・自分の環境では「invoke」で上手くいっているので
これでよいかと。。。
以上の設定でムービースクリーンセーバー完成です!
C750用の設定ですのでC3000や1000などの人はリスト1の
mplayerのオプションをカスタマイズしてください(ビデオドライバ部分はw100では上手くいかないとおもいますので)。
このスクリーンセーバーでは任意の時間がたつと指定されたムービーが
再生されるほか、一度再生し終わってもまた再生されます(リピート再生)。
何かキーを触るとリスト2が実行されるためプロセスが強制終了されます。
リピート昨日の実現にはuntil文と、それに伴ってロックファイルの生成を
行っています。
このロックファイル生成機能を入れないと、いつまでたっても再生が終了しちゃうようなプログラムになっちゃうんですよ。。。これが(^^;
ということで、ぜひお試しあれ!