MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ stop()

void MayaFlux::Core::AudioSubsystem::stop ( )
overridevirtual

Stop audio processing and streaming.

Implements MayaFlux::Core::ISubsystem.

Definition at line 219 of file AudioSubsystem.cpp.

220{
221 if (!m_is_running.load()) {
222 return;
223 }
224
226 "Stopping AudioSubsystem...");
227
228 m_is_running.store(false, std::memory_order_release);
229
230 if (m_audio_stream && m_audio_stream->is_running()) {
231 m_audio_stream->stop();
232 }
233
234 if (m_callback_active.load() > 0) {
235 MF_INFO(Journal::Component::Core, Journal::Context::AudioSubsystem, "Stopped while {} callback(s) active",
236 m_callback_active.load());
237 }
238
240 "AudioSubsystem stopped");
241}
#define MF_INFO(comp, ctx,...)
std::atomic< int > m_callback_active
Active callback counter.
std::atomic< bool > m_is_running
Subsystem running state.
std::unique_ptr< AudioStream > m_audio_stream
Audio stream manager.
@ AudioSubsystem
Audio subsystem operations (backend, device, stream management)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::AudioSubsystem, MayaFlux::Journal::Core, m_audio_stream, m_callback_active, m_is_running, and MF_INFO.

Referenced by shutdown().

+ Here is the caller graph for this function: