unsigned RageSoundReader_Chain::ActivateSound( const sound &s ) { SoundReader *pSound = m_apLoadedSounds[s.sPath]; ActiveSound add; add.fPan = s.fPan; add.pSound = pSound->Copy(); m_apActiveSounds.push_back( add ); return m_apActiveSounds.size() - 1; }
bool test_file( const TestFile &tf, int filters ) { const char *fn = tf.fn; LOG->Trace("Testing: %s", fn ); CString error; SoundReader *s = SoundReader_FileReader::OpenFile( fn, error ); s = ApplyFilters( s, filters ); if( s == NULL ) { LOG->Trace( "File '%s' failed to open: %s", fn, error.c_str() ); return false; } //SoundReader *snd = s; SoundReader *snd = s->Copy(); delete s; bool ret = RunTests( snd, tf ); delete snd; /* Check SetPosition_Accurate consistency: * * Reopen the file from scratch, seek to 100ms, read some data, do some * operations that would result in the internal TOC being filled (seek * to the end), then re-read the data at 100ms and make sure it's the same. */ snd = SoundReader_FileReader::OpenFile( fn, error ); snd = ApplyFilters( snd, filters ); if( snd == NULL ) { LOG->Trace( "File '%s' failed to open: %s", fn, error.c_str() ); return false; } if( !CheckSetPositionAccurate( snd ) ) ret = false; delete snd; return ret; }