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のインストール後システムを再起動すると、ブート完了後バックグラウンドでデモ音源の再生が始まり、ターンキーシステムとして使用できるようになっている。