mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-08 01:56:10 -05:00
124 lines
3.0 KiB
C++
124 lines
3.0 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
|
||
|
|
||
|
|