mirror of
https://github.com/mupen64plus/mupen64plus-oldsvn.git
synced 2025-04-02 10:52:35 -04:00
44 lines
1 KiB
C
44 lines
1 KiB
C
#include "7zMain.h"
|
|
|
|
#ifdef _LZMA_IN_CB
|
|
|
|
#define kBufferSize (1 << 12)
|
|
Byte g_Buffer[kBufferSize];
|
|
|
|
SZ_RESULT SzFileReadImp(void *object, void **buffer, size_t maxRequiredSize, size_t *processedSize)
|
|
{
|
|
CFileInStream *s = (CFileInStream *)object;
|
|
size_t processedSizeLoc;
|
|
if (maxRequiredSize > kBufferSize)
|
|
maxRequiredSize = kBufferSize;
|
|
processedSizeLoc = fread(g_Buffer, 1, maxRequiredSize, s->File);
|
|
*buffer = g_Buffer;
|
|
if (processedSize != 0)
|
|
*processedSize = processedSizeLoc;
|
|
return SZ_OK;
|
|
}
|
|
|
|
#else
|
|
|
|
SZ_RESULT SzFileReadImp(void *object, void *buffer, size_t size, size_t *processedSize)
|
|
{
|
|
CFileInStream *s = (CFileInStream *)object;
|
|
size_t processedSizeLoc = fread(buffer, 1, size, s->File);
|
|
if (processedSize != 0)
|
|
*processedSize = processedSizeLoc;
|
|
return SZ_OK;
|
|
}
|
|
|
|
#endif
|
|
|
|
SZ_RESULT SzFileSeekImp(void *object, CFileSize pos)
|
|
{
|
|
CFileInStream *s = (CFileInStream *)object;
|
|
|
|
int res = fseek(s->File, (long)pos, SEEK_SET);
|
|
if (res == 0)
|
|
return SZ_OK;
|
|
return SZE_FAIL;
|
|
}
|
|
|
|
|