mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-15 00:27:16 +00:00
dmime: Return DMUS_E_AUDIOPATH_INACTIVE when audio paths are not enabled.
This commit is contained in:
parent
0fb4e5ec47
commit
9e0487c4cc
|
@ -1096,45 +1096,41 @@ static HRESULT WINAPI performance_ClonePMsg(IDirectMusicPerformance8 *iface, DMU
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI performance_CreateAudioPath(IDirectMusicPerformance8 *iface,
|
static HRESULT WINAPI performance_CreateAudioPath(IDirectMusicPerformance8 *iface,
|
||||||
IUnknown *pSourceConfig, BOOL fActivate, IDirectMusicAudioPath **ppNewPath)
|
IUnknown *pSourceConfig, BOOL fActivate, IDirectMusicAudioPath **ret_iface)
|
||||||
{
|
{
|
||||||
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
||||||
IDirectMusicAudioPath *pPath;
|
IDirectMusicAudioPath *pPath;
|
||||||
|
|
||||||
FIXME("(%p, %p, %d, %p): stub\n", This, pSourceConfig, fActivate, ppNewPath);
|
FIXME("(%p, %p, %d, %p): stub\n", This, pSourceConfig, fActivate, ret_iface);
|
||||||
|
|
||||||
if (NULL == ppNewPath) {
|
if (!ret_iface) return E_POINTER;
|
||||||
return E_POINTER;
|
if (!This->audio_paths_enabled) return DMUS_E_AUDIOPATH_INACTIVE;
|
||||||
}
|
|
||||||
|
|
||||||
create_dmaudiopath(&IID_IDirectMusicAudioPath, (void**)&pPath);
|
create_dmaudiopath(&IID_IDirectMusicAudioPath, (void **)&pPath);
|
||||||
set_audiopath_perf_pointer(pPath, iface);
|
set_audiopath_perf_pointer(pPath, iface);
|
||||||
|
|
||||||
/** TODO */
|
/** TODO */
|
||||||
|
*ret_iface = pPath;
|
||||||
*ppNewPath = pPath;
|
return IDirectMusicAudioPath_Activate(*ret_iface, fActivate);
|
||||||
|
|
||||||
return IDirectMusicAudioPath_Activate(*ppNewPath, fActivate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI performance_CreateStandardAudioPath(IDirectMusicPerformance8 *iface,
|
static HRESULT WINAPI performance_CreateStandardAudioPath(IDirectMusicPerformance8 *iface,
|
||||||
DWORD dwType, DWORD pchannel_count, BOOL fActivate, IDirectMusicAudioPath **ppNewPath)
|
DWORD dwType, DWORD pchannel_count, BOOL fActivate, IDirectMusicAudioPath **ret_iface)
|
||||||
{
|
{
|
||||||
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
||||||
IDirectMusicAudioPath *pPath;
|
IDirectMusicAudioPath *pPath;
|
||||||
DSBUFFERDESC desc;
|
DSBUFFERDESC desc;
|
||||||
WAVEFORMATEX format;
|
WAVEFORMATEX format;
|
||||||
DMUS_PORTPARAMS params = {0};
|
DMUS_PORTPARAMS params = {0};
|
||||||
IDirectSoundBuffer *buffer, *primary_buffer;
|
IDirectSoundBuffer *buffer, *primary_buffer;
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
|
|
||||||
FIXME("(%p)->(%ld, %ld, %d, %p): semi-stub\n", This, dwType, pchannel_count, fActivate, ppNewPath);
|
FIXME("(%p)->(%ld, %ld, %d, %p): semi-stub\n", This, dwType, pchannel_count, fActivate, ret_iface);
|
||||||
|
|
||||||
if (NULL == ppNewPath) {
|
if (!ret_iface) return E_POINTER;
|
||||||
return E_POINTER;
|
if (!This->audio_paths_enabled) return DMUS_E_AUDIOPATH_INACTIVE;
|
||||||
}
|
|
||||||
|
|
||||||
*ppNewPath = NULL;
|
*ret_iface = NULL;
|
||||||
|
|
||||||
/* Secondary buffer description */
|
/* Secondary buffer description */
|
||||||
memset(&format, 0, sizeof(format));
|
memset(&format, 0, sizeof(format));
|
||||||
|
@ -1204,46 +1200,42 @@ static HRESULT WINAPI performance_CreateStandardAudioPath(IDirectMusicPerformanc
|
||||||
set_audiopath_dsound_buffer(pPath, buffer);
|
set_audiopath_dsound_buffer(pPath, buffer);
|
||||||
set_audiopath_primary_dsound_buffer(pPath, primary_buffer);
|
set_audiopath_primary_dsound_buffer(pPath, primary_buffer);
|
||||||
|
|
||||||
*ppNewPath = pPath;
|
*ret_iface = pPath;
|
||||||
|
TRACE(" returning IDirectMusicAudioPath interface at %p.\n", *ret_iface);
|
||||||
TRACE(" returning IDirectMusicAudioPath interface at %p.\n", *ppNewPath);
|
return IDirectMusicAudioPath_Activate(*ret_iface, fActivate);
|
||||||
|
|
||||||
return IDirectMusicAudioPath_Activate(*ppNewPath, fActivate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI performance_SetDefaultAudioPath(IDirectMusicPerformance8 *iface, IDirectMusicAudioPath *pAudioPath)
|
static HRESULT WINAPI performance_SetDefaultAudioPath(IDirectMusicPerformance8 *iface, IDirectMusicAudioPath *audio_path)
|
||||||
{
|
{
|
||||||
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
||||||
|
|
||||||
FIXME("(%p, %p): semi-stub\n", This, pAudioPath);
|
FIXME("(%p, %p): semi-stub\n", This, audio_path);
|
||||||
|
|
||||||
if (This->pDefaultPath) {
|
if (!This->audio_paths_enabled) return DMUS_E_AUDIOPATH_INACTIVE;
|
||||||
IDirectMusicAudioPath_Release(This->pDefaultPath);
|
|
||||||
This->pDefaultPath = NULL;
|
|
||||||
}
|
|
||||||
This->pDefaultPath = pAudioPath;
|
|
||||||
if (This->pDefaultPath) {
|
|
||||||
IDirectMusicAudioPath_AddRef(This->pDefaultPath);
|
|
||||||
set_audiopath_perf_pointer(This->pDefaultPath, iface);
|
|
||||||
}
|
|
||||||
|
|
||||||
return S_OK;
|
if (This->pDefaultPath) IDirectMusicAudioPath_Release(This->pDefaultPath);
|
||||||
|
if ((This->pDefaultPath = audio_path))
|
||||||
|
{
|
||||||
|
IDirectMusicAudioPath_AddRef(This->pDefaultPath);
|
||||||
|
set_audiopath_perf_pointer(This->pDefaultPath, iface);
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI performance_GetDefaultAudioPath(IDirectMusicPerformance8 *iface,
|
static HRESULT WINAPI performance_GetDefaultAudioPath(IDirectMusicPerformance8 *iface,
|
||||||
IDirectMusicAudioPath **ppAudioPath)
|
IDirectMusicAudioPath **ret_iface)
|
||||||
{
|
{
|
||||||
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
struct performance *This = impl_from_IDirectMusicPerformance8(iface);
|
||||||
|
|
||||||
FIXME("(%p, %p): semi-stub (%p)\n", This, ppAudioPath, This->pDefaultPath);
|
FIXME("(%p, %p): semi-stub (%p)\n", This, ret_iface, This->pDefaultPath);
|
||||||
|
|
||||||
if (NULL != This->pDefaultPath) {
|
if (!ret_iface) return E_POINTER;
|
||||||
*ppAudioPath = This->pDefaultPath;
|
if (!This->audio_paths_enabled) return DMUS_E_AUDIOPATH_INACTIVE;
|
||||||
IDirectMusicAudioPath_AddRef(*ppAudioPath);
|
|
||||||
} else {
|
if ((*ret_iface = This->pDefaultPath)) IDirectMusicAudioPath_AddRef(*ret_iface);
|
||||||
*ppAudioPath = NULL;
|
|
||||||
}
|
return S_OK;
|
||||||
return S_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI performance_GetParamEx(IDirectMusicPerformance8 *iface, REFGUID rguidType, DWORD dwTrackID,
|
static HRESULT WINAPI performance_GetParamEx(IDirectMusicPerformance8 *iface, REFGUID rguidType, DWORD dwTrackID,
|
||||||
|
|
Loading…
Reference in a new issue