This commit is contained in:
Glenn Maynard
2003-12-04 08:25:59 +00:00
parent 78c96b7cad
commit ea0ba6fcb9
9 changed files with 761 additions and 81 deletions
+65
View File
@@ -0,0 +1,65 @@
#include "global.h"
#include "RageFileDriver.h"
void RageFileObj::SetError( const CString &err )
{
parent.SetError( err );
}
int RageFileObj::Seek( int offset )
{
const int OldPos = parent.Tell();
if( offset < OldPos )
parent.Rewind();
else
offset -= OldPos;
char buf[256];
while( offset )
{
/* Must call parent.Read: */
int got = parent.Read( buf, min( (int) sizeof(buf), offset ) );
if( got == -1 )
return -1;
if( got == 0 )
break;
offset -= got;
}
return parent.Tell();
}
int RageFileObj::SeekCur( int offset )
{
return Seek( parent.Tell() + offset );
}
int RageFileObj::GetFileSize()
{
int OldPos = parent.Tell();
parent.Rewind();
char buf[256];
int ret = 0;
while( 1 )
{
/* Must call parent.Read: */
int got = parent.Read( buf, sizeof(buf) );
if( got == -1 )
{
ret = -1;
break;
}
if( got == 0 )
break;
ret += got;
}
Seek( OldPos );
return ret;
}
/*
* Copyright (c) 2003 by the person(s) listed below. All rights reserved.
* Glenn Maynard
*/