diff --git a/include/SparkyStudios/Audio/Amplitude/Core/Memory.h b/include/SparkyStudios/Audio/Amplitude/Core/Memory.h index 493b938..8dcfcb1 100644 --- a/include/SparkyStudios/Audio/Amplitude/Core/Memory.h +++ b/include/SparkyStudios/Audio/Amplitude/Core/Memory.h @@ -325,7 +325,7 @@ namespace SparkyStudios::Audio::Amplitude * * @ingroup memory */ - class MemoryAllocator + class AM_API_PUBLIC MemoryAllocator { public: /** diff --git a/src/Core/Codec.cpp b/src/Core/Codec.cpp index 29a11a9..5022d87 100644 --- a/src/Core/Codec.cpp +++ b/src/Core/Codec.cpp @@ -78,7 +78,7 @@ namespace SparkyStudios::Audio::Amplitude void Codec::Register(Codec* codec) { - if (lockCodecs()) + if (lockCodecs() || codec == nullptr) return; if (Find(codec->GetName()) != nullptr) @@ -94,7 +94,7 @@ namespace SparkyStudios::Audio::Amplitude void Codec::Unregister(const Codec* codec) { - if (lockCodecs()) + if (lockCodecs() || codec == nullptr) return; CodecRegistry& codecs = codecRegistry(); diff --git a/src/Core/Driver.cpp b/src/Core/Driver.cpp index 56c2d8a..d202594 100644 --- a/src/Core/Driver.cpp +++ b/src/Core/Driver.cpp @@ -64,7 +64,7 @@ namespace SparkyStudios::Audio::Amplitude void Driver::Register(Driver* driver) { - if (lockDrivers()) + if (lockDrivers() || driver == nullptr) return; if (Find(driver->GetName()) != nullptr) @@ -80,7 +80,7 @@ namespace SparkyStudios::Audio::Amplitude void Driver::Unregister(const Driver* driver) { - if (lockDrivers()) + if (lockDrivers() || driver == nullptr) return; DriverRegistry& drivers = driverRegistry(); diff --git a/src/Core/Memory.cpp b/src/Core/Memory.cpp index 5d3d145..6d5a605 100644 --- a/src/Core/Memory.cpp +++ b/src/Core/Memory.cpp @@ -118,7 +118,7 @@ namespace SparkyStudios::Audio::Amplitude void MemoryManager::Initialize(std::unique_ptr allocator) { - if (gMemManager == nullptr) + if (!IsInitialized()) gMemManager = new MemoryManager(std::move(allocator)); #if !defined(AM_NO_MEMORY_STATS) diff --git a/src/DSP/Filter.cpp b/src/DSP/Filter.cpp index b900a8f..c417e51 100644 --- a/src/DSP/Filter.cpp +++ b/src/DSP/Filter.cpp @@ -79,22 +79,22 @@ namespace SparkyStudios::Audio::Amplitude return m_name; } - void Filter::Register(Filter* codec) + void Filter::Register(Filter* filter) { - if (lockFilters()) + if (lockFilters() || filter == nullptr) return; - if (Find(codec->GetName()) != nullptr) + if (Find(filter->GetName()) != nullptr) return; FilterRegistry& filters = filterRegistry(); - filters.insert(FilterImpl(codec->GetName(), codec)); + filters.insert(FilterImpl(filter->GetName(), filter)); filtersCount()++; } void Filter::Unregister(const Filter* filter) { - if (lockFilters()) + if (lockFilters() || filter == nullptr) return; FilterRegistry& filters = filterRegistry(); diff --git a/src/DSP/Resampler.cpp b/src/DSP/Resampler.cpp index c3ed260..970675e 100644 --- a/src/DSP/Resampler.cpp +++ b/src/DSP/Resampler.cpp @@ -63,7 +63,7 @@ namespace SparkyStudios::Audio::Amplitude void Resampler::Register(Resampler* resampler) { - if (lockResamplers()) + if (lockResamplers() || resampler == nullptr) return; if (Find(resampler->GetName()) != nullptr) @@ -79,7 +79,7 @@ namespace SparkyStudios::Audio::Amplitude void Resampler::Unregister(const Resampler* resampler) { - if (lockResamplers()) + if (lockResamplers() || resampler == nullptr) return; ResamplerRegistry& resamplers = resamplerRegistry(); diff --git a/src/Mixer/Node.cpp b/src/Mixer/Node.cpp index 25f1cc7..f8263a0 100644 --- a/src/Mixer/Node.cpp +++ b/src/Mixer/Node.cpp @@ -290,7 +290,7 @@ namespace SparkyStudios::Audio::Amplitude void Node::Register(Node* node) { - if (lockNodes()) + if (lockNodes() || node == nullptr) return; if (Find(node->GetName()) != nullptr) @@ -306,7 +306,7 @@ namespace SparkyStudios::Audio::Amplitude void Node::Unregister(const Node* node) { - if (lockNodes()) + if (lockNodes() || node == nullptr) return; NodeRegistry& nodes = nodeRegistry(); diff --git a/src/Sound/Fader.cpp b/src/Sound/Fader.cpp index 25e6b12..fd72056 100644 --- a/src/Sound/Fader.cpp +++ b/src/Sound/Fader.cpp @@ -249,7 +249,7 @@ namespace SparkyStudios::Audio::Amplitude void Fader::Register(Fader* fader) { - if (lockFaders()) + if (lockFaders() || fader == nullptr) return; if (Find(fader->GetName()) != nullptr) @@ -265,7 +265,7 @@ namespace SparkyStudios::Audio::Amplitude void Fader::Unregister(const Fader* fader) { - if (lockFaders()) + if (lockFaders() || fader == nullptr) return; FaderRegistry& faders = faderRegistry(); diff --git a/tests/main.cpp b/tests/main.cpp index 97489ae..77661e7 100644 --- a/tests/main.cpp +++ b/tests/main.cpp @@ -57,6 +57,7 @@ struct AmTestListener : Catch::EventListenerBase // Register all the default plugins shipped with the engine Engine::RegisterDefaultPlugins(); + Driver::Unregister(Driver::Find("miniaudio")); const auto sdkPath = std::filesystem::path(std::getenv("AM_SDK_PATH")); diff --git a/tests/thread.cpp b/tests/thread.cpp index be45f6d..18944c1 100644 --- a/tests/thread.cpp +++ b/tests/thread.cpp @@ -175,7 +175,7 @@ TEST_CASE("Thread Pool Tests", "[thread][amplitude]") auto task = std::make_shared(threadId); REQUIRE_FALSE(task->IsExecuted()); - bool willExecuteWorkInCallerThread = pool.GetTaskCount() >= AM_MAX_THREAD_POOL_TASKS; + bool willExecuteWorkInCallerThread = pool.GetTaskCount() > AM_MAX_THREAD_POOL_TASKS; pool.AddTask(task);