Mercurial > hg > sv-dependency-builds
view src/portaudio/bindings/cpp/include/portaudiocpp/AutoSystem.hxx @ 23:619f715526df sv_v2.1
Update Vamp plugin SDK to 2.5
author | Chris Cannam |
---|---|
date | Thu, 09 May 2013 10:52:46 +0100 |
parents | e13257ea84a4 |
children |
line wrap: on
line source
#ifndef INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX #define INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX // --------------------------------------------------------------------------------------- #include "portaudiocpp/System.hxx" // --------------------------------------------------------------------------------------- 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 // --------------------------------------------------------------------------------------- #endif // INCLUDED_PORTAUDIO_AUTOSYSTEM_HXX