## Class template basic_vorbis_file_source

hamigaki::audio::basic_vorbis_file_source —

Ogg Vorbisファイルへの読み込み専用アクセスを提供するSourceモデル

## Synopsis

    template<typename Source>
    class basic_vorbis_file_source {
    public:
      // types
      typedef float                  char_type;
      typedef implementation defined category;

      // construct/copy/destruct
      explicit basic_vorbis_file_source(const Source&);

      // Boost.Iostreams implementation
      std::streamsize optimal_buffer_size() const;
      std::streamsize read(const float*, std::streamsize);
      void close();
      std::streampos seek(boost::iostreams::stream_offset, std::ios_base::seekdir);

      // queries
      std::pair<const char**,const char**> comments() const;
      const char* vendor() const;
      vorbis_info info() const;
      boost::iostreams::stream_offset total();
    };

    // creation
    template<typename Source>
      basic_vorbis_file_source<Source> make_vorbis_file_source(const Source&);

## Description

Sourceを受け取り、Vorbisデコードした結果を読み出すことができる。

モデルとなるコンセプト:Source, SeekableSource(`Source`がSeekableSourceである場合), ClosableDevice, OptimallyBuffered

### `basic_vorbis_file_source` construct/copy/destruct

1.     explicit basic_vorbis_file_source(const Source& src);

   Effects: | Vorbisデコーダを初期化し、`src`からヘッダ情報を読み込む。

### `basic_vorbis_file_source` Boost.Iostreams implementation

1.     std::streamsize optimal_buffer_size() const;

   Returns: | 200ミリ秒分のバッファサイズ

2.     std::streamsize read(const float* s, std::streamsize n);

3.     void close();

4.     std::streampos
       seek(boost::iostreams::stream_offset off, std::ios_base::seekdir way);

### `basic_vorbis_file_source` queries

1.     std::pair<const char**,const char**> comments() const;

   Returns: | コメント文字列ポインタの配列の先頭要素のポインタとpast-the-end要素のポインタの対

2.     const char* vendor() const;

   Returns: | ファイル作成者の情報

3.     vorbis_info info() const;

   Returns: | フォーマット情報

4.     boost::iostreams::stream_offset total();

   Returns: | 合計バイト数

### `basic_vorbis_file_source` creation

1.     template<typename Source>
         basic_vorbis_file_source<Source> make_vorbis_file_source(const Source& src);

   Returns: | `basic_vorbis_file_source<Source>(src)`

| 製作著作 © 2006, 2007 Takeshi Mouri