Add CSND::ExecuteCommands

This commit is contained in:
wheremyfoodat 2023-09-10 23:00:26 +03:00
parent 8ac22e35e9
commit 46cf049e3b
5 changed files with 44 additions and 2 deletions

View file

@ -15,15 +15,22 @@ class CSNDService {
Kernel& kernel;
MAKE_LOG_FUNCTION(log, csndLogger)
bool initialized = false;
u8* sharedMemory = nullptr;
std::optional<Handle> csndMutex = std::nullopt;
size_t sharedMemSize = 0;
bool initialized = false;
// Service functions
void acquireSoundChannels(u32 messagePointer);
void executeCommands(u32 messagePointer);
void initialize(u32 messagePointer);
public:
CSNDService(Memory& mem, Kernel& kernel) : mem(mem), kernel(kernel) {}
void reset();
void handleSyncRequest(u32 messagePointer);
void setSharedMemory(u8* ptr) {
sharedMemory = ptr;
}
};

View file

@ -103,6 +103,7 @@ class ServiceManager {
void sendGPUInterrupt(GPUInterrupt type) { gsp_gpu.requestInterrupt(type); }
void setGSPSharedMem(u8* ptr) { gsp_gpu.setSharedMem(ptr); }
void setHIDSharedMem(u8* ptr) { hid.setSharedMem(ptr); }
void setCSNDSharedMem(u8* ptr) { csnd.setSharedMemory(ptr); }
void signalDSPEvents() { dsp.signalEvents(); }