Commit a4a5e9ae authored by Rok Mandeljc's avatar Rok Mandeljc Committed by Alexandre Julliard

- added debug

- implemented fake midi & performance channels - implemented some IDirectMusic*8* functions where IDirectMusic* equivalent exists - IDirectMusic*8 interfaces can now be obtained from IDirectMusic interfaces (QueryInterface...) - channel-related performance functions are kinda implemented now
parent e2607505
......@@ -38,7 +38,7 @@ HRESULT WINAPI IDirectMusicInstrumentImpl_QueryInterface (LPDIRECTMUSICINSTRUMEN
{
IDirectMusicInstrumentImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -66,14 +66,22 @@ ULONG WINAPI IDirectMusicInstrumentImpl_Release (LPDIRECTMUSICINSTRUMENT iface)
/* IDirectMusicInstrument Interface follow: */
HRESULT WINAPI IDirectMusicInstrumentImpl_GetPatch (LPDIRECTMUSICINSTRUMENT iface, DWORD* pdwPatch)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicInstrumentImpl,iface);
TRACE("(%p, %p)\n", This, pdwPatch);
*pdwPatch = This->patch;
return S_OK;
}
HRESULT WINAPI IDirectMusicInstrumentImpl_SetPatch (LPDIRECTMUSICINSTRUMENT iface, DWORD dwPatch)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicInstrumentImpl,iface);
TRACE("(%p, %ld)\n", This, dwPatch);
This->patch = dwPatch;
return S_OK;
}
ICOM_VTABLE(IDirectMusicInstrument) DirectMusicInstrument_Vtbl =
......@@ -96,7 +104,7 @@ HRESULT WINAPI IDirectMusicDownloadedInstrumentImpl_QueryInterface (LPDIRECTMUSI
{
IDirectMusicDownloadedInstrumentImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -142,7 +150,7 @@ HRESULT WINAPI IDirectMusicCollectionImpl_QueryInterface (LPDIRECTMUSICCOLLECTIO
{
IDirectMusicCollectionImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -170,14 +178,20 @@ ULONG WINAPI IDirectMusicCollectionImpl_Release (LPDIRECTMUSICCOLLECTION iface)
/* IDirectMusicCollection Interface follow: */
HRESULT WINAPI IDirectMusicCollectionImpl_GetInstrument (LPDIRECTMUSICCOLLECTION iface, DWORD dwPatch, IDirectMusicInstrument** ppInstrument)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicCollectionImpl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwPatch, ppInstrument);
return S_OK;
}
HRESULT WINAPI IDirectMusicCollectionImpl_EnumInstrument (LPDIRECTMUSICCOLLECTION iface, DWORD dwIndex, DWORD* pdwPatch, LPWSTR pwszName, DWORD dwNameLen)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicCollectionImpl,iface);
FIXME("(%p, %ld, %p, %p, %ld): stub\n", This, dwIndex, pdwPatch, pwszName, dwNameLen);
return S_OK;
}
ICOM_VTABLE(IDirectMusicCollection) DirectMusicCollection_Vtbl =
......
......@@ -38,7 +38,7 @@ HRESULT WINAPI IDirectMusicLoaderImpl_QueryInterface (LPDIRECTMUSICLOADER iface,
{
IDirectMusicLoaderImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -66,56 +66,83 @@ ULONG WINAPI IDirectMusicLoaderImpl_Release (LPDIRECTMUSICLOADER iface)
/* IDirectMusicLoader Interface follow: */
HRESULT WINAPI IDirectMusicLoaderImpl_GetObject (LPDIRECTMUSICLOADER iface, LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID*ppv)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %p, %s, %p): stub\n", This, pDesc, debugstr_guid(riid), ppv);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_SetObject (LPDIRECTMUSICLOADER iface, LPDMUS_OBJECTDESC pDesc)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %p): stub\n", This, pDesc);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_SetSearchDirectory (LPDIRECTMUSICLOADER iface, REFGUID rguidClass, WCHAR* pwzPath, BOOL fClear)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %s, %p, %d): stub\n", This, debugstr_guid(rguidClass), pwzPath, fClear);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_ScanDirectory (LPDIRECTMUSICLOADER iface, REFGUID rguidClass, WCHAR* pwzFileExtension, WCHAR* pwzScanFileName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %s, %p, %p): stub\n", This, debugstr_guid(rguidClass), pwzFileExtension, pwzScanFileName);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_CacheObject (LPDIRECTMUSICLOADER iface, IDirectMusicObject* pObject)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %p): stub\n", This, pObject);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_ReleaseObject (LPDIRECTMUSICLOADER iface, IDirectMusicObject* pObject)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %p): stub\n", This, pObject);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_ClearCache (LPDIRECTMUSICLOADER iface, REFGUID rguidClass)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p,%s): stub\n", This, debugstr_guid(rguidClass));
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_EnableCache (LPDIRECTMUSICLOADER iface, REFGUID rguidClass, BOOL fEnable)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %s, %d): stub\n", This, debugstr_guid(rguidClass), fEnable);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoaderImpl_EnumObject (LPDIRECTMUSICLOADER iface, REFGUID rguidClass, DWORD dwIndex, LPDMUS_OBJECTDESC pDesc)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoaderImpl,iface);
FIXME("(%p, %s, %ld, %p): stub\n", This, debugstr_guid(rguidClass), dwIndex, pDesc);
return S_OK;
}
ICOM_VTABLE(IDirectMusicLoader) DirectMusicLoader_Vtbl =
......@@ -145,7 +172,7 @@ HRESULT WINAPI IDirectMusicLoader8Impl_QueryInterface (LPDIRECTMUSICLOADER8 ifac
{
IDirectMusicLoader8Impl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -173,74 +200,109 @@ ULONG WINAPI IDirectMusicLoader8Impl_Release (LPDIRECTMUSICLOADER8 iface)
/* IDirectMusicLoader Interface part follow: */
HRESULT WINAPI IDirectMusicLoader8Impl_GetObject (LPDIRECTMUSICLOADER8 iface, LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID*ppv)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %p, %s, %p): stub\n", This, pDesc, debugstr_guid(riid), ppv);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_SetObject (LPDIRECTMUSICLOADER8 iface, LPDMUS_OBJECTDESC pDesc)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %p): stub\n", This, pDesc);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_SetSearchDirectory (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, WCHAR* pwzPath, BOOL fClear)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %s, %p, %d): stub\n", This, debugstr_guid(rguidClass), pwzPath, fClear);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_ScanDirectory (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, WCHAR* pwzFileExtension, WCHAR* pwzScanFileName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %s, %p, %p): stub\n", This, debugstr_guid(rguidClass), pwzFileExtension, pwzScanFileName);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_CacheObject (LPDIRECTMUSICLOADER8 iface, IDirectMusicObject* pObject)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %p): stub\n", This, pObject);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_ReleaseObject (LPDIRECTMUSICLOADER8 iface, IDirectMusicObject* pObject)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %p): stub\n", This, pObject);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_ClearCache (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %s): stub\n", This, debugstr_guid(rguidClass));
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_EnableCache (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, BOOL fEnable)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %s, %d): stub\n", This, debugstr_guid(rguidClass), fEnable);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_EnumObject (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClass, DWORD dwIndex, LPDMUS_OBJECTDESC pDesc)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %s, %ld, %p): stub\n", This, debugstr_guid(rguidClass), dwIndex, pDesc);
return S_OK;
}
/* IDirectMusicLoader8 Interface part follow: */
void WINAPI IDirectMusicLoader8Impl_CollectGarbage (LPDIRECTMUSICLOADER8 iface)
{
FIXME("stub\n");
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p): stub\n", This);
}
HRESULT WINAPI IDirectMusicLoader8Impl_ReleaseObjectByUnknown (LPDIRECTMUSICLOADER8 iface, IUnknown* pObject)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %p): stub\n", This, pObject);
return S_OK;
}
HRESULT WINAPI IDirectMusicLoader8Impl_LoadObjectFromFile (LPDIRECTMUSICLOADER8 iface, REFGUID rguidClassID, REFIID iidInterfaceID, WCHAR* pwzFilePath, void** ppObject)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicLoader8Impl,iface);
FIXME("(%p, %s, %s, %p, %p): stub\n", This, debugstr_guid(rguidClassID), debugstr_guid(iidInterfaceID), pwzFilePath, ppObject);
return S_OK;
}
ICOM_VTABLE(IDirectMusicLoader8) DirectMusicLoader8_Vtbl =
......@@ -296,7 +358,7 @@ HRESULT WINAPI IDirectMusicGetLoaderImpl_QueryInterface (LPDIRECTMUSICGETLOADER
{
IDirectMusicGetLoaderImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -324,8 +386,11 @@ ULONG WINAPI IDirectMusicGetLoaderImpl_Release (LPDIRECTMUSICGETLOADER iface)
/* IDirectMusicGetLoader Interface follow: */
HRESULT WINAPI IDirectMusicGetLoaderImpl_GetLoader (LPDIRECTMUSICGETLOADER iface, IDirectMusicLoader** ppLoader)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicGetLoaderImpl,iface);
FIXME("(%p, %p): stub\n", This, ppLoader);
return S_OK;
}
ICOM_VTABLE(IDirectMusicGetLoader) DirectMusicGetLoader_Vtbl =
......
......@@ -73,10 +73,10 @@ static HRESULT WINAPI DMCF_CreateInstance(LPCLASSFACTORY iface, LPUNKNOWN pOuter
{
return DMUSIC_CreateDirectMusicPerformance8 (riid, (LPDIRECTMUSICPERFORMANCE8*)ppobj, pOuter);
}
if (IsEqualGUID (&IID_IDirectMusicLoader8, riid))
/*if (IsEqualGUID (&IID_IDirectMusicLoader8, riid))
{
return DMUSIC_CreateDirectMusicLoader8 (riid, (LPDIRECTMUSICLOADER8*)ppobj, pOuter);
}
}*/
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......
......@@ -37,7 +37,7 @@ HRESULT WINAPI IDirectMusicPortImpl_QueryInterface (LPDIRECTMUSICPORT iface, REF
{
IDirectMusicPortImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -65,44 +65,65 @@ ULONG WINAPI IDirectMusicPortImpl_Release (LPDIRECTMUSICPORT iface)
/* IDirectMusicPort Interface follow: */
HRESULT WINAPI IDirectMusicPortImpl_PlayBuffer (LPDIRECTMUSICPORT iface, LPDIRECTMUSICBUFFER pBuffer)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p): stub\n", This, pBuffer);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_SetReadNotificationHandle (LPDIRECTMUSICPORT iface, HANDLE hEvent)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p): stub\n", This, hEvent);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_Read (LPDIRECTMUSICPORT iface, LPDIRECTMUSICBUFFER pBuffer)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p): stub\n", This, pBuffer);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_DownloadInstrument (LPDIRECTMUSICPORT iface, IDirectMusicInstrument* pInstrument, IDirectMusicDownloadedInstrument** ppDownloadedInstrument, DMUS_NOTERANGE* pNoteRanges, DWORD dwNumNoteRanges)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p, %p, %p, %ld): stub\n", This, pInstrument, ppDownloadedInstrument, pNoteRanges, dwNumNoteRanges);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_UnloadInstrument (LPDIRECTMUSICPORT iface, IDirectMusicDownloadedInstrument *pDownloadedInstrument)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p): stub\n", This, pDownloadedInstrument);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_GetLatencyClock (LPDIRECTMUSICPORT iface, IReferenceClock** ppClock)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p): stub\n", This, ppClock);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_GetRunningStats (LPDIRECTMUSICPORT iface, LPDMUS_SYNTHSTATS pStats)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p): stub\n", This, pStats);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_GetCaps (LPDIRECTMUSICPORT iface, LPDMUS_PORTCAPS pPortCaps)
......@@ -117,50 +138,84 @@ HRESULT WINAPI IDirectMusicPortImpl_GetCaps (LPDIRECTMUSICPORT iface, LPDMUS_POR
HRESULT WINAPI IDirectMusicPortImpl_DeviceIoControl (LPDIRECTMUSICPORT iface, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %ld, %p, %ld, %p, %ld, %p, %p): stub\n", This, dwIoControlCode, lpInBuffer, nInBufferSize, lpOutBuffer, nOutBufferSize, lpBytesReturned, lpOverlapped);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_SetNumChannelGroups (LPDIRECTMUSICPORT iface, DWORD dwChannelGroups)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %ld): semi-stub\n", This, dwChannelGroups);
This->nrofgroups = dwChannelGroups;
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_GetNumChannelGroups (LPDIRECTMUSICPORT iface, LPDWORD pdwChannelGroups)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
TRACE("(%p, %p)\n", This, pdwChannelGroups);
*pdwChannelGroups = This->nrofgroups;
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_Activate (LPDIRECTMUSICPORT iface, BOOL fActive)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
TRACE("(%p, %d)\n", This, fActive);
This->active = fActive;
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_SetChannelPriority (LPDIRECTMUSICPORT iface, DWORD dwChannelGroup, DWORD dwChannel, DWORD dwPriority)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %ld, %ld, %ld): semi-stub\n", This, dwChannelGroup, dwChannel, dwPriority);
if (dwChannel > 16)
{
WARN("isn't there supposed to be 16 channels (no. %ld requested)?! (faking as it is ok)\n", dwChannel);
/*return E_INVALIDARG;*/
}
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_GetChannelPriority (LPDIRECTMUSICPORT iface, DWORD dwChannelGroup, DWORD dwChannel, LPDWORD pdwPriority)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
TRACE("(%p, %ld, %ld, %p)\n", This, dwChannelGroup, dwChannel, pdwPriority);
*pdwPriority = This->group[dwChannelGroup-1].channel[dwChannel].priority;
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_SetDirectSound (LPDIRECTMUSICPORT iface, LPDIRECTSOUND pDirectSound, LPDIRECTSOUNDBUFFER pDirectSoundBuffer)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p, %p): stub\n", This, pDirectSound, pDirectSoundBuffer);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortImpl_GetFormat (LPDIRECTMUSICPORT iface, LPWAVEFORMATEX pWaveFormatEx, LPDWORD pdwWaveFormatExSize, LPDWORD pdwBufferSize)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortImpl,iface);
FIXME("(%p, %p, %p, %p): stub\n", This, pWaveFormatEx, pdwWaveFormatExSize, pdwBufferSize);
return S_OK;
}
ICOM_VTABLE(IDirectMusicPort) DirectMusicPort_Vtbl =
......@@ -197,7 +252,7 @@ HRESULT WINAPI IDirectMusicPortDownloadImpl_QueryInterface (LPDIRECTMUSICPORTDOW
{
IDirectMusicPortDownloadImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -225,38 +280,56 @@ ULONG WINAPI IDirectMusicPortDownloadImpl_Release (LPDIRECTMUSICPORTDOWNLOAD ifa
/* IDirectMusicPortDownload Interface follow: */
HRESULT WINAPI IDirectMusicPortDownloadImpl_GetBuffer (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD dwDLId, IDirectMusicDownload** ppIDMDownload)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwDLId, ppIDMDownload);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortDownloadImpl_AllocateBuffer (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD dwSize, IDirectMusicDownload** ppIDMDownload)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwSize, ppIDMDownload);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortDownloadImpl_GetDLId (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD* pdwStartDLId, DWORD dwCount)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
FIXME("(%p, %p, %ld): stub\n", This, pdwStartDLId, dwCount);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortDownloadImpl_GetAppend (LPDIRECTMUSICPORTDOWNLOAD iface, DWORD* pdwAppend)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
FIXME("(%p, %p): stub\n", This, pdwAppend);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortDownloadImpl_Download (LPDIRECTMUSICPORTDOWNLOAD iface, IDirectMusicDownload* pIDMDownload)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
FIXME("(%p, %p): stub\n", This, pIDMDownload);
return S_OK;
}
HRESULT WINAPI IDirectMusicPortDownloadImpl_Unload (LPDIRECTMUSICPORTDOWNLOAD iface, IDirectMusicDownload* pIDMDownload)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicPortDownloadImpl,iface);
FIXME("(%p, %p): stub\n", This, pIDMDownload);
return S_OK;
}
ICOM_VTABLE(IDirectMusicPortDownload) DirectMusicPortDownload_Vtbl =
......
......@@ -123,6 +123,36 @@ extern ICOM_VTABLE(IDirectMusicScript) DirectMusicScript_Vtbl;
extern ICOM_VTABLE(IDirectMusicContainer) DirectMusicContainer_Vtbl;
extern ICOM_VTABLE(IDirectMusicSong) DirectMusicSong_Vtbl;
/*****************************************************************************
* Some stuff to make my life easier :=)
*/
/* some sort of aux. performance channel: as far as i can understand, these are
used to represent a particular midi channel in particular group at particular
group; so all we need to do is to fill it with parent port, group and midi
channel ? */
typedef struct DMUSIC_PRIVATE_PCHANNEL_
{
DWORD channel; /* map to this channel... */
DWORD group; /* ... in this group ... */
IDirectMusicPort *port; /* ... at this port */
} DMUSIC_PRIVATE_PCHANNEL, *LPDMUSIC_PRIVATE_PCHANNEL;
/* some sort of aux. midi channel: big fake at the moment; accepts only priority
changes... more coming soon */
typedef struct DMUSIC_PRIVATE_MCHANNEL_
{
DWORD priority;
} DMUSIC_PRIVATE_MCHANNEL, *LPDMUSIC_PRIVATE_MCHANNEL;
/* some sort of aux. channel group: collection of 16 midi channels */
typedef struct DMUSIC_PRIVATE_CHANNEL_GROUP_
{
DMUSIC_PRIVATE_MCHANNEL channel[16]; /* 16 channels in a group */
} DMUSIC_PRIVATE_CHANNEL_GROUP, *LPDMUSIC_PRIVATE_CHANNEL_GROUP;
/*****************************************************************************
* IDirectMusicImpl implementation structure
*/
......@@ -165,6 +195,8 @@ struct IDirectMusic8Impl
DWORD ref;
/* IDirectMusic8Impl fields */
IDirectMusicPortImpl** ports;
int nrofports;
};
/* IUnknown: */
......@@ -224,6 +256,7 @@ struct IDirectMusicInstrumentImpl
DWORD ref;
/* IDirectMusicInstrumentImpl fields */
DWORD patch;
};
/* IUnknown: */
......@@ -329,6 +362,8 @@ struct IDirectMusicPortImpl
BOOL active;
LPDMUS_PORTCAPS caps;
LPDMUS_PORTPARAMS params;
int nrofgroups;
DMUSIC_PRIVATE_CHANNEL_GROUP group[1];
};
/* IUnknown: */
......@@ -641,6 +676,7 @@ struct IDirectMusicObjectImpl
DWORD ref;
/* IDirectMusicObjectImpl fields */
LPDMUS_OBJECTDESC desc;
};
/* IUnknown: */
......@@ -902,6 +938,15 @@ struct IDirectMusicPerformanceImpl
/* IDirectMusicPerformanceImpl fields */
IDirectMusicImpl *dmusic;
IDirectSound *dsound;
/* global parameters */
BOOL AutoDownload;
char MasterGrooveLevel;
float MasterTempo;
long MasterVolume;
/* performance channels */
DMUSIC_PRIVATE_PCHANNEL PChannel[1];
};
/* IUnknown: */
......@@ -963,6 +1008,8 @@ struct IDirectMusicPerformance8Impl
DWORD ref;
/* IDirectMusicPerformance8Impl fields */
IDirectMusicImpl *dmusic;
IDirectSound *dsound;
};
/* IUnknown: */
......
......@@ -37,7 +37,7 @@ HRESULT WINAPI IDirectMusicStyleImpl_QueryInterface (LPDIRECTMUSICSTYLE iface, R
{
IDirectMusicStyleImpl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -65,68 +65,101 @@ ULONG WINAPI IDirectMusicStyleImpl_Release (LPDIRECTMUSICSTYLE iface)
/* IDirectMusicStyle Interface follow: */
HRESULT WINAPI IDirectMusicStyleImpl_GetBand (LPDIRECTMUSICSTYLE iface, WCHAR* pwszName, IDirectMusicBand** ppBand)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %p, %p): stub\n", This, pwszName, ppBand);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_EnumBand (LPDIRECTMUSICSTYLE iface, DWORD dwIndex, WCHAR* pwszName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwIndex, pwszName);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_GetDefaultBand (LPDIRECTMUSICSTYLE iface, IDirectMusicBand** ppBand)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %p): stub\n", This, ppBand);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_EnumMotif (LPDIRECTMUSICSTYLE iface, DWORD dwIndex, WCHAR* pwszName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwIndex, pwszName);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_GetMotif (LPDIRECTMUSICSTYLE iface, WCHAR* pwszName, IDirectMusicSegment** ppSegment)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %p, %p): stub\n", This, pwszName, ppSegment);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_GetDefaultChordMap (LPDIRECTMUSICSTYLE iface, IDirectMusicChordMap** ppChordMap)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %p): stub\n", This, ppChordMap);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_EnumChordMap (LPDIRECTMUSICSTYLE iface, DWORD dwIndex, WCHAR* pwszName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwIndex, pwszName);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_GetChordMap (LPDIRECTMUSICSTYLE iface, WCHAR* pwszName, IDirectMusicChordMap** ppChordMap)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %p, %p): stub\n", This, pwszName, ppChordMap);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_GetTimeSignature (LPDIRECTMUSICSTYLE iface, DMUS_TIMESIGNATURE* pTimeSig)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %p): stub\n", This, pTimeSig);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_GetEmbellishmentLength (LPDIRECTMUSICSTYLE iface, DWORD dwType, DWORD dwLevel, DWORD* pdwMin, DWORD* pdwMax)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %ld, %ld, %p, %p): stub\n", This, dwType, dwLevel, pdwMin, pdwMax);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyleImpl_GetTempo (LPDIRECTMUSICSTYLE iface, double* pTempo)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyleImpl,iface);
FIXME("(%p, %p): stub\n", This, pTempo);
return S_OK;
}
ICOM_VTABLE(IDirectMusicStyle) DirectMusicStyle_Vtbl =
......@@ -158,7 +191,7 @@ HRESULT WINAPI IDirectMusicStyle8Impl_QueryInterface (LPDIRECTMUSICSTYLE8 iface,
{
IDirectMusicStyle8Impl_AddRef(iface);
*ppobj = This;
return DS_OK;
return S_OK;
}
WARN("(%p)->(%s,%p),not found\n",This,debugstr_guid(riid),ppobj);
return E_NOINTERFACE;
......@@ -186,75 +219,111 @@ ULONG WINAPI IDirectMusicStyle8Impl_Release (LPDIRECTMUSICSTYLE8 iface)
/* IDirectMusicStyle Interface part follow: */
HRESULT WINAPI IDirectMusicStyle8Impl_GetBand (LPDIRECTMUSICSTYLE8 iface, WCHAR* pwszName, IDirectMusicBand** ppBand)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %p, %p): stub\n", This, pwszName, ppBand);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_EnumBand (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, WCHAR* pwszName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwIndex, pwszName);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_GetDefaultBand (LPDIRECTMUSICSTYLE8 iface, IDirectMusicBand** ppBand)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %p): stub\n", This, ppBand);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_EnumMotif (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, WCHAR* pwszName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwIndex, pwszName);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_GetMotif (LPDIRECTMUSICSTYLE8 iface, WCHAR* pwszName, IDirectMusicSegment** ppSegment)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %p, %p): stub\n", This, pwszName, ppSegment);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_GetDefaultChordMap (LPDIRECTMUSICSTYLE8 iface, IDirectMusicChordMap** ppChordMap)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %p): stub\n", This, ppChordMap);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_EnumChordMap (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, WCHAR* pwszName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %ld, %p): stub\n", This, dwIndex, pwszName);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_GetChordMap (LPDIRECTMUSICSTYLE8 iface, WCHAR* pwszName, IDirectMusicChordMap** ppChordMap)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %p, %p): stub\n", This, pwszName, ppChordMap);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_GetTimeSignature (LPDIRECTMUSICSTYLE8 iface, DMUS_TIMESIGNATURE* pTimeSig)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %p): stub\n", This, pTimeSig);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_GetEmbellishmentLength (LPDIRECTMUSICSTYLE8 iface, DWORD dwType, DWORD dwLevel, DWORD* pdwMin, DWORD* pdwMax)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %ld, %ld, %p, %p): stub\n", This, dwType, dwLevel, pdwMin, pdwMax);
return S_OK;
}
HRESULT WINAPI IDirectMusicStyle8Impl_GetTempo (LPDIRECTMUSICSTYLE8 iface, double* pTempo)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %p): stub\n", This, pTempo);
return S_OK;
}
/* IDirectMusicStyle8 Interface part follow: */
HRESULT WINAPI IDirectMusicStyle8ImplEnumPattern (LPDIRECTMUSICSTYLE8 iface, DWORD dwIndex, DWORD dwPatternType, WCHAR* pwszName)
{
FIXME("stub\n");
return DS_OK;
ICOM_THIS(IDirectMusicStyle8Impl,iface);
FIXME("(%p, %ld, %ld, %p): stub\n", This, dwIndex, dwPatternType, pwszName);
return S_OK;
}
ICOM_VTABLE(IDirectMusicStyle8) DirectMusicStyle8_Vtbl =
......
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