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
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
63f07db303
Add the SOFT moniker for the loopback extension functions and enums
2011-04-28 11:37:23 -07:00
Chris Robinson
650d94e1a6
Change some sample type values
2011-04-27 12:20:50 -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
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
be37f10fed
Add alIsBufferFormatSupportedSOFT
2011-03-16 13:57:00 -07:00
Chris Robinson
575195a283
Add alGetBufferSamplesSOFT
2011-03-16 12:56:39 -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
4a1c0fedca
Use the defines for the UserFmt* and Fmt* types
2011-03-16 05:47:07 -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
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
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
9ffb38d6be
Prevent unused variable warnings when monotonic clock isn't available
2011-02-08 00:22:22 -08:00
Chris Robinson
88e3a22772
Separate device format into 'channel config' and 'sample type' components
2010-12-04 19:50:00 -08:00
Chris Robinson
0bf7716332
Remove incomplete EXT_buffer_sub_data, as it's (temporarily) superceded by SOFT_buffer_sub_data
...
The EXT version can come back when other implementations take an interest
2010-12-02 01:46:43 -08:00
Chris Robinson
30b3f68ddf
Make a function static
2010-12-02 01:05:29 -08:00
Chris Robinson
75552f2765
Remove unused macro
2010-12-01 23:21:18 -08:00
Chris Robinson
9e8fb89a52
Rename OUTPUTCHANNELS to something more descriptive
2010-12-01 18:33:17 -08:00
Chris Robinson
da4f5c6f96
Uninline some functions
...
Also add -Winline to the compiler command line to watch for future inline problems
2010-11-28 19:52:17 -08:00
Chris Robinson
a7b4e0b5c5
Get rid of the device timer stuff
2010-11-21 06:32:59 -08:00
Chris Robinson
e9d5e53dbe
Use ALfloat for the dry mix buffer
2010-09-23 17:44:02 -07:00
Chris Robinson
e5cae87502
Handle clicks by watching changes between updates
2010-08-16 14:53:21 -07:00
Chris Robinson
b65bc45236
Add a corrective, click-remval sample value offset
...
This will hopefully be more effective and rebust at removing clicks and pops,
particularly from starts and stops in the middle of a sound. Based on an idea
by Ben Davis.
2010-08-14 21:30:14 -07:00
Chris Robinson
f1f2941511
Add experimental device attributes for apps to query
...
These will be part of the ALC_EXT_device_time extension. Behavior, values,
etc, are all subject to change.
2010-07-30 20:23:55 -07:00
Chris Robinson
46d46c49a8
Store the time precision with the device
2010-07-25 12:54:50 -07:00
Chris Robinson
40dd1fb853
Add a backend callback to get the device time
...
The method should monotonically count the number of nanoseconds the device has
active contexts
2010-07-24 19:14:32 -07:00
Chris Robinson
7eb124d99c
Keep count of the number of samples played
2010-07-22 08:11:44 -07:00
Chris Robinson
34a0c998cd
Use CLOCK_MONOTONIC when available
2010-07-18 06:21:16 -07:00
Chris Robinson
7f6df7695c
Use an array of active sources when mixing
...
Prevents iterating over all allocated sources during mixing updates
2010-06-06 00:17:50 -07:00
Chris Robinson
43dadcd9e4
Use a UIntMap for the Databuffers
2010-06-03 19:35:08 -07:00
Chris Robinson
880902fecc
Add a Null Output device
...
This device will mix and fully process contexts as normal
2010-05-28 16:41:52 -07:00
Chris Robinson
2d46a1001e
Use a map for the filter list
2010-05-18 17:54:45 -07:00
Chris Robinson
4edd7fe647
Use a map for the effects list
2010-05-18 17:41:06 -07:00
Chris Robinson
7f533c6a25
Change inline -> __inline for MSVC
2010-05-16 06:02:27 -07:00
Chris Robinson
a53e3dda75
Don't needlessly expose a variable for the backends
2010-05-12 07:27:12 -07:00
Chris Robinson
2220c22c90
Move incomplete extension declarations to alMain.h
2010-05-12 06:59:47 -07:00
Chris Robinson
af4faaf666
Use a UIntMap for the effect slot list
2010-05-12 02:20:14 -07:00
Chris Robinson
0378422fcb
Use a map to store sources and buffers
...
And do a lookup using a binary search instead of linear
2010-05-01 19:59:41 -07:00
Chris Robinson
5d7815beed
Only apply ambient gain to available output channels
2010-04-27 11:39:54 -07:00
Chris Robinson
a04dac670e
Make stereo duplication a property of the device
...
Further, don't use it with mono/stereo output
2010-04-20 03:57:40 -07:00
Chris Robinson
aace50ebf4
Store the panning LUT in the device
2010-04-08 15:58:11 -07:00
Chris Robinson
37c93a6ad8
Always mix internally at 8.1
...
The channels are remixed when writing to the output buffer. Stereo duplication
is currently broken, but this can be restored later
2010-04-08 14:47:12 -07:00