Commit afe0daad authored by Alistair Leslie-Hughes's avatar Alistair Leslie-Hughes Committed by Vitaly Lipatov

xactengine3_7: Map IXACT3Wave interfaces

parent 942edf63
......@@ -716,6 +716,7 @@ static HRESULT WINAPI IXACT3WaveBankImpl_Prepare(IXACT3WaveBank *iface,
XACT3WaveImpl *wave;
FACTWave *fwave;
UINT ret;
HRESULT hr;
TRACE("(%p)->(0x%x, %lu, 0x%lx, %u, %p)\n", This, nWaveIndex, dwFlags,
dwPlayOffset, nLoopCount, ppWave);
......@@ -736,6 +737,15 @@ static HRESULT WINAPI IXACT3WaveBankImpl_Prepare(IXACT3WaveBank *iface,
return E_OUTOFMEMORY;
}
hr = wrapper_add_entry(This->engine, fwave, &wave->IXACT3Wave_iface);
if (FAILED(hr))
{
FACTWave_Destroy(fwave);
HeapFree(GetProcessHeap(), 0, wave);
ERR("Failed to allocate wrapper_lookup!\n");
return E_OUTOFMEMORY;
}
wave->IXACT3Wave_iface.lpVtbl = &XACT3Wave_Vtbl;
wave->fact_wave = fwave;
*ppWave = &wave->IXACT3Wave_iface;
......@@ -778,6 +788,15 @@ static HRESULT WINAPI IXACT3WaveBankImpl_Play(IXACT3WaveBank *iface,
return E_OUTOFMEMORY;
}
hr = wrapper_add_entry(This->engine, fwave, &wave->IXACT3Wave_iface);
if (FAILED(hr))
{
FACTWave_Destroy(fwave);
HeapFree(GetProcessHeap(), 0, wave);
ERR("Failed to allocate wrapper_lookup!\n");
return E_OUTOFMEMORY;
}
wave->IXACT3Wave_iface.lpVtbl = &XACT3Wave_Vtbl;
wave->fact_wave = fwave;
*ppWave = &wave->IXACT3Wave_iface;
......@@ -1264,6 +1283,7 @@ static HRESULT WINAPI IXACT3EngineImpl_PrepareInMemoryWave(IXACT3Engine *iface,
FACTWave *fwave = NULL;
FACTWaveBankEntry fact_wavebank;
UINT ret;
HRESULT hr;
TRACE("(%p)->(0x%08lx, %p, %p, %p, %ld, %d, %p)\n", This, dwFlags, &entry, pdwSeekTable,
pbWaveData, dwPlayOffset, nLoopCount, ppWave);
......@@ -1291,6 +1311,15 @@ static HRESULT WINAPI IXACT3EngineImpl_PrepareInMemoryWave(IXACT3Engine *iface,
return E_OUTOFMEMORY;
}
hr = wrapper_add_entry(This, fwave, &wave->IXACT3Wave_iface);
if (FAILED(hr))
{
FACTWave_Destroy(fwave);
HeapFree(GetProcessHeap(), 0, wave);
ERR("Failed to allocate wrapper_lookup!\n");
return E_OUTOFMEMORY;
}
wave->IXACT3Wave_iface.lpVtbl = &XACT3Wave_Vtbl;
wave->fact_wave = fwave;
*ppWave = &wave->IXACT3Wave_iface;
......@@ -1313,6 +1342,7 @@ static HRESULT WINAPI IXACT3EngineImpl_PrepareStreamingWave(IXACT3Engine *iface,
wrap_readfile_struct *fake;
FACTWaveBankEntry fact_wavebank;
UINT ret;
HRESULT hr;
TRACE("(%p)->(0x%08lx, %p, %p, %ld, %p, %ld, %d, %p)\n", This, dwFlags, &entry, &streamingParams,
dwAlignment, pdwSeekTable, dwPlayOffset, nLoopCount, ppWave);
......@@ -1353,6 +1383,15 @@ static HRESULT WINAPI IXACT3EngineImpl_PrepareStreamingWave(IXACT3Engine *iface,
return E_OUTOFMEMORY;
}
hr = wrapper_add_entry(This, fwave, &wave->IXACT3Wave_iface);
if (FAILED(hr))
{
FACTWave_Destroy(fwave);
HeapFree(GetProcessHeap(), 0, wave);
ERR("Failed to allocate wrapper_lookup!\n");
return E_OUTOFMEMORY;
}
wave->IXACT3Wave_iface.lpVtbl = &XACT3Wave_Vtbl;
wave->fact_wave = fwave;
*ppWave = &wave->IXACT3Wave_iface;
......@@ -1371,6 +1410,7 @@ static HRESULT WINAPI IXACT3EngineImpl_PrepareWave(IXACT3Engine *iface,
XACT3WaveImpl *wave;
FACTWave *fwave = NULL;
UINT ret;
HRESULT hr;
TRACE("(%p)->(0x%08lx, %s, %d, %ld, %ld, %d, %p)\n", This, dwFlags, debugstr_a(szWavePath),
wStreamingPacketSize, dwAlignment, dwPlayOffset, nLoopCount, ppWave);
......@@ -1390,6 +1430,15 @@ static HRESULT WINAPI IXACT3EngineImpl_PrepareWave(IXACT3Engine *iface,
return E_OUTOFMEMORY;
}
hr = wrapper_add_entry(This, fwave, &wave->IXACT3Wave_iface);
if (FAILED(hr))
{
FACTWave_Destroy(fwave);
HeapFree(GetProcessHeap(), 0, wave);
ERR("Failed to allocate wrapper_lookup!\n");
return E_OUTOFMEMORY;
}
wave->IXACT3Wave_iface.lpVtbl = &XACT3Wave_Vtbl;
wave->fact_wave = fwave;
*ppWave = &wave->IXACT3Wave_iface;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment