pcm_formatの分解

floatストリーム対応版で、一通りのサンプルとテストコードが動くようになりました。
意味のなくなったクラスや関数の削除、インタフェースの改善など、細かい調整中をしているところです。


今、悩んでいるのは、pcm_format::typeをpcm_formatから切り離すかどうかについてです。
pcm_format::typeはバイトストリームでのみ意味を持つため、floatストリームではpcm_formatを取得する関数を提供できません。
いくつかのアダプタクラスが、

pcm_format format() const;

というメンバ関数を要求しているのですが、実際にはtypeしか見ていないので、typeだけを取得するインタフェースを追加すべきなのか、pcm_formatのメンバをバラバラにして各値を取得するインタフェースをデバイスに持たせるべきなのかが悩み所です。
pimplイディオムを使っているので、あまりメンバ関数を増やすと転送関数の記述が面倒ですし。(Boost.PimplPointerのようにimplクラスにはデータだけを持たせるべきなのかも)


現状、floatストリームの一部のクラスが未初期化のpcm_formatを返してしまっていて、非常にマズいです。
意味的にpcm_formatを返すのは変な場合もあるので、一旦pcm_formatを分解してみます。