sample_format_of

いつものパターンですが、結局operations<T>によるカスタマイズは使いませんでした。
バイスのカテゴリタグにsample_format_tagとpcm_format_tagを追加して、
sample_format_tagなら

hamigaki::audio::sample_format_type sample_format() const;

を、pcm_format_tagなら

hamigaki::audio::pcm_format format() const;

を実装していることを示すことにしました。


バイスのPCMサンプルの種別を取得する関数sample_format_of(dev)は、タグディスパッチを用いて、pcm_format_tagの場合、

dev.sample_format()

を、pcm_format_tagの場合、

dev.format().type

を返します。
一応、operations<T>によるカスタマイズもサポートしていますが、テストしていません。
また、Boost.Iostreamsにないカテゴリタグを使用した場合、既存のアダプタクラスがそのタグを考慮しないため、アダプタ適用後のクラスのカテゴリには含まれませんし、インタフェースも制限されてしまいます。
アダプタを複数適用する場合は、Hamigaki.Audioのアダプタが先に適用されるように順序に気をつける必要があります。


ようやく、floatストリームのブランチをtrunkにマージしました。バージョン番号も上げています。
今日の成果物
今回、ドキュメントは古いままなので入れていません。