⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sinsound.h

📁 利用电脑练习和进行电台通联CW的软件
💻 H
字号:
#pragma once

#define PI				3.1415926l

class CSinSound
{
public:
	CSinSound();
	~CSinSound();

	BOOL Initialize(HWND hWnd);

	void SetSampleRate(DWORD nSamplesPerSec);
	DWORD GetSampleRate() { return m_oFormat.nSamplesPerSec; };

	void SetBitsPerSample(WORD nBits);
	WORD GetBitsPerSample() { return m_oFormat.wBitsPerSample; };

	void SetBufferLength(double rMSec);
	double GetBufferLength() { return m_rBufferLengthMs; };

	void SetFrequency(double rFrequency);
	double GetFrequency() { return m_rFrequencyHz; };

	void SetScale(double rScale);
	double GetScale() { return m_rScale; };

	BOOL Validate();
	void Play();
	void Stop();

	void PlayBlank();
	void StopBlank();

private:

	BOOL InitBufferFormat();
	BOOL InitPlayedBuffer();
	BOOL WriteBuffer();

	LPDIRECTSOUND		m_pDs;
	LPDIRECTSOUNDBUFFER m_pBlankDsb;
	LPDIRECTSOUNDBUFFER	m_pDsb;

	WAVEFORMATEX		m_oFormat;
	DSBUFFERDESC		m_oPlayedBufferDesc;

	double				m_rBufferLengthMs;
	double				m_rFrequencyHz;
	double				m_rScale;

	BOOL				m_bFormatValid;
	BOOL				m_bDsbValid;
	BOOL				m_bDataValid;
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -