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

◆ get_instance()

static RtAudio * MayaFlux::Core::RtAudioSingleton::get_instance ( )
inlinestatic

Provides access to the RtAudio instance with lazy initialization.

Returns
Pointer to the singleton RtAudio instance

Thread-safe accessor that creates the RtAudio instance on first access and returns the existing instance on subsequent calls. The returned pointer remains valid until cleanup() is called.

Definition at line 57 of file RtAudioSingleton.hpp.

58 {
59 std::lock_guard<std::mutex> lock(s_mutex);
60 if (!s_instance) {
61 if (s_preferred_api.has_value()) {
62 s_instance = std::make_unique<RtAudio>(*s_preferred_api);
63 } else {
64 s_instance = std::make_unique<RtAudio>();
65 }
66 }
67 return s_instance.get();
68 }
static std::optional< RtAudio::Api > s_preferred_api
Preferred RtAudio API, if specified.
static std::unique_ptr< RtAudio > s_instance
Singleton instance of the RtAudio driver (nullptr until first access)
static std::mutex s_mutex
Synchronization primitive for thread-safe access to the singleton.

References s_instance, s_mutex, and s_preferred_api.