Game Development Reference
In-Depth Information
switch (origin)
{
case SEEK_SET:
{
ogg_int64_t actualOffset;
actualOffset = (pVorbisData->dataSize >= offset) ?
offset : pVorbisData->dataSize;
pVorbisData->dataRead = static_cast<size_t>(actualOffset);
break;
}
case SEEK_CUR:
{
size_t spaceToEOF =
pVorbisData->dataSize - pVorbisData->dataRead;
ogg_int64_t actualOffset;
actualOffset = (offset < spaceToEOF) ? offset : spaceToEOF;
pVorbisData->dataRead += static_cast<LONG>(actualOffset);
break;
}
case SEEK_END:
pVorbisData->dataRead = pVorbisData->dataSize+1;
break;
default:
assert(false &&
Bad parameter for
'
origin
'
, requires same as fseek.
);
break;
};
return 0;
}
int VorbisClose(void *src)
{
// Do nothing - we assume someone else is managing the raw buffer
return 0;
}
long VorbisTell(void *data_src)
{
OggMemoryFile *pVorbisData = static_cast<OggMemoryFile *>(data_src);
if (NULL == pVorbisData)
Search WWH ::




Custom Search