#ifndef _SAMPLE_PUREWAVE_HPP_ #define _SAMPLE_PUREWAVE_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_MMSYSTEM_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _SAMPLE_DEVICEHANDLER_HPP_ #include #endif #ifndef _SAMPLE_WAVEINDEVICE_HPP_ #include #endif #ifndef _SAMPLE_WAVEOUTDEVICE_HPP_ #include #endif class WaveForm; class PureWave : private Window { public: PureWave(void); ~PureWave(); WORD play(WaveForm &someWaveForm,DeviceHandler::PlayMode playMode=DeviceHandler::NoWait); UINT numInputDevices(void)const; UINT numOutputDevices(void)const; private: void registerClass(void)const; void createWindow(void); Block mWaveOutDeviceBlock; Block mWaveInDeviceBlock; HINSTANCE mhProcessInstance; String mClassNameString; }; inline UINT PureWave::numInputDevices(void)const { return mWaveInDeviceBlock.size(); } inline UINT PureWave::numOutputDevices(void)const { return mWaveOutDeviceBlock.size(); } #endif