diff options
author | Charlie Birks <admin@daftgames.net> | 2014-01-27 17:56:49 +0000 |
---|---|---|
committer | Charlie Birks <admin@daftgames.net> | 2014-01-27 17:56:49 +0000 |
commit | 9294c37f652f4ad9cfe0375b4eca79773b14a89f (patch) | |
tree | 6501d77e126afbc2278f3f4e7eb7f68b7b4cfa53 /src/library_openal.js | |
parent | ed809c55bb63f61149721f344dcd0e19d4fbdc7d (diff) |
improve alGetString
Diffstat (limited to 'src/library_openal.js')
-rw-r--r-- | src/library_openal.js | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/library_openal.js b/src/library_openal.js index 526b3f67..f41a5f96 100644 --- a/src/library_openal.js +++ b/src/library_openal.js @@ -5,6 +5,9 @@ var LibraryOpenAL = { $AL: { contexts: [], currentContext: null, + + stringCache: {}, + QUEUE_INTERVAL: 25, QUEUE_LOOKAHEAD: 100, @@ -1168,7 +1171,48 @@ var LibraryOpenAL = { }, alGetString: function(param) { - return allocate(intArrayFromString('NA'), 'i8', ALLOC_NORMAL); + if (AL.stringCache[param]) return AL.stringCache[param]; + var ret; + switch (param) + { + case 0 /* AL_NO_ERROR */: + ret = allocate(intArrayFromString('No Error'), 'i8', ALLOC_NORMAL); + break; + case 0xA001 /* AL_INVALID_NAME */: + ret = allocate(intArrayFromString('Invalid Name'), 'i8', ALLOC_NORMAL); + break; + case 0xA002 /* AL_INVALID_ENUM */: + ret = allocate(intArrayFromString('Invalid Enum'), 'i8', ALLOC_NORMAL); + break; + case 0xA003 /* AL_INVALID_VALUE */: + ret = allocate(intArrayFromString('Invalid Value'), 'i8', ALLOC_NORMAL); + break; + case 0xA004 /* AL_INVALID_OPERATION */: + ret = allocate(intArrayFromString('Invalid Operation'), 'i8', ALLOC_NORMAL); + break; + case 0xA005 /* AL_OUT_OF_MEMORY */: + ret = allocate(intArrayFromString('Out of Memory'), 'i8', ALLOC_NORMAL); + break; + case 0xB001 /* AL_VENDOR */: + ret = allocate(intArrayFromString('Emscripten'), 'i8', ALLOC_NORMAL); + break; + case 0xB002 /* AL_VERSION */: + ret = allocate(intArrayFromString('1.1'), 'i8', ALLOC_NORMAL); + break; + case 0xB003 /* AL_RENDERER */: + ret = allocate(intArrayFromString('WebAudio'), 'i8', ALLOC_NORMAL); + break; + case 0xB004 /* AL_EXTENSIONS */: + ret = allocate(intArrayFromString(''), 'i8', ALLOC_NORMAL); + break; + default: + AL.currentContext.err = 0xA002 /* AL_INVALID_ENUM */; + return 0; + } + + AL.stringCache[param] = ret; + + return ret; }, alGetProcAddress: function(fname) { |