Spaces:
Runtime error
Runtime error
// --------------------------------------------------------------------------------------- | |
// --------------------------------------------------------------------------------------- | |
namespace portaudio | |
{ | |
////// | |
/// @brief A RAII idiom class to ensure automatic clean-up when an exception is | |
/// raised. | |
/// | |
/// A simple helper class which uses the 'Resource Acquisition is Initialization' | |
/// idiom (RAII). Use this class to initialize/terminate the System rather than | |
/// using System directly. AutoSystem must be created on stack and must be valid | |
/// throughout the time you wish to use PortAudioCpp. Your 'main' function might be | |
/// a good place for it. | |
/// | |
/// To avoid having to type portaudio::System::instance().xyz() all the time, it's usually | |
/// a good idea to make a reference to the System which can be accessed directly. | |
/// @verbatim | |
/// portaudio::AutoSys autoSys; | |
/// portaudio::System &sys = portaudio::System::instance(); | |
/// @endverbatim | |
////// | |
class AutoSystem | |
{ | |
public: | |
AutoSystem(bool initialize = true) | |
{ | |
if (initialize) | |
System::initialize(); | |
} | |
~AutoSystem() | |
{ | |
if (System::exists()) | |
System::terminate(); | |
} | |
void initialize() | |
{ | |
System::initialize(); | |
} | |
void terminate() | |
{ | |
System::terminate(); | |
} | |
}; | |
} // namespace portaudio | |
// --------------------------------------------------------------------------------------- | |