#ifndef AVFSPFM_H
#define AVFSPFM_H
static const char avfsFormatterName[] = "AVFS";
static const char avisynthFileTypeTag[] = "avisynth";
struct AvfsLog_
{
virtual void Print(const wchar_t* data) = 0;
virtual void Vprintf(const wchar_t* format,va_list args) = 0;
virtual void Printf(const wchar_t* format,...) = 0;
virtual void Line(const wchar_t* data) = 0;
};
struct AvfsMediaFile_
{
virtual void AddRef(void) = 0;
virtual void Release(void) = 0;
virtual bool ReadMedia(AvfsLog_* log,uint64_t fileOffset,void* buffer,size_t requestedSize) = 0;
};
struct AvfsVolume_
{
virtual const wchar_t* GetScriptFileName(void) = 0;
virtual const wchar_t* GetScriptEndName(void) = 0;
virtual const wchar_t* GetMediaName(void) = 0;
virtual const char* GetScriptData(void) = 0;
virtual size_t GetScriptDataSize(void) = 0;
virtual void CreateMediaFile(
AvfsMediaFile_* mediaFile,
const wchar_t* endName,
uint64_t fileSize) = 0;
};
void AvfsProcessScript(AvfsLog_* log,AvfsVolume_* volume);
void VsfsProcessScript(AvfsLog_* log, AvfsVolume_* volume);
#endif