Commit Graph

1304 Commits

Author SHA1 Message Date
Chris Robinson 24aaa24b5c Check for the C99 restrict keyword
GCC does not default to C99 mode yet, so does not know restrict, however it
still allows using __restrict in its place
2011-05-02 17:06:32 -07:00
Chris Robinson fd795a7eeb Add casts to silence some warnings 2011-05-02 15:04:35 -07:00
Chris Robinson abdc254e55 Use a pointer-to-arrays for the local HRTF coefficients 2011-05-02 13:35:13 -07:00
Chris Robinson f843b7e2e3 Implement HRTF mixers for multi-channel sources 2011-05-02 02:22:30 -07:00
Chris Robinson eea86ab891 Use flags instead of separate bools 2011-05-01 18:18:37 -07:00
Chris Robinson d7a452588c Document the hrtf config option 2011-05-01 14:16:05 -07:00
Chris Robinson 56d9418119 Add an HRTF filter for mono sources
The data is based on the KEMAR HRTF data provided by MIT, which can be found at
<http://sound.media.mit.edu/resources/KEMAR.html>. The compact measurements
were used. See hrtf_tables.inc for more information.

The filter is only available for stereo output, using a 44100hz playback rate.
Note also that it currently only applies to mono sounds, and the cf_level and
head_dampen config options are ignored while it is active.
2011-05-01 13:59:44 -07:00
Chris Robinson 0109104027 Add some source fields for HRTF data 2011-05-01 13:21:56 -07:00
Chris Robinson c9c965ef85 Add a device flag for enabling HRTF 2011-05-01 13:19:23 -07:00
Chris Robinson af3adf5244 Be silent if the PulseAudio context fails to connect while probing 2011-04-30 17:58:37 -07:00
Chris Robinson 43f97b4da1 Use the new format names when possible 2011-04-29 11:55:59 -07:00
Chris Robinson 63f07db303 Add the SOFT moniker for the loopback extension functions and enums 2011-04-28 11:37:23 -07:00
Chris Robinson 2e9ca89dd3 Reorder some cases 2011-04-27 21:05:46 -07:00
Chris Robinson 8586aeabe8 Minor fix for 24-bit conversions to float and double 2011-04-27 19:26:27 -07:00
Chris Robinson c031b4d5d0 Allow MSVC to build a static lib
Based on a patch by Michał Cichoń <michcic@gmail.com>
2011-04-27 16:33:44 -07:00
Chris Robinson d91b3464a4 Fix 24-bit sample loading for big-endian 2011-04-27 15:46:30 -07:00
Chris Robinson 650d94e1a6 Change some sample type values 2011-04-27 12:20:50 -07:00
Chris Robinson 543134a6d2 Add loopback device properties to the ALCenum list 2011-04-27 12:18:24 -07:00
Chris Robinson ab2626f9df Add a couple in-progress extensions to the extension lists 2011-04-27 12:15:16 -07:00
Chris Robinson d50f9249d6 Add support for packed 24-bit samples 2011-04-26 18:17:50 -07:00
Chris Robinson 10a9753183 Add a compatibility option to treat cone angles as half angles
All previous versions of the library treated the source cone angles as half
angles, which is contrary to the spec. Setting the __ALSOFT_HALF_ANGLE_CONES
environment variable to "true" or "1" restores the buggy behavior for
compatibility with applications that expect it.

