Files
Work/sample/PureWave.hpp
2024-08-07 09:16:27 -04:00

59 lines
1.2 KiB
C++

#ifndef _SAMPLE_PUREWAVE_HPP_
#define _SAMPLE_PUREWAVE_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_WINDOW_HPP_
#include <common/window.hpp>
#endif
#ifndef _COMMON_MMSYSTEM_HPP_
#include <common/mmsystem.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
#ifndef _SAMPLE_DEVICEHANDLER_HPP_
#include <sample/devhndlr.hpp>
#endif
#ifndef _SAMPLE_WAVEINDEVICE_HPP_
#include <sample/wavein.hpp>
#endif
#ifndef _SAMPLE_WAVEOUTDEVICE_HPP_
#include <sample/waveout.hpp>
#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<WaveOutDevice> mWaveOutDeviceBlock;
Block<WaveInDevice> mWaveInDeviceBlock;
HINSTANCE mhProcessInstance;
String mClassNameString;
};
inline
UINT PureWave::numInputDevices(void)const
{
return mWaveInDeviceBlock.size();
}
inline
UINT PureWave::numOutputDevices(void)const
{
return mWaveOutDeviceBlock.size();
}
#endif