## Class template basic_wave_file_source

hamigaki::audio::basic_wave_file_source —

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

## Synopsis

    template<typename SeekableSource>
    class basic_wave_file_source {
    public:
      // types
      typedef char                   char_type;
      typedef implementation defined category;

      // construct/copy/destruct
      explicit basic_wave_file_source(const SeekableSource&);

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

      // queries
      pcm_format format() const;
      boost::iostreams::stream_offset total() const;
    };

    // creation
    template<typename SeekableSource>
      basic_wave_file_source<SeekableSource>
      make_wave_file_source(const SeekableSource&);

## Description

SeekableSourceを受け取り、WAVEファイルとしてフォーマットを解釈した結果を読み出すことができる。

モデルとなるコンセプト:SeekableSource, ClosableDevice, OptimallyBuffered, PcmFormatRetrievable

### `basic_wave_file_source` construct/copy/destruct

1.     explicit basic_wave_file_source(const SeekableSource& src);

### `basic_wave_file_source` Boost.Iostreams implementation

1.     std::streamsize optimal_buffer_size() const;

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

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

3.     void close();

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

### `basic_wave_file_source` queries

1.     pcm_format format() const;

   Returns: | フォーマット情報

2.     boost::iostreams::stream_offset total() const;

   Returns: | 合計バイト数

### `basic_wave_file_source` creation

1.     template<typename SeekableSource>
         basic_wave_file_source<SeekableSource>
         make_wave_file_source(const SeekableSource& src);

   Returns: | `basic_wave_file_source<SeekableSource>(src)`

| 製作著作 © 2006, 2007 Takeshi Mouri