allow writing from RageProtocol

This commit is contained in:
Glenn Maynard
2004-10-18 02:54:15 +00:00
parent 5768cb8e5f
commit 7d108e97e8
@@ -503,8 +503,16 @@ int URLRageFile_open( avcodec::URLContext *h, const char *filename, int flags )
} }
filename += 7; filename += 7;
int mode = 0;
switch( flags )
{
case URL_RDONLY: mode = RageFile::READ; break;
case URL_WRONLY: mode = RageFile::WRITE | RageFile::STREAMED; break;
case URL_RDWR: FAIL_M( "O_RDWR unsupported" );
}
RageFile *f = new RageFile; RageFile *f = new RageFile;
if( !f->Open(filename) ) if( !f->Open(filename, mode) )
{ {
LOG->Trace("Error opening \"%s\": %s", filename, f->GetError().c_str() ); LOG->Trace("Error opening \"%s\": %s", filename, f->GetError().c_str() );
delete f; delete f;
@@ -522,6 +530,12 @@ int URLRageFile_read( avcodec::URLContext *h, unsigned char *buf, int size )
return f->Read( buf, size ); return f->Read( buf, size );
} }
int URLRageFile_write( avcodec::URLContext *h, unsigned char *buf, int size )
{
RageFile *f = (RageFile *) h->priv_data;
return f->Write( buf, size );
}
avcodec::offset_t URLRageFile_seek( avcodec::URLContext *h, avcodec::offset_t pos, int whence ) avcodec::offset_t URLRageFile_seek( avcodec::URLContext *h, avcodec::offset_t pos, int whence )
{ {
RageFile *f = (RageFile *) h->priv_data; RageFile *f = (RageFile *) h->priv_data;
@@ -540,7 +554,7 @@ static avcodec::URLProtocol RageProtocol =
"rage", "rage",
URLRageFile_open, URLRageFile_open,
URLRageFile_read, URLRageFile_read,
NULL, URLRageFile_write,
URLRageFile_seek, URLRageFile_seek,
URLRageFile_close, URLRageFile_close,
NULL NULL