You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

69 lines
1.6 KiB

#include <iostream>
#include <fstream>
#include "hsResMgr.h"
#include "plFormat.h"
#include "plDSoundBuffer.h"
#include "plWin32VideoSound.h"
static int uniqueID = 0;
plWin32VideoSound::plWin32VideoSound() : plWin32Sound()
{
plWAVHeader header;
header.fFormatTag = 0x1;
header.fNumChannels = 1;
header.fBitsPerSample = 16;
fDSoundBuffer = new plDSoundBuffer(0, header, false, false, false, true);
fDSoundBuffer->SetupVoiceSource();
uniqueID++;
hsgResMgr::ResMgr()->NewKey(plFormat("videosound#{}", uniqueID), this, plLocation::kGlobalFixedLoc);
fSoftVolume = 1.0f;
}
plWin32VideoSound::~plWin32VideoSound()
{
delete fDSoundBuffer;
}
void plWin32VideoSound::UpdateSoundBuffer(unsigned char* buffer, size_t size)
{
unsigned int bufferID = 0;
if (fDSoundBuffer->GetAvailableBufferId(&bufferID))
{
fDSoundBuffer->VoiceFillBuffer(buffer, size, bufferID);
IActuallyPlay();
}
}
void plWin32VideoSound::IDerivedActuallyPlay()
{
if (!fDSoundBuffer->IsPlaying())
fDSoundBuffer->Play();
}
bool plWin32VideoSound::LoadSound(bool is3D)
{
hsAssert(false, "unimplemented cause unnecessary for this class");
return false;
}
void plWin32VideoSound::SetStartPos(unsigned bytes)
{
//do nothing
hsAssert(false, "unimplemented cause unnecessary for this class");
}
float plWin32VideoSound::GetActualTimeSec()
{
hsAssert(false, "unimplemented cause unnecessary for this class");
return 0;
}
void plWin32VideoSound::ISetActualTime(double t)
{
hsAssert(false, "unimplemented cause unnecessary for this class");
}