reader fixes

This commit is contained in:
Glenn Maynard
2007-02-22 00:51:48 +00:00
parent 12af4ad131
commit 0ae8641ce7
3 changed files with 10 additions and 6 deletions
+5 -5
View File
@@ -87,12 +87,12 @@ RageSoundReader_FileReader *RageSoundReader_FileReader::TryOpenFile( RageFileBas
RageSoundReader_FileReader *RageSoundReader_FileReader::OpenFile( RString filename, RString &error, bool *pPrebuffer ) RageSoundReader_FileReader *RageSoundReader_FileReader::OpenFile( RString filename, RString &error, bool *pPrebuffer )
{ {
RageFileBasic *pFile = NULL; HiddenPtr<RageFileBasic> pFile;
{ {
RageFile *pFileOpen = new RageFile; RageFile *pFileOpen = new RageFile;
if( !pFileOpen->Open(filename) ) if( !pFileOpen->Open(filename) )
{ {
error = pFile->GetError(); error = pFileOpen->GetError();
delete pFileOpen; delete pFileOpen;
return NULL; return NULL;
} }
@@ -105,13 +105,13 @@ RageSoundReader_FileReader *RageSoundReader_FileReader::OpenFile( RString filena
{ {
RageFileObjMem *pMem = new RageFileObjMem; RageFileObjMem *pMem = new RageFileObjMem;
bool bRet = FileCopy( *pFile, *pMem, error, NULL ); bool bRet = FileCopy( *pFile, *pMem, error, NULL );
delete pFile;
pFile = pMem;
if( !bRet ) if( !bRet )
{ {
delete pFile; delete pMem;
return NULL; return NULL;
} }
pFile = pMem;
pFile->Seek( 0 ); pFile->Seek( 0 );
*pPrebuffer = true; *pPrebuffer = true;
} }
+2
View File
@@ -693,6 +693,8 @@ RageSoundReader_MP3 *RageSoundReader_MP3::Copy() const
{ {
RageSoundReader_MP3 *ret = new RageSoundReader_MP3; RageSoundReader_MP3 *ret = new RageSoundReader_MP3;
ret->m_pFile = m_pFile->Copy();
ret->m_pFile->Seek( 0 );
ret->m_bAccurateSync = m_bAccurateSync; ret->m_bAccurateSync = m_bAccurateSync;
ret->mad->filesize = mad->filesize; ret->mad->filesize = mad->filesize;
ret->mad->bitrate = mad->bitrate; ret->mad->bitrate = mad->bitrate;
+3 -1
View File
@@ -617,7 +617,9 @@ RageSoundReader_WAV::~RageSoundReader_WAV()
RageSoundReader_WAV *RageSoundReader_WAV::Copy() const RageSoundReader_WAV *RageSoundReader_WAV::Copy() const
{ {
RageSoundReader_WAV *ret = new RageSoundReader_WAV; RageSoundReader_WAV *ret = new RageSoundReader_WAV;
ret->Open( m_pFile->Copy() ); RageFileBasic *pFile = m_pFile->Copy();;
pFile->Seek( 0 );
ret->Open( pFile );
return ret; return ret;
} }