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

◆ shutdown()

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

Shutdown and cleanup audio resources.

Implements MayaFlux::Core::ISubsystem.

Definition at line 435 of file AudioSubsystem.cpp.

436{
437 stop();
438
439 if (m_audio_stream) {
440 m_audio_stream->close();
441 }
442 m_audio_stream.reset();
443 m_audio_device.reset();
444 m_audiobackend->cleanup();
445 m_audiobackend.reset();
446
448 .unregister_service<Registry::Service::AudioBackendService>();
449
451
452#ifdef MAYAFLUX_PLATFORM_MACOS
453 delete m_observers_ptr.exchange(nullptr, std::memory_order_acq_rel);
454#endif
455
456 m_is_ready = false;
457}
bool m_is_ready
Subsystem ready state.
void stop() override
Stop audio processing and streaming.
std::unique_ptr< IAudioBackend > m_audiobackend
Audio backend implementation.
std::shared_ptr< Registry::Service::AudioBackendService > m_audio_backend_service
std::unique_ptr< AudioDevice > m_audio_device
Audio device manager.
std::unique_ptr< AudioStream > m_audio_stream
Audio stream manager.
static BackendRegistry & instance()
Get the global registry instance.
void unregister_service()
Unregister a service.

References MayaFlux::Registry::BackendRegistry::instance(), m_audio_backend_service, m_audio_device, m_audio_stream, m_audiobackend, m_is_ready, stop(), and MayaFlux::Registry::BackendRegistry::unregister_service().

+ Here is the call graph for this function: