WinAudioサンプルのソースコードのうち、UI処理の部分を除いて、自分のプロジェクトにマージした。
ここでいつもはまるのは、JUCEはUNICODE、ANSI文字どちらでもコンパイルできるマクロがTになっているため、STLやBoost、Windows APIのコードのTが置換され、コンパイルエラーになることだ。
それを回避するためにはJUCEヘッダをインクルードした後で、#undef Tとしておく。
後は、#define DONT_SET_USING_JUCE_NAMESPACEをjuceヘッダを読み込む前に入れておいて、Windows APIと名前の衝突が起こらないようにしておく。
コンパイルが終了したところで実装に入るが、次のステップで進めることにする。
1.Windows APIをいじるコードはcppファイル内に隠蔽するように別途クラスをヘッダに用意し、pimplで実装する。
これはUIクラスががWindows APIコードに依存しないように採る措置である。
2.1.が完成し、動作確認ができた次は、JUCEのサウンドデバイス抽象化モデルに沿って再構築する。