background_player

background_playerとりあえず版ができました。
サウンドプレーヤっぽく、メソッド名も統一しています。

class background_player
{
public:
    // 生成のみ
    background_player();

    // 生成と同時にopen
    template<typename Source, typename Sink>
    background_player(Source src, Sink sink,
        std::streamsize buffer_size = 
            boost::iostreams::default_device_buffer_size);

    // 破棄(必要に応じてstop)
    ~background_player();

    // SourceとSinkの設定
    template<typename Source, typename Sink>
    void open(Source src, Sink sink,
        std::streamsize buffer_size = 
            boost::iostreams::default_device_buffer_size);

    // SourceとSinkのclose
    void close();

    // 再生中かどうか
    bool playing();

    // 再生 or レジューム
    void play();

    // 停止(一時停止)
    void stop();

    // 再生位置の取得
    std::streampos tell();

    // 再生位置の設定(停止中のみ可能)
    std::streampos seek(
        boost::iostreams::stream_offset off,
        BOOST_IOS::seekdir way)
};

background_copyのcopy()と違い、open()とplay()が分離しているので注意して下さい。これにより、play()前にseek()することが可能になっています。

今日の成果物
今回からアーカイブ名とトップディレクトリ名をBoost風に変更しました。
また、あまりテストしていません。Regression Testもしてません。