aboutsummaryrefslogtreecommitdiff
path: root/src/library_openal.js
diff options
context:
space:
mode:
authorCharlie Birks <admin@daftgames.net>2014-01-27 17:56:49 +0000
committerCharlie Birks <admin@daftgames.net>2014-01-27 17:56:49 +0000
commit9294c37f652f4ad9cfe0375b4eca79773b14a89f (patch)
tree6501d77e126afbc2278f3f4e7eb7f68b7b4cfa53 /src/library_openal.js
parented809c55bb63f61149721f344dcd0e19d4fbdc7d (diff)
improve alGetString
Diffstat (limited to 'src/library_openal.js')
-rw-r--r--src/library_openal.js46
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) {