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
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"); |
|
} |