Files
kaizen/src/backend/core/mmio/Audio.hpp
2024-05-13 20:55:55 +02:00

31 lines
658 B
C++

#pragma once
#include <common.hpp>
#include <SDL2/SDL.h>
namespace n64 {
struct AudioDevice {
AudioDevice();
~AudioDevice() {
SDL_FreeAudioStream(audioStream);
SDL_DestroyMutex(audioStreamMutex);
}
void PushSample(float, float, float, float);
void AdjustSampleRate(int);
void LockMutex() {
SDL_LockMutex(audioStreamMutex);
}
void UnlockMutex() {
SDL_UnlockMutex(audioStreamMutex);
}
SDL_AudioStream* GetStream() { return audioStream; }
private:
SDL_AudioStream* audioStream = nullptr;
SDL_mutex* audioStreamMutex = nullptr;
SDL_AudioSpec audioSpec{};
SDL_AudioSpec request{};
SDL_AudioDeviceID handle{};
};
}