#pragma once struct CellSpurs; // libCelpEnc = 0x80614001 - 0x806140ff // typedef void* CellCelpEncHandle; // Return Codes enum CellCelpEncError : u32 { CELL_CELPENC_ERROR_FAILED = 0x80614001, CELL_CELPENC_ERROR_SEQ = 0x80614002, CELL_CELPENC_ERROR_ARG = 0x80614003, CELL_CELPENC_ERROR_CORE_FAILED = 0x80614081, CELL_CELPENC_ERROR_CORE_SEQ = 0x80614082, CELL_CELPENC_ERROR_CORE_ARG = 0x80614083, }; // Definitions enum CELL_CELPENC_RPE_CONFIG { CELL_CELPENC_RPE_CONFIG_0, CELL_CELPENC_RPE_CONFIG_1, CELL_CELPENC_RPE_CONFIG_2, CELL_CELPENC_RPE_CONFIG_3, }; enum CELL_CELPENC_SAMPEL_RATE { CELL_CELPENC_FS_16kHz = 2, }; enum CELL_CELPENC_EXCITATION_MODE { CELL_CELPENC_EXCITATION_MODE_RPE = 1, }; enum CELL_CELPENC_WORD_SZ { CELL_CELPENC_WORD_SZ_INT16_LE, CELL_CELPENC_WORD_SZ_FLOAT }; struct CellCelpEncAttr { be_t workMemSize; be_t celpEncVerUpper; be_t celpEncVerLower; }; struct CellCelpEncResource { be_t totalMemSize; vm::bptr startAddr; be_t ppuThreadPriority; be_t spuThreadPriority; be_t ppuThreadStackSize; }; struct CellCelpEncParam { be_t excitationMode; be_t sampleRate; be_t configuration; be_t wordSize; vm::bptr outBuff; be_t outSize; }; struct CellCelpEncAuInfo { vm::bptr startAddr; be_t size; }; struct CellCelpEncPcmInfo { vm::bptr startAddr; be_t size; }; struct CellCelpEncResourceEx { be_t totalMemSize; vm::bptr startAddr; vm::bptr spurs; u8 priority[8]; be_t maxContention; };