#pragma once struct CellSpurs; // libCelp8Enc = 0x806140a1 - 0x806140bf // typedef void* CellCelp8EncHandle; // Return Codes enum CellCelp8EncError : u32 { CELL_CELP8ENC_ERROR_FAILED = 0x806140a1, CELL_CELP8ENC_ERROR_SEQ = 0x806140a2, CELL_CELP8ENC_ERROR_ARG = 0x806140a3, CELL_CELP8ENC_ERROR_CORE_FAILED = 0x806140b1, CELL_CELP8ENC_ERROR_CORE_SEQ = 0x806140b2, CELL_CELP8ENC_ERROR_CORE_ARG = 0x806140b3, }; // Definitions enum CELL_CELP8ENC_MPE_CONFIG { CELL_CELP8ENC_MPE_CONFIG_0 = 0, CELL_CELP8ENC_MPE_CONFIG_2 = 2, CELL_CELP8ENC_MPE_CONFIG_6 = 6, CELL_CELP8ENC_MPE_CONFIG_9 = 9, CELL_CELP8ENC_MPE_CONFIG_12 = 12, CELL_CELP8ENC_MPE_CONFIG_15 = 15, CELL_CELP8ENC_MPE_CONFIG_18 = 18, CELL_CELP8ENC_MPE_CONFIG_21 = 21, CELL_CELP8ENC_MPE_CONFIG_24 = 24, CELL_CELP8ENC_MPE_CONFIG_26 = 26, }; enum CELL_CELP8ENC_SAMPEL_RATE { CELL_CELP8ENC_FS_8kHz = 1, }; enum CELL_CELP8ENC_EXCITATION_MODE { CELL_CELP8ENC_EXCITATION_MODE_MPE = 0, }; enum CELL_CELP8ENC_WORD_SZ { CELL_CELP8ENC_WORD_SZ_FLOAT, }; struct CellCelp8EncAttr { be_t workMemSize; be_t celpEncVerUpper; be_t celpEncVerLower; }; struct CellCelp8EncResource { be_t totalMemSize; vm::bptr startAddr; be_t ppuThreadPriority; be_t spuThreadPriority; be_t ppuThreadStackSize; }; struct CellCelp8EncParam { be_t excitationMode; be_t sampleRate; be_t configuration; be_t wordSize; vm::bptr outBuff; be_t outSize; }; struct CellCelp8EncAuInfo { vm::bptr startAddr; be_t size; }; struct CellCelp8EncPcmInfo { vm::bptr startAddr; be_t size; }; struct CellCelp8EncResourceEx { be_t totalMemSize; vm::bptr startAddr; vm::bptr spurs; u8 priority[8]; be_t maxContention; };