本文整理汇总了C++中LPDIRECTSOUND3DLISTENER::SetAllParameters方法的典型用法代码示例。如果您正苦于以下问题:C++ LPDIRECTSOUND3DLISTENER::SetAllParameters方法的具体用法?C++ LPDIRECTSOUND3DLISTENER::SetAllParameters怎么用?C++ LPDIRECTSOUND3DLISTENER::SetAllParameters使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LPDIRECTSOUND3DLISTENER
的用法示例。
在下文中一共展示了LPDIRECTSOUND3DLISTENER::SetAllParameters方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Initialize
static int Initialize(void *hwnd)
{
DSBUFFERDESC primaryDesc;
if (!g_lpDSDevice) return TRUE;
sysMemZero(&primaryDesc, sizeof(DSBUFFERDESC));
primaryDesc.dwSize = sizeof(DSBUFFERDESC);
primaryDesc.dwFlags = DSBCAPS_PRIMARYBUFFER;
if (RLX.Audio.Config & RLXAUDIO_Use3D)
primaryDesc.dwFlags|= DSBCAPS_CTRL3D;
if (SYS_DXTRACE(g_lpDSDevice->SetCooperativeLevel((HWND)hwnd, DSSCL_EXCLUSIVE)) != DS_OK)
return -1;
if (SYS_DXTRACE(g_lpDSDevice->CreateSoundBuffer(&primaryDesc, &g_lpPrimaryBuffer, NULL))!=DS_OK )
return 0;
else
{
HRESULT hr;
sysMemZero(&g_cDSPCMOutFormat, sizeof(WAVEFORMATEX));
g_cDSPCMOutFormat.wFormatTag = WAVE_FORMAT_PCM;
g_cDSPCMOutFormat.wBitsPerSample = 16;
g_cDSPCMOutFormat.nChannels = 2;
g_cDSPCMOutFormat.nSamplesPerSec = 44100;
g_cDSPCMOutFormat.nBlockAlign = (uint16_t)(g_cDSPCMOutFormat.nChannels * (g_cDSPCMOutFormat.wBitsPerSample>>3));
g_cDSPCMOutFormat.nAvgBytesPerSec = (uint32_t)g_cDSPCMOutFormat.nBlockAlign * (uint32_t)g_cDSPCMOutFormat.nSamplesPerSec;
hr = g_lpPrimaryBuffer->SetFormat(&g_cDSPCMOutFormat);
if ( hr != DS_OK )
FindAlternateSampleFormat();
if (RLX.Audio.Config & RLXAUDIO_Use3D)
{
hr = SYS_DXTRACE(g_lpPrimaryBuffer->QueryInterface(IID_IDirectSound3DListener, (void**)&g_lpDS3DListener));
if (hr== DS_OK)
hr = g_lpDS3DListener->SetAllParameters(&Listener3dProps, DS3D_IMMEDIATE);
}
}
return 0; // no problemo.
}
示例2: Set3DParameters
//-----------------------------------------------------------------------------
// Name: Set3DParameters()
// Desc: Set the 3D buffer parameters
//-----------------------------------------------------------------------------
VOID Set3DParameters( FLOAT fDopplerFactor, FLOAT fRolloffFactor,
FLOAT fMinDistance, FLOAT fMaxDistance )
{
// Every change to 3-D sound buffer and listener settings causes
// DirectSound to remix, at the expense of CPU cycles.
// To minimize the performance impact of changing 3-D settings,
// use the DS3D_DEFERRED flag in the dwApply parameter of any of
// the IDirectSound3DListener or IDirectSound3DBuffer methods that
// change 3-D settings. Then call the IDirectSound3DListener::CommitDeferredSettings
// method to execute all of the deferred commands at once.
DWORD dwApplyFlag = ( g_bDeferSettings ) ? DS3D_DEFERRED : DS3D_IMMEDIATE;
g_dsListenerParams.flDopplerFactor = fDopplerFactor;
g_dsListenerParams.flRolloffFactor = fRolloffFactor;
if( g_pDSListener )
g_pDSListener->SetAllParameters( &g_dsListenerParams, dwApplyFlag );
g_dsBufferParams.flMinDistance = fMinDistance;
g_dsBufferParams.flMaxDistance = fMaxDistance;
if( g_pDS3DBuffer )
g_pDS3DBuffer->SetAllParameters( &g_dsBufferParams, dwApplyFlag );
}