 165b814f5d
			
		
	
	
		165b814f5d
		
	
	
	
	
		
			
			this is necessary in order to get Furnace to build using CMake 4.0. you should do: git submodule deinit extern/portaudio
		
			
				
	
	
		
			122 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| #include "portaudiocpp/Exception.hxx"
 | |
| 
 | |
| namespace portaudio
 | |
| {
 | |
|     // -----------------------------------------------------------------------------------
 | |
|     // PaException:
 | |
|     // -----------------------------------------------------------------------------------
 | |
| 
 | |
|     //////
 | |
|     ///  Wraps a PortAudio error into a PortAudioCpp PaException.
 | |
|     //////
 | |
|     PaException::PaException(PaError error) : error_(error)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     // -----------------------------------------------------------------------------------
 | |
| 
 | |
|     //////
 | |
|     /// Alias for paErrorText(), to have std::exception compliance.
 | |
|     //////
 | |
|     const char *PaException::what() const throw()
 | |
|     {
 | |
|         return paErrorText();
 | |
|     }
 | |
| 
 | |
|     // -----------------------------------------------------------------------------------
 | |
| 
 | |
|     //////
 | |
|     /// Returns the PortAudio error code (PaError).
 | |
|     //////
 | |
|     PaError PaException::paError() const
 | |
|     {
 | |
|         return error_;
 | |
|     }
 | |
| 
 | |
|     //////
 | |
|     /// Returns the error as a (zero-terminated) text string.
 | |
|     //////
 | |
|     const char *PaException::paErrorText() const
 | |
|     {
 | |
|         return Pa_GetErrorText(error_);
 | |
|     }
 | |
| 
 | |
|     //////
 | |
|     /// Returns true is the error is a HostApi error.
 | |
|     //////
 | |
|     bool PaException::isHostApiError() const
 | |
|     {
 | |
|         return (error_ == paUnanticipatedHostError);
 | |
|     }
 | |
| 
 | |
|     //////
 | |
|     /// Returns the last HostApi error (which is the current one if
 | |
|     /// isHostApiError() returns true) as an error code.
 | |
|     //////
 | |
|     long PaException::lastHostApiError() const
 | |
|     {
 | |
|         return Pa_GetLastHostErrorInfo()->errorCode;
 | |
|     }
 | |
| 
 | |
|     //////
 | |
|     /// Returns the last HostApi error (which is the current one if
 | |
|     /// isHostApiError() returns true) as a (zero-terminated) text
 | |
|     /// string, if it's available.
 | |
|     //////
 | |
|     const char *PaException::lastHostApiErrorText() const
 | |
|     {
 | |
|         return Pa_GetLastHostErrorInfo()->errorText;
 | |
|     }
 | |
| 
 | |
|     // -----------------------------------------------------------------------------------
 | |
| 
 | |
|     bool PaException::operator==(const PaException &rhs) const
 | |
|     {
 | |
|         return (error_ == rhs.error_);
 | |
|     }
 | |
| 
 | |
|     bool PaException::operator!=(const PaException &rhs) const
 | |
|     {
 | |
|         return !(*this == rhs);
 | |
|     }
 | |
| 
 | |
|     // -----------------------------------------------------------------------------------
 | |
|     // PaCppException:
 | |
|     // -----------------------------------------------------------------------------------
 | |
| 
 | |
|     PaCppException::PaCppException(ExceptionSpecifier specifier) : specifier_(specifier)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     const char *PaCppException::what() const throw()
 | |
|     {
 | |
|         switch (specifier_)
 | |
|         {
 | |
|             case UNABLE_TO_ADAPT_DEVICE:
 | |
|             {
 | |
|                 return "Unable to adapt the given device to the specified host api specific device extension";
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         return "Unknown exception";
 | |
|     }
 | |
| 
 | |
|     PaCppException::ExceptionSpecifier PaCppException::specifier() const
 | |
|     {
 | |
|         return specifier_;
 | |
|     }
 | |
| 
 | |
|     bool PaCppException::operator==(const PaCppException &rhs) const
 | |
|     {
 | |
|         return (specifier_ == rhs.specifier_);
 | |
|     }
 | |
| 
 | |
|     bool PaCppException::operator!=(const PaCppException &rhs) const
 | |
|     {
 | |
|         return !(*this == rhs);
 | |
|     }
 | |
| 
 | |
|     // -----------------------------------------------------------------------------------
 | |
| 
 | |
| } // namespace portaudio
 |