comparison src/portaudio/bindings/cpp/source/portaudiocpp/Exception.cxx @ 4:e13257ea84a4

Add bzip2, zlib, liblo, portaudio sources
author Chris Cannam
date Wed, 20 Mar 2013 13:59:52 +0000
parents
children
comparison
equal deleted inserted replaced
3:6c505a35919a 4:e13257ea84a4
1 #include "portaudiocpp/Exception.hxx"
2
3 namespace portaudio
4 {
5 // -----------------------------------------------------------------------------------
6 // PaException:
7 // -----------------------------------------------------------------------------------
8
9 //////
10 /// Wraps a PortAudio error into a PortAudioCpp PaException.
11 //////
12 PaException::PaException(PaError error) : error_(error)
13 {
14 }
15
16 // -----------------------------------------------------------------------------------
17
18 //////
19 /// Alias for paErrorText(), to have std::exception compliance.
20 //////
21 const char *PaException::what() const throw()
22 {
23 return paErrorText();
24 }
25
26 // -----------------------------------------------------------------------------------
27
28 //////
29 /// Returns the PortAudio error code (PaError).
30 //////
31 PaError PaException::paError() const
32 {
33 return error_;
34 }
35
36 //////
37 /// Returns the error as a (zero-terminated) text string.
38 //////
39 const char *PaException::paErrorText() const
40 {
41 return Pa_GetErrorText(error_);
42 }
43
44 //////
45 /// Returns true is the error is a HostApi error.
46 //////
47 bool PaException::isHostApiError() const
48 {
49 return (error_ == paUnanticipatedHostError);
50 }
51
52 //////
53 /// Returns the last HostApi error (which is the current one if
54 /// isHostApiError() returns true) as an error code.
55 //////
56 long PaException::lastHostApiError() const
57 {
58 return Pa_GetLastHostErrorInfo()->errorCode;
59 }
60
61 //////
62 /// Returns the last HostApi error (which is the current one if
63 /// isHostApiError() returns true) as a (zero-terminated) text
64 /// string, if it's available.
65 //////
66 const char *PaException::lastHostApiErrorText() const
67 {
68 return Pa_GetLastHostErrorInfo()->errorText;
69 }
70
71 // -----------------------------------------------------------------------------------
72
73 bool PaException::operator==(const PaException &rhs) const
74 {
75 return (error_ == rhs.error_);
76 }
77
78 bool PaException::operator!=(const PaException &rhs) const
79 {
80 return !(*this == rhs);
81 }
82
83 // -----------------------------------------------------------------------------------
84 // PaCppException:
85 // -----------------------------------------------------------------------------------
86
87 PaCppException::PaCppException(ExceptionSpecifier specifier) : specifier_(specifier)
88 {
89 }
90
91 const char *PaCppException::what() const throw()
92 {
93 switch (specifier_)
94 {
95 case UNABLE_TO_ADAPT_DEVICE:
96 {
97 return "Unable to adapt the given device to the specified host api specific device extension";
98 }
99 }
100
101 return "Unknown exception";
102 }
103
104 PaCppException::ExceptionSpecifier PaCppException::specifier() const
105 {
106 return specifier_;
107 }
108
109 bool PaCppException::operator==(const PaCppException &rhs) const
110 {
111 return (specifier_ == rhs.specifier_);
112 }
113
114 bool PaCppException::operator!=(const PaCppException &rhs) const
115 {
116 return !(*this == rhs);
117 }
118
119 // -----------------------------------------------------------------------------------
120
121 } // namespace portaudio
122
123