
extern "C"
{

//------------------------------------------------------------------------------------
// irr::io::IReadFile wrappers
// be sure to call the del function when done
//------------------------------------------------------------------------------------

void IrrIO_IReadFile_del(IReadFile* fread)
{
	if (fread)
		fread->drop();
}

const c8* IrrIO_IReadFile_getFileName(IReadFile* fread)
{
	if (fread)
		return fread->getFileName().c_str();
	else
		return "";
}

long IrrIO_IReadFile_getPos(IReadFile* fread)
{
	if (fread)
		return fread->getPos();
	else
		return -1;
}

long IrrIO_IReadFile_getSize(IReadFile* fread)
{
	if (fread)
		return fread->getSize();
	else
		return -1;
}

s32 IrrIO_IReadFile_read(IReadFile* fread,void* buffer, u32 sizeToRead)
{
	if (fread)
		return fread->read(buffer,sizeToRead);
	else
		return 0;
}

bool IrrIO_IReadFile_seek(IReadFile* fread,long finalPos,bool relativeMovement=false)
{
	if (fread)
		return fread->seek(finalPos,relativeMovement);
	else
		return false;
}

bool IrrIO_IReadFile_drop(IReadFile* unk)
{
	if (unk)
		return unk->drop();
	else return 0;
}

const c8* IrrIO_IReadFile_getDebugName(IReadFile* unk)
{
	if (unk)
		return unk->getDebugName();
	else return "";
}

void IrrIO_IReadFile_grab(IReadFile* unk)
{
	if (unk)
		unk->grab();
}

}


