aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use specialized methods for converting ALshort to IMA4 and MSADPCMChris Robinson2014-03-051-2/+32
| | | | As before, to avoid unnecessary direct copies
* Use specialized methods for converting IMA4 and MSADPCM to ALshortChris Robinson2014-03-051-8/+39
| | | | | Since the decoder methods already convert to ALshort, there's no need to use a temp buffer that's just going to copy directly to the destination.
* Use maxi to clamp an int to a lower-boundChris Robinson2014-03-051-1/+1
|
* Expand the sign bit on the initial MSADPCM delta valueChris Robinson2014-03-051-0/+1
|
* Add an extension to support MSADPCM buffer formatsChris Robinson2014-03-045-28/+342
|
* Add an extension to alter the block alignment for buffer unpack/pack opsChris Robinson2014-03-044-19/+85
| | | | | | | | | | | | | | | | This is for unpacking (reading, e.g. alBufferData) and packing (writing, e.g. alGetBufferSamplesSOFT) operations. The alignments are specified in sample frames, with 0 meaning the default (65 for IMA4, 1 otherwise). IMA4 alignment must be a multiple of 8, plus 1 (e.g. alignment = n*8 + 1), otherwise an error will occur during (un)packing. Chenging the block alignment does not affect already-loaded sample data, only future unpack/pack operations... so for example, this is perfectly valid: // Load mono IMA4 data with a block alignment of 1024 bytes, or 2041 sample // frames. alBufferi(buffer, AL_UNPACK_BLOCK_ALIGNMENT_SOFT, 2041); alBufferData(buffer, AL_FORMAT_MONO_IMA4, data, data_len, srate); alBufferi(buffer, AL_UNPACK_BLOCK_ALIGNMENT_SOFT, 0);
* Parameterize the block alignmentChris Robinson2014-03-041-111/+152
|
* Use alloca for temp space decoding/encoding IMA4 blocksChris Robinson2014-03-033-4/+28
|
* Reduce explicit template declarations and ignore IMA4-to-IMA4 conversionsChris Robinson2014-03-031-159/+35
| | | | | | Since we never store IMA4 data in buffers, we should only ever convert from (user input) or to (user output) IMA4. Once we allow user-specified pack/unpack block alignment, this wouldn't be a simple memcpy anyway.
* Store the original frame size alignment in the bufferChris Robinson2014-03-033-12/+29
|
* Move PATH_MAX fallback definitions to alMain.hChris Robinson2014-02-275-31/+9
|
* Add back the missing PATH_MAX fallbackChris Robinson2014-02-271-0/+10
|
* Use OpenDataFile to load soundfonts relative to data directoriesChris Robinson2014-02-272-2/+8
|
* Add a note that absolute paths may be used for hrtf_tablesChris Robinson2014-02-271-0/+1
|
* Move OpenDataFile to helpers.c so other sources can use itChris Robinson2014-02-273-131/+134
|
* Add an explicit cast to make Windows happyChris Robinson2014-02-261-2/+2
|
* Don't fallback to relative filename handling if opening as absolute failsChris Robinson2014-02-261-26/+27
|
* Expand environment variables for all config option values when loadingChris Robinson2014-02-262-31/+77
|
* Support environment variables in the hrtf_tables config valueChris Robinson2014-02-251-4/+34
|
* Fix a config option commentChris Robinson2014-02-231-3/+2
|
* Attempt to restore the Neon-enhanced ApplyCoeffsStep methodChris Robinson2014-02-231-7/+21
| | | | Unable to test, but it hopefully works.
* Revert "Apply HRTF coefficient stepping separately"Chris Robinson2014-02-234-19/+74
| | | | | | | | | This reverts commit 25b9c3d0c15e959d544f5d0ac7ea507ea5f6d69f. Conflicts: Alc/mixer_neon.c Unfortunately this also undoes the Neon-enhanced ApplyCoeffsStep method.
* Move HRTF macros and function declarations to a separate headerChris Robinson2014-02-236-14/+32
|
* Move the default hrtf table to an external fileChris Robinson2014-02-236-884/+28
|
* Add a return value to FindHrtfFormatChris Robinson2014-02-233-8/+10
|
* Check the hrtf config option earlierChris Robinson2014-02-231-8/+8
| | | | | This is to make sure it tries to find an HRTF-compatible format before reseting the device, just like when using ALC_HRTF_SOFT.
* Avoid checking the hrtf config option twiceChris Robinson2014-02-231-2/+3
|
* Search system-dependant data paths for relative hrtf table filenamesChris Robinson2014-02-232-4/+133
|
* Avoid using a global static buffer for config loadingChris Robinson2014-02-231-3/+51
|
* Fix indentationChris Robinson2014-02-231-20/+20
|
* Fix a race condition in the mmdevapi message queue threadChris Robinson2014-02-091-0/+6
|
* Add some extra traces to the mmdevapi backendChris Robinson2014-02-091-0/+8
| | | | Trying to track down the cause of some reported errors.
* Change the autowah to have a cutoff range of 20Hz to 20KHzChris Robinson2014-02-071-1/+1
| | | | | | This is the same as allowed in the SF2 spec for its filter cutoff generator, which can be used for a wah effect in MIDI. It makes sense to use a similar range here.
* Fix some typesChris Robinson2014-02-072-4/+4
|
* Slightly shorten a long lineChris Robinson2014-02-021-1/+1
|
* Rework MIDI clock timingChris Robinson2014-02-024-123/+62
| | | | | | It's best to avoid using doubles in the mixer since the FPU's set to single- precision mode. The new clock timing is similar to the device clock timing, and should hopefully be less prone to drift caused by fp rounding errors.
* Use nanosecond resolution for MIDIChris Robinson2014-02-011-2/+2
| | | | | This makes the MIDI clock use the same resolution as the device clock and source latency and the device clock.
* Remove an unnecessary special-case for the click removalChris Robinson2014-02-011-14/+1
|
* Avoid duplicating code in alcGetIntegervChris Robinson2014-02-011-241/+152
|
* Add an alcGetInteger64vSOFT method and a way to get the device clockChris Robinson2014-02-012-2/+215
|
* Keep track of a device clock time, based on the number of samples processedChris Robinson2014-02-013-0/+39
|
* Properly fill the SF2 sample buffer on big endianChris Robinson2014-02-011-1/+1
|
* Fix an infinite loop when loading SF2 samples on big endian machinesChris Robinson2014-02-011-2/+5
|
* Implement dry and wet mixers for NeonChris Robinson2014-01-264-5/+91
| | | | Code provided by Philippe Simons <[email protected]>.
* bufferQueue's Clear method doesn't take any parametersChris Robinson2014-01-191-1/+1
|
* Clear the OpenSL buffer queue when stoppingChris Robinson2014-01-191-2/+15
|
* Check and trace INFO properties when reading themChris Robinson2014-01-191-3/+9
|
* Include sys/sysconf.h if available for sysconf()Chris Robinson2014-01-183-0/+7
|
* Check for 0-sized sf2 structure arraysChris Robinson2014-01-171-18/+18
|
* Remove redundancy in a couple error messagesChris Robinson2014-01-171-2/+2
|