|
사운드카드에서 들어오는 마이크음의 레벨을 화면에 값으로 높낯이를 표시하고 싶습니다
vc용 소스는 첨부와 같이 구했는데 이걸 c++빌더로 바꾸려고 하니 너무 어렵네요
다른 좋은 방법이나 컴포넌트로 된것은 없는지요 ?
class CSoundIn
{
public:
// used for int FFT
SHORT InputBuffer[MAX_SIZE_INPUT_BUFFER];
WAVEINCAPS m_WaveInDevCaps;
HWAVEIN m_WaveIn;
WAVEHDR m_WaveHeader;
WAVEFORMATEX m_WaveFormat;
short m_CalOffset;
double m_CalGain;
HANDLE m_WaveInEvent;
CWinThread * m_WaveInThread; // 에러 발생
BOOL m_TerminateThread;
UINT m_WaveInSampleRate;
int m_NbMaxSamples;
UINT m_SizeRecord;
WORD m_Toggle; /*0 or 1 according the buffer currently loaded*/
public :
void StartMic();
void StopMic();
void CloseMic();
void AddBuffer();
public :
virtual void RazBuffers();
virtual void ComputeSamples(SHORT *); // calibrate the samples for the basse class
// this function is overloaded by the parent
// it need to call this function first to calibrate them
//////////////////////////////////////////////////////
// functions members
MMRESULT OpenMic();
void WaveInitFormat( WORD nCh, // number of channels (mono, stereo)
DWORD nSampleRate, // sample rate
WORD BitsPerSample);
//void CALLBACK waveInProc( HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2 );
CSoundIn();
virtual ~CSoundIn();
};
|