2005年に作ったこんなの → ネットワーク対応MP3ジュークボックス
- プレイリストによる演奏の制御
- spool0に入っている曲を順次mpg123を呼び出して再生。終ったものをspool1に移動
- spool0が空になったら、逆向き(spool1→spool0)に再生
- 以下繰返し...
- oneshotディレクトリにファイルがあったら、プレイリストに割り込んで演奏する
- ctrl以下の制御ファイルの監視(同期的)
- ファイルが存在したら、該当する動作を実行
- ネットワーク経由のアクセス
- ファイルが.urlの拡張子の場合は記述されているURLにアクセスし、ファイルを取得しつつ演奏
- アクセスしたファイルはキャッシュに残す
- 再生時、キャッシュにファイルがあればそちらを使用
kqueue(2), kevent(2)システムコールを用いてファイル又はディレクトリを監視し、内容が変更されたら指定されたコマンドを呼び出す。fwatch file-or-directory command
紹介記事にあるように、OpenBSD全部入りでインストールする。配布サイトは、以下のようになっている。
Index of /kawhc/dl/pub/OpenBSD/jukebox
Name Last modified Size Description
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[DIR] Parent Directory 16-Apr-2017 13:58 -
[ ] base37.tgz 08-Aug-2005 22:36 15.2M OpenBSD 3.7のベースシステム(から余分なもの
を取り除いたもの)
[ ] bsd 27-Jun-2005 13:40 4.9M カーネル
[ ] floppy37.fs 14-Aug-2009 14:15 1.4M インストーラ
[ ] floppyB37.fs 14-Aug-2009 14:15 1.4M 〃
[ ] floppyC37.fs 14-Aug-2009 14:15 1.4M 〃
[TXT] index.txt 14-Aug-2009 14:16 1k ファイル一覧(HTTP用)
[ ] site37.tgz 08-Aug-2005 22:36 2.8M mp3jukeboxに固有な部分(ユーザアカウント、
起動スクリプト、プログラム本体、
デモ音源など)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Apache/1.3.29 Server at fuguita.org Port 80
OpenBSDのインストーラは、正規の配布パッケージ以外に、siteXX.tgz (XXはリリース番号)というファイルがあるとユーザが作成したファイルセットとして認識され、追加でインストールされる。
OSのインストール後システムを再起動すると、ブート完了後バックグラウンドでデモ音源の再生が始まり、ターンキーシステムとして使用できるようになっている。