まずこのシステムは単一のCGIファイルを基点に動くもので、データのやりとりとして
1.[歌手-タイトル]ファイル
2.[ファイルパス]ファイル
3.[歌手]ファイル
4.[リクエスト履歴]ファイル
5.[再生中の曲情報]ファイル
を使用する。
1つ目はリクエストの表作成用
2つ目はリクエスト発行用
3つ目は検索用のリスト
4つ目はログとリクエストキューの兼用
5つ目はリクエスト履歴のどの位置を再生しているか
という情報である。5番目のファイルについてはfoobar2000のComponentsのText Writer FTPを使用して、プレイリスト上の再生中の曲の番号を出力。
まぁ、見て分かるように、1つ目と2つ目は並びが変わると発行するファイルが変わってしまう仕様。
つまり、同一のファイルを指す情報はそれぞれ同一行に居ないとバグる。
CGI自体のフローは
リクエスト受信(リクエストボタン押下時)
コマンド( foobar2000 /add [ファイルパス] )発行
↓
リクエストキュー表示(5番ファイルで4番ファイルから抽出)
↓
曲リスト表示(絞り込みボタン押下時は絞込みをかける)
という至極簡単なもの。まぁ、キューサイズより大きかったら破棄したりとかもしますが。
つまり、大したことはしてないんですよ。
そして放送部分はもっと大した事をしていない
というか
foobar2000→Oddcastv3→Icecast2
なので、説明も何も
ちなみにIcecast2の設定は
梅と葡萄と林檎園内の情報を利用させていただきました。
んー、こうやってみると何にもしてないなぁ…。