/**************************************************************************** Generate sidechain from the atoms of the PDB (fills rotamer 0) *****************************************************************************/ int CreateSidechainFromPDB(struct atom_s *a, int nchains, int na, struct s_polymer *polymer, struct s_parms *parms, int iamax) { int **top,i,ic,ib; // get topology of bonded interactions top = AlloIntMatrix(na,na); CreateTopology(a,na,top,parms->tthresh,parms->debug); // matrix indexed on structure atom_s // add sidechains for(ic=0;ic<nchains;ic++) { ib = (polymer+ic)->nback; for(i=0;i<(polymer+ic)->nback;i++) { if (parms->debug>1) fprintf(stderr,"\tside of chain=%d back=%d atom=%d\n",ic,i,(((polymer+ic)->back)+i)->ia); if (i>0 && i<ib-1) // the reference system for the first sidechain (usually CB) is (i+1),(i-1),i FindSidechain(a,na,ic,i,(((polymer+ic)->back)+i)->ia,top,polymer,parms,(((polymer+ic)->back)+i+1)->ia, (((polymer+ic)->back)+i-1)->ia,(((polymer+ic)->back)+i)->ia); else if (i<ib-1) // for the first is (i+2),(i+1),i FindSidechain(a,na,ic,i,(((polymer+ic)->back)+i)->ia,top,polymer,parms,(((polymer+ic)->back)+i+2)->ia, (((polymer+ic)->back)+i+1)->ia,(((polymer+ic)->back)+i)->ia); else if (i==ib-1) // for the last is (nback-3),(nback-2),(nback-1) FindSidechain(a,na,ic,i,(((polymer+ic)->back)+i)->ia,top,polymer,parms,(((polymer+ic)->back)+ ib-3 )->ia, (((polymer+ic)->back)+ ib-2 )->ia, (((polymer+ic)->back)+ ib-1 )->ia); } } for (i=0;i<na;i++) free(*(top+i)); free(top); return na; }
std::vector<std::vector<double>> ReadMusicFrequencyData(const WCHAR *sURL) { //CComPtr<IMFByteStream> pStream; CComPtr<IMFMediaSink> pSink; CComPtr<IMFMediaSource> pSource; CComPtr<IMFTopology> pTopology; CComPtr<IWaveDataRecorder> waveRecord; HRESULT hr=0; hr=CWavRecord::CreateInstanse(&waveRecord); //hr = MFCreateFile(MF_ACCESSMODE_WRITE, MF_OPENMODE_DELETE_IF_EXIST, MF_FILEFLAGS_NONE, sOutputFile, &pStream); if (FAILED(hr)) { wprintf(L"MFCreateFile failed!\n"); } // Create the WavSink object. if (SUCCEEDED(hr)) { hr = CreateWavSink(NULL,waveRecord, &pSink); } // Create the media source from the URL. if (SUCCEEDED(hr)) { hr = CreateMediaSource(sURL, &pSource); } // Create the topology. if (SUCCEEDED(hr)) { hr = CreateTopology(pSource, pSink, &pTopology); } // Run the media session. if (SUCCEEDED(hr)) { hr = RunMediaSession(pTopology); if (FAILED(hr)) { wprintf(L"RunMediaSession failed!\n"); } } if (pSource) { pSource->Shutdown(); } std::vector<std::vector<double>> data; if(waveRecord) waveRecord->PullOutData(&data); return data; }
HRESULT CMFCamCapture::setupMfSession() { HRESULT hr = S_OK; IMFTopology *pTopology = NULL; // Create the topology. CHECK_HR(hr = CreateTopology(m_spSource, m_spSinkActivate, &pTopology)); CHECK_HR(hr = m_spSession->SetTopology(0, pTopology)); done: SafeRelease(&pTopology); return hr; }