add some app infrastructure services

This commit is contained in:
2026-06-07 15:49:43 -05:00
parent 1eb62ed186
commit 30b06e077c
10 changed files with 328 additions and 11 deletions

View File

@@ -5,12 +5,14 @@
#include <cmath>
#include <numbers>
AudioEngine::AudioEngine() {
AudioEngine::AudioEngine(LoggerService* logger) : logger_(logger) {
if(audioDevice_.getDeviceCount() < 1) {
std::cout << "No audio devices found" << std::endl;
}
if(logger_ == nullptr) std::cout << "err: logger nullptr" << std::endl;
}
AudioEngine::~AudioEngine() {
@@ -41,7 +43,8 @@ bool AudioEngine::start() {
}
// sanity check
std::cout << "sample rate: " << sampleRate_ << " buffer frames: " << bufferFrames_ << std::endl;
std::string msg = "sample rate: " + std::to_string(sampleRate_) + ", buffer frames: " + std::to_string(bufferFrames_);
logger_->log("AudioEngine", LogFlag::Info, msg);
return true;
}
@@ -58,7 +61,7 @@ bool AudioEngine::stop() {
int32_t AudioEngine::audioCallback(void* outputBuffer, void* inputBuffer, uint32_t nFrames, double, RtAudioStreamStatus status, void* userData) {
// error if the callback is late
if(status) std::cout << "stream underflow" << std::endl;
if(status) static_cast<AudioEngine*>(userData)->logger_->log("AudioEngine", LogFlag::Warning, "Audio buffer underflow");
return static_cast<AudioEngine*>(userData)->process(static_cast<float*>(outputBuffer), static_cast<size_t>(nFrames));