Rename DSound class members for consistency

This commit is contained in:
Chris Robinson
2018-12-27 13:07:14 -08:00
parent 1a4387d137
commit 7880f27054
+94 -94
View File
@@ -185,11 +185,11 @@ BOOL CALLBACK DSoundEnumDevices(GUID *guid, const WCHAR *desc, const WCHAR* UNUS
struct ALCdsoundPlayback final : public ALCbackend {
IDirectSound *DS{nullptr};
IDirectSoundBuffer *PrimaryBuffer{nullptr};
IDirectSoundBuffer *Buffer{nullptr};
IDirectSoundNotify *Notifies{nullptr};
HANDLE NotifyEvent{nullptr};
IDirectSound *mDS{nullptr};
IDirectSoundBuffer *mPrimaryBuffer{nullptr};
IDirectSoundBuffer *mBuffer{nullptr};
IDirectSoundNotify *mNotifies{nullptr};
HANDLE mNotifyEvent{nullptr};
std::atomic<ALenum> mKillNow{AL_TRUE};
std::thread mThread;
@@ -222,22 +222,22 @@ void ALCdsoundPlayback_Construct(ALCdsoundPlayback *self, ALCdevice *device)
void ALCdsoundPlayback_Destruct(ALCdsoundPlayback *self)
{
if(self->Notifies)
self->Notifies->Release();
self->Notifies = nullptr;
if(self->Buffer)
self->Buffer->Release();
self->Buffer = nullptr;
if(self->PrimaryBuffer)
self->PrimaryBuffer->Release();
self->PrimaryBuffer = nullptr;
if(self->mNotifies)
self->mNotifies->Release();
self->mNotifies = nullptr;
if(self->mBuffer)
self->mBuffer->Release();
self->mBuffer = nullptr;
if(self->mPrimaryBuffer)
self->mPrimaryBuffer->Release();
self->mPrimaryBuffer = nullptr;
if(self->DS)
self->DS->Release();
self->DS = nullptr;
if(self->NotifyEvent)
CloseHandle(self->NotifyEvent);
self->NotifyEvent = nullptr;
if(self->mDS)
self->mDS->Release();
self->mDS = nullptr;
if(self->mNotifyEvent)
CloseHandle(self->mNotifyEvent);
self->mNotifyEvent = nullptr;
ALCbackend_Destruct(STATIC_CAST(ALCbackend, self));
self->~ALCdsoundPlayback();
@@ -251,7 +251,7 @@ FORCE_ALIGN int ALCdsoundPlayback_mixerProc(ALCdsoundPlayback *self)
SetRTPriority();
althrd_setname(MIXER_THREAD_NAME);
IDirectSoundBuffer *const Buffer{self->Buffer};
IDirectSoundBuffer *const Buffer{self->mBuffer};
DSBCAPS DSBCaps{};
DSBCaps.dwSize = sizeof(DSBCaps);
@@ -295,7 +295,7 @@ FORCE_ALIGN int ALCdsoundPlayback_mixerProc(ALCdsoundPlayback *self)
Playing = true;
}
avail = WaitForSingleObjectEx(self->NotifyEvent, 2000, FALSE);
avail = WaitForSingleObjectEx(self->mNotifyEvent, 2000, FALSE);
if(avail != WAIT_OBJECT_0)
ERR("WaitForSingleObjectEx error: 0x%lx\n", avail);
continue;
@@ -384,14 +384,14 @@ ALCenum ALCdsoundPlayback_open(ALCdsoundPlayback *self, const ALCchar *deviceNam
}
hr = DS_OK;
self->NotifyEvent = CreateEventW(nullptr, FALSE, FALSE, nullptr);
if(!self->NotifyEvent) hr = E_FAIL;
self->mNotifyEvent = CreateEventW(nullptr, FALSE, FALSE, nullptr);
if(!self->mNotifyEvent) hr = E_FAIL;
//DirectSound Init code
if(SUCCEEDED(hr))
hr = DirectSoundCreate(guid, &self->DS, nullptr);
hr = DirectSoundCreate(guid, &self->mDS, nullptr);
if(SUCCEEDED(hr))
hr = self->DS->SetCooperativeLevel(GetForegroundWindow(), DSSCL_PRIORITY);
hr = self->mDS->SetCooperativeLevel(GetForegroundWindow(), DSSCL_PRIORITY);
if(FAILED(hr))
{
ERR("Device init failed: 0x%08lx\n", hr);
@@ -406,15 +406,15 @@ ALCboolean ALCdsoundPlayback_reset(ALCdsoundPlayback *self)
{
ALCdevice *device = STATIC_CAST(ALCbackend, self)->mDevice;
if(self->Notifies)
self->Notifies->Release();
self->Notifies = nullptr;
if(self->Buffer)
self->Buffer->Release();
self->Buffer = nullptr;
if(self->PrimaryBuffer)
self->PrimaryBuffer->Release();
self->PrimaryBuffer = nullptr;
if(self->mNotifies)
self->mNotifies->Release();
self->mNotifies = nullptr;
if(self->mBuffer)
self->mBuffer->Release();
self->mBuffer = nullptr;
if(self->mPrimaryBuffer)
self->mPrimaryBuffer->Release();
self->mPrimaryBuffer = nullptr;
switch(device->FmtType)
{
@@ -439,7 +439,7 @@ ALCboolean ALCdsoundPlayback_reset(ALCdsoundPlayback *self)
WAVEFORMATEXTENSIBLE OutputType{};
DWORD speakers;
HRESULT hr{self->DS->GetSpeakerConfig(&speakers)};
HRESULT hr{self->mDS->GetSpeakerConfig(&speakers)};
if(SUCCEEDED(hr))
{
speakers = DSSPEAKER_CONFIG(speakers);
@@ -539,21 +539,21 @@ retry_open:
else
OutputType.SubFormat = KSDATAFORMAT_SUBTYPE_PCM;
if(self->PrimaryBuffer)
self->PrimaryBuffer->Release();
self->PrimaryBuffer = nullptr;
if(self->mPrimaryBuffer)
self->mPrimaryBuffer->Release();
self->mPrimaryBuffer = nullptr;
}
else
{
if(SUCCEEDED(hr) && !self->PrimaryBuffer)
if(SUCCEEDED(hr) && !self->mPrimaryBuffer)
{
DSBUFFERDESC DSBDescription{};
DSBDescription.dwSize = sizeof(DSBDescription);
DSBDescription.dwFlags = DSBCAPS_PRIMARYBUFFER;
hr = self->DS->CreateSoundBuffer(&DSBDescription, &self->PrimaryBuffer, nullptr);
hr = self->mDS->CreateSoundBuffer(&DSBDescription, &self->mPrimaryBuffer, nullptr);
}
if(SUCCEEDED(hr))
hr = self->PrimaryBuffer->SetFormat(&OutputType.Format);
hr = self->mPrimaryBuffer->SetFormat(&OutputType.Format);
}
if(SUCCEEDED(hr))
@@ -573,7 +573,7 @@ retry_open:
OutputType.Format.nBlockAlign;
DSBDescription.lpwfxFormat = &OutputType.Format;
hr = self->DS->CreateSoundBuffer(&DSBDescription, &self->Buffer, nullptr);
hr = self->mDS->CreateSoundBuffer(&DSBDescription, &self->mBuffer, nullptr);
if(FAILED(hr) && device->FmtType == DevFmtFloat)
{
device->FmtType = DevFmtShort;
@@ -584,11 +584,11 @@ retry_open:
if(SUCCEEDED(hr))
{
void *ptr;
hr = self->Buffer->QueryInterface(IID_IDirectSoundNotify, &ptr);
hr = self->mBuffer->QueryInterface(IID_IDirectSoundNotify, &ptr);
if(SUCCEEDED(hr))
{
auto Notifies = reinterpret_cast<IDirectSoundNotify*>(ptr);
self->Notifies = Notifies;
auto Notifies = static_cast<IDirectSoundNotify*>(ptr);
self->mNotifies = Notifies;
device->NumUpdates = minu(device->NumUpdates, MAX_UPDATES);
@@ -596,7 +596,7 @@ retry_open:
for(ALuint i{0};i < device->NumUpdates;++i)
{
nots[i].dwOffset = i * device->UpdateSize * OutputType.Format.nBlockAlign;
nots[i].hEventNotify = self->NotifyEvent;
nots[i].hEventNotify = self->mNotifyEvent;
}
if(Notifies->SetNotificationPositions(device->NumUpdates, nots.data()) != DS_OK)
hr = E_FAIL;
@@ -605,19 +605,19 @@ retry_open:
if(FAILED(hr))
{
if(self->Notifies)
self->Notifies->Release();
self->Notifies = nullptr;
if(self->Buffer)
self->Buffer->Release();
self->Buffer = nullptr;
if(self->PrimaryBuffer)
self->PrimaryBuffer->Release();
self->PrimaryBuffer = nullptr;
if(self->mNotifies)
self->mNotifies->Release();
self->mNotifies = nullptr;
if(self->mBuffer)
self->mBuffer->Release();
self->mBuffer = nullptr;
if(self->mPrimaryBuffer)
self->mPrimaryBuffer->Release();
self->mPrimaryBuffer = nullptr;
return ALC_FALSE;
}
ResetEvent(self->NotifyEvent);
ResetEvent(self->mNotifyEvent);
SetDefaultWFXChannelOrder(device);
return ALC_TRUE;
@@ -645,17 +645,17 @@ void ALCdsoundPlayback_stop(ALCdsoundPlayback *self)
self->mThread.join();
self->Buffer->Stop();
self->mBuffer->Stop();
}
struct ALCdsoundCapture final : public ALCbackend {
IDirectSoundCapture *DSC{nullptr};
IDirectSoundCaptureBuffer *DSCbuffer{nullptr};
DWORD BufferBytes{0u};
DWORD Cursor{0u};
IDirectSoundCapture *mDSC{nullptr};
IDirectSoundCaptureBuffer *mDSCbuffer{nullptr};
DWORD mBufferBytes{0u};
DWORD mCursor{0u};
RingBufferPtr Ring{nullptr};
RingBufferPtr mRing;
};
void ALCdsoundCapture_Construct(ALCdsoundCapture *self, ALCdevice *device);
@@ -681,16 +681,16 @@ void ALCdsoundCapture_Construct(ALCdsoundCapture *self, ALCdevice *device)
void ALCdsoundCapture_Destruct(ALCdsoundCapture *self)
{
if(self->DSCbuffer)
if(self->mDSCbuffer)
{
self->DSCbuffer->Stop();
self->DSCbuffer->Release();
self->DSCbuffer = nullptr;
self->mDSCbuffer->Stop();
self->mDSCbuffer->Release();
self->mDSCbuffer = nullptr;
}
if(self->DSC)
self->DSC->Release();
self->DSC = nullptr;
if(self->mDSC)
self->mDSC->Release();
self->mDSC = nullptr;
ALCbackend_Destruct(STATIC_CAST(ALCbackend, self));
self->~ALCdsoundCapture();
@@ -830,32 +830,32 @@ ALCenum ALCdsoundCapture_open(ALCdsoundCapture *self, const ALCchar *deviceName)
DSCBDescription.lpwfxFormat = &InputType.Format;
//DirectSoundCapture Init code
hr = DirectSoundCaptureCreate(guid, &self->DSC, nullptr);
hr = DirectSoundCaptureCreate(guid, &self->mDSC, nullptr);
if(SUCCEEDED(hr))
self->DSC->CreateCaptureBuffer(&DSCBDescription, &self->DSCbuffer, nullptr);
self->mDSC->CreateCaptureBuffer(&DSCBDescription, &self->mDSCbuffer, nullptr);
if(SUCCEEDED(hr))
{
self->Ring = CreateRingBuffer(device->UpdateSize*device->NumUpdates,
self->mRing = CreateRingBuffer(device->UpdateSize*device->NumUpdates,
InputType.Format.nBlockAlign, false);
if(!self->Ring) hr = DSERR_OUTOFMEMORY;
if(!self->mRing) hr = DSERR_OUTOFMEMORY;
}
if(FAILED(hr))
{
ERR("Device init failed: 0x%08lx\n", hr);
self->Ring = nullptr;
if(self->DSCbuffer)
self->DSCbuffer->Release();
self->DSCbuffer = nullptr;
if(self->DSC)
self->DSC->Release();
self->DSC = nullptr;
self->mRing = nullptr;
if(self->mDSCbuffer)
self->mDSCbuffer->Release();
self->mDSCbuffer = nullptr;
if(self->mDSC)
self->mDSC->Release();
self->mDSC = nullptr;
return ALC_INVALID_VALUE;
}
self->BufferBytes = DSCBDescription.dwBufferBytes;
self->mBufferBytes = DSCBDescription.dwBufferBytes;
SetDefaultWFXChannelOrder(device);
device->DeviceName = deviceName;
@@ -864,7 +864,7 @@ ALCenum ALCdsoundCapture_open(ALCdsoundCapture *self, const ALCchar *deviceName)
ALCboolean ALCdsoundCapture_start(ALCdsoundCapture *self)
{
HRESULT hr{self->DSCbuffer->Start(DSCBSTART_LOOPING)};
HRESULT hr{self->mDSCbuffer->Start(DSCBSTART_LOOPING)};
if(FAILED(hr))
{
ERR("start failed: 0x%08lx\n", hr);
@@ -878,7 +878,7 @@ ALCboolean ALCdsoundCapture_start(ALCdsoundCapture *self)
void ALCdsoundCapture_stop(ALCdsoundCapture *self)
{
HRESULT hr{self->DSCbuffer->Stop()};
HRESULT hr{self->mDSCbuffer->Stop()};
if(FAILED(hr))
{
ERR("stop failed: 0x%08lx\n", hr);
@@ -889,7 +889,7 @@ void ALCdsoundCapture_stop(ALCdsoundCapture *self)
ALCenum ALCdsoundCapture_captureSamples(ALCdsoundCapture *self, ALCvoid *buffer, ALCuint samples)
{
RingBuffer *ring{self->Ring.get()};
RingBuffer *ring{self->mRing.get()};
ring->read(buffer, samples);
return ALC_NO_ERROR;
}
@@ -897,33 +897,33 @@ ALCenum ALCdsoundCapture_captureSamples(ALCdsoundCapture *self, ALCvoid *buffer,
ALCuint ALCdsoundCapture_availableSamples(ALCdsoundCapture *self)
{
ALCdevice *device{self->mDevice};
RingBuffer *ring{self->Ring.get()};
RingBuffer *ring{self->mRing.get()};
if(!device->Connected.load(std::memory_order_acquire))
return static_cast<ALCuint>(ring->readSpace());
ALsizei FrameSize{device->frameSizeFromFmt()};
DWORD BufferBytes{self->BufferBytes};
DWORD LastCursor{self->Cursor};
DWORD BufferBytes{self->mBufferBytes};
DWORD LastCursor{self->mCursor};
DWORD ReadCursor;
void *ReadPtr1, *ReadPtr2;
DWORD ReadCnt1, ReadCnt2;
HRESULT hr{self->DSCbuffer->GetCurrentPosition(nullptr, &ReadCursor)};
HRESULT hr{self->mDSCbuffer->GetCurrentPosition(nullptr, &ReadCursor)};
if(SUCCEEDED(hr))
{
DWORD NumBytes{(ReadCursor-LastCursor + BufferBytes) % BufferBytes};
if(!NumBytes) return static_cast<ALCubyte>(ring->readSpace());
hr = self->DSCbuffer->Lock(LastCursor, NumBytes, &ReadPtr1, &ReadCnt1,
&ReadPtr2, &ReadCnt2, 0);
hr = self->mDSCbuffer->Lock(LastCursor, NumBytes, &ReadPtr1, &ReadCnt1,
&ReadPtr2, &ReadCnt2, 0);
}
if(SUCCEEDED(hr))
{
ring->write(ReadPtr1, ReadCnt1/FrameSize);
if(ReadPtr2 != nullptr)
if(ReadPtr2 != nullptr && ReadCnt2 > 0)
ring->write(ReadPtr2, ReadCnt2/FrameSize);
hr = self->DSCbuffer->Unlock(ReadPtr1, ReadCnt1, ReadPtr2, ReadCnt2);
self->Cursor = (LastCursor+ReadCnt1+ReadCnt2) % BufferBytes;
hr = self->mDSCbuffer->Unlock(ReadPtr1, ReadCnt1, ReadPtr2, ReadCnt2);
self->mCursor = (LastCursor+ReadCnt1+ReadCnt2) % BufferBytes;
}
if(FAILED(hr))