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にマージしました。バージョン番号も上げています。
今日の成果物
今回、ドキュメントは古いままなので入れていません。