 165b814f5d
			
		
	
	
		165b814f5d
		
	
	
	
	
		
			
			this is necessary in order to get Furnace to build using CMake 4.0. you should do: git submodule deinit extern/portaudio
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #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
 |