dmband: Implement band track GUID_DownloadToAudioPath parameter.

This commit is contained in:
Rémi Bernon 2023-09-21 12:08:42 +02:00 committed by Alexandre Julliard
parent 52a38dc41f
commit 96b0bdd7b5

View file

@ -193,7 +193,32 @@ static HRESULT WINAPI band_track_SetParam(IDirectMusicTrack8 *iface, REFGUID typ
else if (IsEqualGUID(type, &GUID_Download))
FIXME("GUID_Download not handled yet\n");
else if (IsEqualGUID(type, &GUID_DownloadToAudioPath))
FIXME("GUID_DownloadToAudioPath not handled yet\n");
{
IDirectMusicPerformance *performance;
IDirectMusicAudioPath *audio_path;
IUnknown *object = param;
struct band_entry *entry;
HRESULT hr;
if (FAILED(hr = IDirectMusicAudioPath_QueryInterface(object, &IID_IDirectMusicPerformance8, (void **)&performance))
&& SUCCEEDED(hr = IDirectMusicAudioPath_QueryInterface(object, &IID_IDirectMusicAudioPath, (void **)&audio_path)))
{
hr = IDirectMusicAudioPath_GetObjectInPath(audio_path, DMUS_PCHANNEL_ALL, DMUS_PATH_PERFORMANCE, 0,
&GUID_All_Objects, 0, &IID_IDirectMusicPerformance8, (void **)&performance);
IDirectMusicAudioPath_Release(audio_path);
}
if (FAILED(hr))
{
WARN("Failed to get IDirectMusicPerformance from param %p\n", param);
return hr;
}
LIST_FOR_EACH_ENTRY(entry, &This->bands, struct band_entry, entry)
if (FAILED(hr = IDirectMusicBand_Download(entry->band, performance))) break;
IDirectMusicPerformance_Release(performance);
}
else if (IsEqualGUID(type, &GUID_Enable_Auto_Download))
FIXME("GUID_Enable_Auto_Download not handled yet\n");
else if (IsEqualGUID(type, &GUID_IDirectMusicBand))