Chris Robinson
eef41e76d7
Don't clear the request flag if a new context doesn't specify a frequency
2011-05-06 01:50:19 -07:00
Chris Robinson
d583f7f307
Update sources automatically when device parameters change
2011-05-06 01:06:01 -07:00
Chris Robinson
f97eca34df
Minor source update fixes
2011-05-06 00:51:12 -07:00
Chris Robinson
1363e044ac
Remove the head_dampen option
...
Now that HRTF is properly supported, it's not needed
2011-05-06 00:38:10 -07:00
Chris Robinson
9967d4eadd
Mark a couple more pointers as restricted
2011-05-06 00:33:58 -07:00
Chris Robinson
2972de1047
Use function pointers to call the source mixer
2011-05-06 00:20:40 -07:00
Chris Robinson
0e824914b2
Use signed samples for 8-bit storage
2011-05-05 18:54:10 -07:00
Chris Robinson
7832a6d1d8
Add a warning when HRTF is disabled
2011-05-03 20:23:35 -07:00
Chris Robinson
0cce93a1f8
Fix WinMM backend compilation
2011-05-03 17:12:05 -07:00
Chris Robinson
679f2480c9
Add a device flag for channel config requests
2011-05-03 17:11:07 -07:00
Chris Robinson
db7ca2c7ca
Combine the mono and multi-channel mixer templates
2011-05-03 16:34:28 -07:00
Chris Robinson
e2850df07e
Use the same filters for mono sources and multi-channel
2011-05-03 16:18:46 -07:00
Chris Robinson
48def2fecb
Properly handle elevations that don't have angles up to 180
2011-05-03 03:15:28 -07:00
Chris Robinson
ba236ad108
Add a frequency-request device flag
2011-05-03 02:29:26 -07:00
Chris Robinson
9a28402b90
Fix non-spatialized mono sources
2011-05-02 18:33:32 -07:00
Chris Robinson
8c705cc4ea
Mark some mixer pointers as restricted
2011-05-02 17:14:57 -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
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
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
63f07db303
Add the SOFT moniker for the loopback extension functions and enums
2011-04-28 11:37:23 -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
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
2f7de9d696
Add alBufferSamplesSOFT, as an initial start to AL_SOFT_buffer_samples
2011-03-16 11:29:22 -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
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
208912ceac
Fix DSound floating-point sample assumptions
2011-03-12 22:52:33 -08:00
Chris Robinson
8249dc8559
Combine multiple lists into one
2011-03-12 20:37:22 -08:00
Chris Robinson
73123bc313
Add support for ALC_EXT_DEDICATED
2011-03-12 20:11:25 -08:00
Chris Robinson
66ee3bc217
Better protect the device for multi-threading access
2011-03-12 06:23:17 -08:00
Chris Robinson
031a2a1b1e
Implement a basic non-real-time loopback device
...
Currently it behaves just like a normal device except contexts are only
processed during calls to alcRenderSamples. Additionally, the ALC_SYNC and
ALC_REFRESH context attributes are not valid for these devices, and there are
two new context attributes to specify the rendering format: ALC_FORMAT_TYPE
and ALC_FORMAT_CHANNELS. These each take one of the type and channel enums
added.
This stuff is subject to change.
2011-03-11 00:13:44 -08:00
Chris Robinson
d9126eeb2c
Finalize the loop points extension as AL_SOFT_loop_points
2011-02-09 22:54:12 -08:00
Chris Robinson
fd64fea279
Use the correct winmm device ID type
2011-02-08 10:33:18 -08:00
Chris Robinson
13397feccf
Don't inline CalcLimitedHfRatio
2011-02-07 23:58:40 -08:00
Chris Robinson
57b05fb6d4
Add a missing enum value for PA_API_VERSION 11
2011-02-07 23:53:07 -08:00
Chris Robinson
41a2c25b5a
Include cguid.h for GUID_NULL
2011-02-07 22:46:54 -08:00