続 floatストリームの設計

う〜ん、フォーマット変換にcodecvtを使うのはダメかも。

// 昨日の抜粋

float_pcm_sink sink(audio::pcm_sink(fmt, fmt.optimal_buffer_size()));

std::locale loc(std::locale(), new audio::codecvt_s16_le);
sink.imbue(loc);

昨日の例では、pcm_sinkのフォーマットがオブジェクトの生成時に決定します。
imbue()でcodecvtを変更できるといっても、pcm_sinkと同じフォーマットでないと意味がありません。
動的に変更する意味がなければlocaleの枠組みを使用する必要はありません。


では、basic_filebufはなぜcodecvtを使うのか考えてみると、

なんかがあるんですが、オーディオデバイスには当てはまりません。
id:y-hamigaki:20060512 で作ったsample_cvtを拡張する方がよさそうですね。