2 #include "WaveTableSynth.h"
6 typedef Microsoft::WRL::ComPtr<IAudioClient2> IAudioClient2Ptr;
7 //typedef Microsoft::WRL::ComPtr<IAudioClock2> IAudioClock2Ptr;
8 typedef Microsoft::WRL::ComPtr<IAudioRenderClient> IAudioRenderClientPtr;
9 //typedef Microsoft::WRL::ComPtr<IAudioCaptureClient> IAudioCaptureClientPtr;
10 //typedef Microsoft::WRL::ComPtr<IAudioClockAdjustment> IAudioClockAdjustmentPtr;
14 DefineException(AudioClientNull);
15 DefineException(AudioFormatNotSupported);
19 typedef std::function<void (boost::shared_array<float> arr,int bufferSize)> ProcessBufferType;
27 void DefaultProcessBuffer(boost::shared_array<float> arr,int bufferSize);
28 void SetProcessBufferFunc(ProcessBufferType&& v);
29 void ResetProcessBufferFunc();
30 WAVEFORMATEXTENSIBLE& Format();
32 ProcessBufferType processBuffer_;
33 IAudioClient2Ptr audioClient_;
35 REFERENCE_TIME latency_;
36 // IAudioClockAdjustmentPtr audioClockAdjustment_;
37 IAudioRenderClientPtr audioRenderClient_;
38 WAVEFORMATEXTENSIBLE format_;
39 sf::handle_holder eventHolder_;
40 boost::shared_array<float> buffer_[2];