static ULONG WINAPI SynthPortImpl_IDirectMusicPortDownload_Release(LPDIRECTMUSICPORTDOWNLOAD iface) { SynthPortImpl *This = impl_from_SynthPortImpl_IDirectMusicPortDownload(iface); TRACE("(%p/%p)->()\n", iface, This); return IDirectMusicPort_Release(&This->IDirectMusicPort_iface); }
static ULONG WINAPI SynthPortImpl_IDirectMusicThru_Release(LPDIRECTMUSICTHRU iface) { SynthPortImpl *This = impl_from_SynthPortImpl_IDirectMusicThru(iface); TRACE("(%p/%p)->()\n", iface, This); return IDirectMusicPort_Release(&This->IDirectMusicPort_iface); }
static HRESULT WINAPI IDirectMusicPerformance8Impl_RemovePort(IDirectMusicPerformance8 *iface, IDirectMusicPort *pPort) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); FIXME("(%p, %p): stub\n", This, pPort); IDirectMusicPort_Release (pPort); return S_OK; }
static void test_PChannelInfo(void) { IDirectMusicPort *pDirectMusicPort; HRESULT hr; pDirectMusicPort = NULL; hr = IDirectMusicPerformance8_PChannelInfo(idmusicperformance, 0, &pDirectMusicPort, NULL, NULL); ok(hr == S_OK, "Failed to call PChannelInfo (%x)\n", hr); ok(pDirectMusicPort != NULL, "IDirectMusicPort not set\n"); if (hr == S_OK && pDirectMusicPort != NULL) IDirectMusicPort_Release(pDirectMusicPort); }
static HRESULT WINAPI IDirectMusicPerformance8Impl_AddPort(IDirectMusicPerformance8 *iface, IDirectMusicPort *pPort) { IDirectMusicPerformance8Impl *This = impl_from_IDirectMusicPerformance8(iface); HRESULT hr = E_FAIL; FIXME("(%p, %p): stub\n", This, pPort); if (!This->pDirectMusic || !This->pDirectSound) return DMUS_E_NOT_INIT; if (NULL == pPort) { GUID port_guid; IDirectMusicPort* pDefaultPort = NULL; DMUS_PORTPARAMS params; int i, j; hr = IDirectMusic8_GetDefaultPort(This->pDirectMusic, &port_guid); if (FAILED(hr)) return hr; ZeroMemory(¶ms, sizeof(params)); params.dwSize = sizeof(params); params.dwValidParams = DMUS_PORTPARAMS_CHANNELGROUPS | DMUS_PORTPARAMS_SHARE; params.dwChannelGroups = 1; params.fShare = TRUE; hr = IDirectMusic8_CreatePort(This->pDirectMusic, &port_guid, ¶ms, &pDefaultPort, NULL); if (FAILED(hr)) return hr; hr = IDirectMusicPort_Activate(pDefaultPort, TRUE); if (FAILED(hr)) { IDirectMusicPort_Release(pDefaultPort); return hr; } j = 0; for (i = 0; i < 16; ++i) { if (NULL == This->PChannel[i].port) { This->PChannel[i].port = pPort; This->PChannel[i].group = 0; This->PChannel[i].channel = j; /* FIXME: should this be assigned? */ j++; } } } else { IDirectMusicPort_AddRef(pPort); } /** * We should remember added Ports (for example using a list) * and control if Port is registered for each api who use ports */ return S_OK; }
static HRESULT WINAPI IDirectMusicPerformance8Impl_RemovePort (LPDIRECTMUSICPERFORMANCE8 iface, IDirectMusicPort* pPort) { IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface; FIXME("(%p, %p): stub\n", This, pPort); IDirectMusicPort_Release (pPort); return S_OK; }
static ULONG WINAPI SynthPortImpl_IKsControl_Release(IKsControl* iface) { SynthPortImpl *This = impl_from_SynthPortImpl_IKsControl(iface); return IDirectMusicPort_Release(&This->IDirectMusicPort_iface); }