DSoundSet::~DSoundSet()
{
	if (!WaveIO) return;

	CDELETE(WSwitch[0]);CDELETE(WSwitch[1]);
	CDELETE(WEnd[0]);CDELETE(WEnd[1]);
	CDELETE(WStart[0]);CDELETE(WStart[1]);
	CDELETE(WNoise[0]);CDELETE(WNoise[1]);
	CDELETE(WDialog[0]);CDELETE(WDialog[1]);

	LDELALLNA(Sources);
	CDELETE(SourceHeap);
}

bool DSoundSet::Init(CWaveIO* WIO)
{
	WaveIO = WIO;

	SourceHeap = new DSoundSrcHeap;
	Sources = new DSoundSrcList;

	if (!WaveIO) return true;

	WaveIO->Space3D(0.001f);
	SoundFreqF = 1.0f;
	SoundMinD = 2000.0f;

	for(int i=0;i<2;i++)
	{
		if (!(WNoise[i] = new CWOBStatic)->Init(WaveIO, "communication\\static_noise_04.wav")) return false;
		WNoise[i]->SetGroup(LEVG_DIALOG);
		WNoise[i]->PlayFlags |= DSBPLAY_LOOPING;
		if (!(WStart[i] = new CWOBStatic)->Init(WaveIO, "communication\\comm_start.wav")) return false;
		WStart[i]->SetGroup(LEVG_DIALOG);
		if (!(WEnd[i] = new CWOBStatic)->Init(WaveIO, "communication\\comm out.wav")) return false;
		WEnd[i]->SetGroup(LEVG_DIALOG);
		if (!(WSwitch[i] = new CWOBStatic)->Init(WaveIO, "communication\\radioswitch.wav")) return false;
		WSwitch[i]->SetGroup(LEVG_DIALOG);
	}

	Enabled = true;

	return true;
}

