/* * alGetString( ALenum param ) * * Returns readable string representation of param, or NULL if no string * representation is available. */ const ALubyte *alGetString( ALenum param ) { AL_context *cc; static ALubyte extensions[4096]; /* * First, we check to see if the param corresponds to an * error, in which case we return the value from _alGetErrorString. */ if(_alIsError(param) == AL_TRUE) { return _alGetErrorString(param); } /* * Next, we check to see if the param corresponds to an alc * error, in which case we return the value from _alcGetErrorString. */ if( alcIsError( param ) == AL_TRUE ) { return _alcGetErrorString( param ); } switch(param) { case AL_VENDOR: return (const ALubyte *) "J. Valenzuela"; break; case AL_VERSION: return (const ALubyte *) LAL_VERSION; break; case AL_RENDERER: return (const ALubyte *) "Software"; break; case AL_EXTENSIONS: _alGetExtensionStrings( extensions, sizeof( extensions ) ); return extensions; break; case 0xfeedabee: return (const ALubyte *) "Mark 12:31"; break; default: break; } cc = _alcDCGetContext(); if( cc == NULL ) { /* no current context, set error and return */ _alcSetError( ALC_INVALID_CONTEXT ); return NULL; } else { _alDCSetError( AL_ILLEGAL_ENUM ); } return NULL; }
const ALchar* alGetString( ALenum param ) { const ALchar *value; static ALchar extensions[1024]; /* TODO: Ugly and not thread-safe! */ AL_context *cc = _alcDCGetContext(); if( cc == NULL ) { _alDCSetError( AL_INVALID_OPERATION ); return NULL; } _alcDCLockContext(); switch (param) { case AL_VERSION: value = "1.1"; break; case AL_RENDERER: value = "OpenAL Sample Implementation"; break; case AL_VENDOR: value = "OpenAL Community"; break; case AL_EXTENSIONS: _alGetExtensionStrings( extensions, sizeof( extensions ) ); value = extensions; break; case AL_NO_ERROR: value = "No Error"; break; case AL_INVALID_NAME: value = "Invalid Name"; break; case AL_INVALID_ENUM: value = "Invalid Enum"; break; case AL_INVALID_VALUE: value = "Invalid Value"; break; case AL_INVALID_OPERATION: value = "Invalid Operation"; break; case AL_OUT_OF_MEMORY: value = "Out of Memory"; break; default: value = NULL; _alDCSetError( AL_INVALID_ENUM ); break; } _alcDCUnlockContext(); return value; }