#pragma once #include #include "Core/HLE/AtracCtx.h" class Atrac2 : public AtracBase { public: void DoState(PointerWrap &p) override; void WriteContextToPSPMem() override; int Analyze(u32 addr, u32 size) override; int AnalyzeAA3(u32 addr, u32 size, u32 filesize) override; int CurrentSample() const override { return currentSample_; } int RemainingFrames() const override; void GetStreamDataInfo(u32 *writePtr, u32 *writableBytes, u32 *readOffset) override; int AddStreamData(u32 bytesToAdd) override; u32 AddStreamDataSas(u32 bufPtr, u32 bytesToAdd) override; u32 ResetPlayPosition(int sample, int bytesWrittenFirstBuf, int bytesWrittenSecondBuf) override; void GetResetBufferInfo(AtracResetBufferInfo *bufferInfo, int sample) override; int SetData(u32 buffer, u32 readSize, u32 bufferSize, int outputChannels, int successCode) override; u32 SetSecondBuffer(u32 secondBuffer, u32 secondBufferSize) override; u32 SecondBufferSize() const override; u32 DecodeData(u8 *outbuf, u32 outbufPtr, u32 *SamplesNum, u32 *finish, int *remains) override; u32 GetNextSamples() override; void InitLowLevel(u32 paramsAddr, bool jointStereo) override; private: int currentSample_ = 0; };