00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VRS_SOUND_ERROR_AL_H
00019 #define VRS_SOUND_ERROR_AL_H
00020
00021
00022
00023
00024 #include <vrs/openal/config.h>
00025
00026
00027
00028
00029 #include <string>
00030 #include <iostream>
00031
00032
00033 namespace VRS
00034 {
00035 namespace SOUND
00036 {
00037 static std::string GetALErrorString(ALenum err)
00038 {
00039 switch(err)
00040 {
00041 case AL_NO_ERROR:
00042 return std::string("AL_NO_ERROR");
00043 break;
00044
00045 case AL_INVALID_NAME:
00046 return std::string("AL_INVALID_NAME");
00047 break;
00048
00049 case AL_INVALID_ENUM:
00050 return std::string("AL_INVALID_ENUM");
00051 break;
00052
00053 case AL_INVALID_VALUE:
00054 return std::string("AL_INVALID_VALUE");
00055 break;
00056
00057 case AL_INVALID_OPERATION:
00058 return std::string("AL_INVALID_OPERATION");
00059 break;
00060
00061 case AL_OUT_OF_MEMORY:
00062 return std::string("AL_OUT_OF_MEMORY");
00063 break;
00064 };
00065
00066 return std::string("AL_UNKNOWN_ERROR");
00067 };
00068
00069 static inline void CheckALError(void)
00070 {
00071 ALenum error = alGetError();
00072 if(error != AL_NO_ERROR)
00073 {
00074 std::cerr << "OpenAL Error: " << GetALErrorString(error) << std::endl;
00075
00076 }
00077
00078 return;
00079 }
00080
00081
00082 static std::string GetALUTErrorString(ALenum err)
00083 {
00084 switch(err)
00085 {
00086 case ALUT_ERROR_NO_ERROR:
00087 return std::string("ALUT_ERROR_NO_ERROR");
00088 break;
00089
00090 case ALUT_ERROR_OUT_OF_MEMORY:
00091 return std::string("ALUT_ERROR_OUT_OF_MEMORY");
00092 break;
00093
00094 case ALUT_ERROR_INVALID_ENUM:
00095 return std::string("ALUT_ERROR_INVALID_ENUM");
00096 break;
00097
00098 case ALUT_ERROR_INVALID_VALUE:
00099 return std::string("ALUT_ERROR_INVALID_VALUE");
00100 break;
00101
00102 case ALUT_ERROR_INVALID_OPERATION:
00103 return std::string("ALUT_ERROR_INVALID_OPERATION");
00104 break;
00105
00106 case ALUT_ERROR_NO_CURRENT_CONTEXT:
00107 return std::string("ALUT_ERROR_NO_CURRENT_CONTEXT");
00108 break;
00109
00110 case ALUT_ERROR_AL_ERROR_ON_ENTRY:
00111 return std::string("ALUT_ERROR_AL_ERROR_ON_ENTRY");
00112 break;
00113
00114 case ALUT_ERROR_ALC_ERROR_ON_ENTRY:
00115 return std::string("ALUT_ERROR_ALC_ERROR_ON_ENTRY");
00116 break;
00117
00118 case ALUT_ERROR_OPEN_DEVICE:
00119 return std::string("ALUT_ERROR_OPEN_DEVICE");
00120 break;
00121
00122 case ALUT_ERROR_CLOSE_DEVICE:
00123 return std::string("ALUT_ERROR_CLOSE_DEVICE");
00124 break;
00125
00126 case ALUT_ERROR_CREATE_CONTEXT:
00127 return std::string("ALUT_ERROR_CREATE_CONTEXT");
00128 break;
00129
00130 case ALUT_ERROR_MAKE_CONTEXT_CURRENT:
00131 return std::string("ALUT_ERROR_MAKE_CONTEXT_CURRENT");
00132 break;
00133
00134
00135 case ALUT_ERROR_DESTROY_CONTEXT:
00136 return std::string("ALUT_ERROR_DESTROY_CONTEXT");
00137 break;
00138
00139 case ALUT_ERROR_GEN_BUFFERS:
00140 return std::string("ALUT_ERROR_GEN_BUFFERS");
00141 break;
00142
00143 case ALUT_ERROR_BUFFER_DATA:
00144 return std::string("ALUT_ERROR_BUFFER_DATA");
00145 break;
00146
00147 case ALUT_ERROR_IO_ERROR:
00148 return std::string("ALUT_ERROR_IO_ERROR");
00149 break;
00150
00151 case ALUT_ERROR_UNSUPPORTED_FILE_TYPE:
00152 return std::string("ALUT_ERROR_UNSUPPORTED_FILE_TYPE");
00153 break;
00154
00155 case ALUT_ERROR_UNSUPPORTED_FILE_SUBTYPE:
00156 return std::string("ALUT_ERROR_UNSUPPORTED_FILE_SUBTYPE");
00157 break;
00158
00159 case ALUT_ERROR_CORRUPT_OR_TRUNCATED_DATA:
00160 return std::string("ALUT_ERROR_CORRUPT_OR_TRUNCATED_DATA");
00161 break;
00162
00163 };
00164
00165 return std::string("ALUT_UNKNOWN_ERROR");
00166 };
00167
00168 static inline void CheckALUTError(void)
00169 {
00170 ALenum error = alutGetError();
00171 if(error != ALUT_ERROR_NO_ERROR)
00172 {
00173 std::cerr << "ALUT Error: " << GetALUTErrorString(error) << std::endl;
00174
00175 }
00176
00177 return;
00178 }
00179
00180 #if 0 // currently not used (caused a warning on gcc)
00181 static std::string GetALCErrorString(ALenum err)
00182 {
00183 switch(err)
00184 {
00185 case ALC_NO_ERROR:
00186 return std::string("AL_NO_ERROR");
00187 break;
00188
00189 case ALC_INVALID_DEVICE:
00190 return std::string("ALC_INVALID_DEVICE");
00191 break;
00192
00193 case ALC_INVALID_CONTEXT:
00194 return std::string("ALC_INVALID_CONTEXT");
00195 break;
00196
00197 case ALC_INVALID_ENUM:
00198 return std::string("ALC_INVALID_ENUM");
00199 break;
00200
00201 case ALC_INVALID_VALUE:
00202 return std::string("ALC_INVALID_VALUE");
00203 break;
00204
00205 case ALC_OUT_OF_MEMORY:
00206 return std::string("ALC_OUT_OF_MEMORY");
00207 break;
00208 };
00209
00210 return std::string("ALC_UNKNOWN_ERROR");
00211 }
00212 #endif
00213
00214 };
00215
00216 };
00217
00218 #endif //VRS_SOUND_ERROR_AL_H