diff options
author | Charlie Birks <admin@daftgames.net> | 2014-01-28 11:30:38 +0000 |
---|---|---|
committer | Charlie Birks <admin@daftgames.net> | 2014-01-28 11:30:38 +0000 |
commit | 894165f66739cc2880f26d61a6be9279c511cb10 (patch) | |
tree | 3ac6d00b441bcf1d4a12991223f49f48ddd33e08 /src/library_openal.js | |
parent | af0b0dcd8b0742bef5d7726ef3b181a8022afc59 (diff) |
add alGetBufferi
Diffstat (limited to 'src/library_openal.js')
-rw-r--r-- | src/library_openal.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/library_openal.js b/src/library_openal.js index 5aa5b14a..ac49fe95 100644 --- a/src/library_openal.js +++ b/src/library_openal.js @@ -743,6 +743,7 @@ var LibraryOpenAL = { } try { AL.currentContext.buf[buffer - 1] = AL.currentContext.ctx.createBuffer(channels, size / (bytes * channels), freq); + AL.currentContext.buf[buffer - 1].bytesPerSample = bytes; } catch (e) { AL.currentContext.err = 0xA003 /* AL_INVALID_VALUE */; return; @@ -767,6 +768,41 @@ var LibraryOpenAL = { } }, + alGetBufferi: function(buffer, param, value) + { + if (!AL.currentContext) { +#if OPENAL_DEBUG + console.error("alGetBufferi called without a valid context"); +#endif + return; + } + var buf = AL.currentContext.buf[buffer - 1]; + if (!buf) { +#if OPENAL_DEBUG + console.error("alGetBufferi called with an invalid buffer"); +#endif + AL.currentContext.err = 0xA001 /* AL_INVALID_NAME */; + return; + } + switch (param) { + case 0x2001 /* AL_FREQUENCY */: + {{{ makeSetValue('value', '0', 'buf.sampleRate', 'i32') }}}; + break; + case 0x2002 /* AL_BITS */: + {{{ makeSetValue('value', '0', 'buf.bytesPerSample * 8', 'i32') }}}; + break; + case 0x2003 /* AL_CHANNELS */: + {{{ makeSetValue('value', '0', 'buf.numberOfChannels', 'i32') }}}; + break; + case 0x2004 /* AL_SIZE */: + {{{ makeSetValue('value', '0', 'buf.length * buf.bytesPerSample * buf.numberOfChannels', 'i32') }}}; + break; + default: + AL.currentContext.err = 0xA002 /* AL_INVALID_ENUM */; + break; + } + }, + alSourcePlay__deps: ['setSourceState'], alSourcePlay: function(source) { if (!AL.currentContext) { |