Initial
This commit is contained in:
76
sample/WaveIn.hpp
Normal file
76
sample/WaveIn.hpp
Normal file
@@ -0,0 +1,76 @@
|
||||
#ifndef _SAMPLE_WAVEINDEVICE_HPP_
|
||||
#define _SAMPLE_WAVEINDEVICE_HPP_
|
||||
#ifndef _COMMON_WINDOWS_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_GLOBALDATA_HPP_
|
||||
#include <common/gdata.hpp>
|
||||
#endif
|
||||
#ifndef _SAMPLE_WAVEINCAPS_HPP_
|
||||
#include <sample/incaps.hpp>
|
||||
#endif
|
||||
#ifndef _SAMPLE_WAVEHEADER_HPP_
|
||||
#include <sample/wavehdr.hpp>
|
||||
#endif
|
||||
#ifndef _SAMPLE_WAVEFORM_HPP_
|
||||
#include <sample/wave.hpp>
|
||||
#endif
|
||||
#ifndef _SAMPLE_DEVICEHANDLER_HPP_
|
||||
#include <sample/devhndlr.hpp>
|
||||
#endif
|
||||
#ifndef _SAMPLE_WAVEFORMATPCM_HPP_
|
||||
#include <sample/pcmform.hpp>
|
||||
#endif
|
||||
|
||||
class WaveInDevice : public DeviceHandler
|
||||
{
|
||||
public:
|
||||
WaveInDevice(UINT waveDeviceID,Window &windowHandler);
|
||||
WaveInDevice(const WaveInDevice &someWaveInDevice);
|
||||
virtual ~WaveInDevice();
|
||||
WaveInDevice &operator=(const WaveInDevice &someWaveInDevice);
|
||||
WORD record(WaveForm &waveForm);
|
||||
protected:
|
||||
virtual void openHandler(CallbackData &someCallbackData);
|
||||
virtual void closeHandler(CallbackData &someCallbackData);
|
||||
virtual void doneHandler(CallbackData &someCallbackData);
|
||||
virtual void message(const String &strErrorMessage)const;
|
||||
private:
|
||||
WORD openDevice(WaveFormatPCM &waveFormatPCM);
|
||||
WORD closeDevice(void);
|
||||
UINT mWaveDeviceID;
|
||||
GlobalData<WaveHeader> mGlobalWaveHeader;
|
||||
WaveInCaps mWaveInCaps;
|
||||
HWAVEIN mhWaveIn;
|
||||
Window &mWindowHandler;
|
||||
};
|
||||
|
||||
inline
|
||||
WaveInDevice::WaveInDevice(UINT waveDeviceID,Window &windowHandler)
|
||||
: mWaveDeviceID(waveDeviceID), mhWaveIn(0), mGlobalWaveHeader(1,GMEM_MOVEABLE|GMEM_ZEROINIT),
|
||||
mWindowHandler(windowHandler), DeviceHandler(windowHandler)
|
||||
{
|
||||
::waveInGetDevCaps(mWaveDeviceID,&((WAVEINCAPS&)mWaveInCaps),sizeof(mWaveInCaps));
|
||||
}
|
||||
|
||||
inline
|
||||
WaveInDevice::WaveInDevice(const WaveInDevice &someWaveInDevice)
|
||||
: mWaveDeviceID(someWaveInDevice.mWaveDeviceID), mGlobalWaveHeader(1,GMEM_MOVEABLE|GMEM_ZEROINIT),
|
||||
mhWaveIn(0), mWindowHandler(someWaveInDevice.mWindowHandler), DeviceHandler(someWaveInDevice.mWindowHandler)
|
||||
{
|
||||
*this=someWaveInDevice;
|
||||
}
|
||||
|
||||
inline
|
||||
WaveInDevice &WaveInDevice::operator=(const WaveInDevice &someWaveInDevice)
|
||||
{
|
||||
mWaveInCaps=someWaveInDevice.mWaveInCaps;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline
|
||||
WaveInDevice::~WaveInDevice()
|
||||
{
|
||||
closeDevice();
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user