This is not a config file option because new apps should not be made to depend
on the old behavior.
2011-04-22 23:17:27 -07:00
Chris Robinson 1e8718fe87 Convert full-width cone angle source properties to half-width
The spec intends the property values to be the full angle encompassed by the
cones, but the calculation interprets them as the angle from the center
point.
2011-04-22 22:59:58 -07:00
Chris Robinson 678d0b87d0 Apply the device matrix to the multi-channel source matrix
Mono sources and effects already output according to the available output
device channels. Multiplying the device matrix with the source matrix results
in a matrix that has the same effect as applying the source matrix followed by
the device matrix, so all the channel remixing can be done in one place.
2011-04-14 21:03:37 -07:00
Chris Robinson 319dfce300 Fix LFE channel output 2011-04-14 15:20:25 -07:00
Chris Robinson c3e86933d0 Only set relevant device matrix entries 2011-04-12 17:08:02 -07:00
Chris Robinson 936acf8c10 Allow the buffer_samples API to be retrieved 2011-04-10 09:48:37 -07:00
Chris Robinson 358d402cd0 Move Convert_IMA4 into the template declarations 2011-03-21 09:42:03 -07:00
Chris Robinson d11593eb5c Use nested loops when converting data 2011-03-19 12:40:14 -07:00
Chris Robinson 4bdedc7fde Use more appropriate enum values 2011-03-18 07:28:06 -07:00
Chris Robinson 9be625d6e8 Add some new format names 2011-03-17 08:42:25 -07:00
Chris Robinson 898b245bb2 Make LoadData return an error if the dst format is not valid or compatible 2011-03-16 19:39:31 -07:00
Chris Robinson be37f10fed Add alIsBufferFormatSupportedSOFT 2011-03-16 13:57:00 -07:00
Chris Robinson a87f651b4d Combine ConvertInput* and ConvertOutput* helpers
The UserFmt* enum types are a complete set of all recognized channel configs and
sample types, so casting Fmt* enum types to them is valid.
2011-03-16 13:32:57 -07:00
Chris Robinson 575195a283 Add alGetBufferSamplesSOFT 2011-03-16 12:56:39 -07:00
Chris Robinson 5621ee4239 Buffers made with alBufferSamplesSOFT always reference the internal format
This is not necessarily the same as the format of the originating data
2011-03-16 12:24:53 -07:00
Chris Robinson f5c4e67aef Add alBufferSubSamplesSOFT 2011-03-16 12:13:17 -07:00
Chris Robinson 2f7de9d696 Add alBufferSamplesSOFT, as an initial start to AL_SOFT_buffer_samples 2011-03-16 11:29:22 -07:00
Chris Robinson 9cee723e92 Pass the number of compressed frames to LoadData 2011-03-16 10:00:24 -07:00
Chris Robinson 4a1c0fedca Use the defines for the UserFmt* and Fmt* types 2011-03-16 05:47:07 -07:00
Chris Robinson b510958f9e NoErr should be noErr 2011-03-15 11:52:18 -07:00
Chris Robinson d6c8bb35b4 Add a CoreAudio backend
Code courtesy of Garin Hiebert <garinh@cheesetoast.net>
2011-03-15 04:58:56 -07:00
Chris Robinson 4899674b6c Move ALC_ENUMERATE_ALL_EXT enums to alc.h, to match other systems' headers 2011-03-14 09:04:41 -07:00
Chris Robinson 4eeed5376f Invert the device matrix row/column
It is accessed now as mat[target][source]
2011-03-13 08:46:54 -07:00
Chris Robinson 77ad538e68 Remove more unneeded casts 2011-03-13 07:11:09 -07:00
Chris Robinson b699aca65b Remove unnecessary casts 2011-03-13 06:34:41 -07:00
Chris Robinson ffd19fe961 Rename ConvertData* to ConvertInput* 2011-03-13 00:05:19 -08:00
Chris Robinson 208912ceac Fix DSound floating-point sample assumptions 2011-03-12 22:52:33 -08:00
Chris Robinson 89c253ce41 Recognize ALC_EXT_DEDICATED with openal-info 2011-03-12 21:28:40 -08:00
Chris Robinson b1d4508d90 Use a loop to make sure the requested effect is not disabled 2011-03-12 20:54:49 -08:00
Chris Robinson 8249dc8559 Combine multiple lists into one 2011-03-12 20:37:22 -08:00