Commit Graph

977 Commits

Author SHA1 Message Date
Chris Robinson
4ad28964de Be careful of integer overflows when allocating buffer storage 2010-05-24 17:08:12 -07:00
Chris Robinson
15ce7fb8f7 Cleanup some variables and names 2010-05-24 03:28:00 -07:00
Chris Robinson
80a22b6484 Reorder some error checks and watch for negative buffer sizes 2010-05-24 03:20:14 -07:00
Chris Robinson
8cfac7c6b8 Don't bother storing the loop points in the source 2010-05-24 01:07:13 -07:00
Chris Robinson
9ac6b4c2c8 Be big endian safe with the IMA4 decoder 2010-05-22 15:37:32 -07:00
Chris Robinson
861a933b7b Use the ALSOFT_LOGFILE env var to specify the output for AL_PRINT 2010-05-21 18:16:27 -07:00
Chris Robinson
58e5404d61 Loop points should be specified in sample offsets 2010-05-21 15:52:35 -07:00
Chris Robinson
3676fdc4db Add mono and stereo channel masks for DSound output 2010-05-21 14:12:09 -07:00
Chris Robinson
e7a555a953 Add an empty efx-creative.h header
This is for compatibility with projects that include it in Windows. Everything
from it is already defined in efx.h.
2010-05-21 11:21:35 -07:00
Chris Robinson
1e6ba29cd2 Consistency fix 2010-05-19 11:06:13 -07:00
Chris Robinson
c5c83882b3 Use unsigned types when finding the source offsets 2010-05-19 10:38:28 -07:00
Chris Robinson
ea3bc0518c A couple formatting fixes 2010-05-19 10:36:24 -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
ad5dfab428 Improve compatbility with latest AL_EXT_buffer_sub_data spec 2010-05-18 17:15:21 -07:00
Chris Robinson
85838c1d57 Define ARGSTACK and CALLSTACK only when needed for testing shared libs 2010-05-16 08:03:05 -07:00
Chris Robinson
4fbb3ccf66 Always look for winmm under Windows
It's needed for timeGetTime, even if the WinMM backend is disabled
2010-05-16 07:52:43 -07:00
Chris Robinson
7f533c6a25 Change inline -> __inline for MSVC 2010-05-16 06:02:27 -07:00
Chris Robinson
6dab9d54d1 Use the loop start when filling in padding data for looping sources 2010-05-13 06:52:44 -07:00
Chris Robinson
7ed5d12717 Pay attention to the source loop points 2010-05-13 04:53:21 -07:00
Chris Robinson
23b2c1f902 Only use a modulo to loop when the source is static 2010-05-13 02:12:50 -07:00
Chris Robinson
5d579dd1a8 Store loop points as uncompressed frame offsets in the source when a buffer is attached 2010-05-13 02:10:33 -07:00
Chris Robinson
0ce138341c Add initial structural support for AL_EXT_loop_points 2010-05-13 02:03:48 -07:00
Chris Robinson
61b682131e Reduce some indentation 2010-05-12 07:30:45 -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
e3a70e5021 Scale output of effects to compensate for device down-mixing 2010-05-12 04:56:03 -07:00
Chris Robinson
af4faaf666 Use a UIntMap for the effect slot list 2010-05-12 02:20:14 -07:00
Chris Robinson
f2548570b8 Store the buffer's original data size and block alignment 2010-05-12 01:36:09 -07:00
Chris Robinson
d678f1d88b Store looping locally when mixing a source 2010-05-12 00:38:04 -07:00
Chris Robinson
f0ce1bff3e Simplify and fix applying a source offset 2010-05-11 11:59:41 -07:00
Chris Robinson
ab3c23478d Use a separate function to convert compressed bytes to frames 2010-05-11 11:06:48 -07:00
Chris Robinson
4e65e9bfa9 Only a streaming source can have a processed buffer 2010-05-11 08:53:38 -07:00
Chris Robinson
053aeee5d3 Rename a variable 2010-05-11 07:09:44 -07:00
Chris Robinson
1652dc02ab Look for the map insertion point using a binary search 2010-05-10 11:40:57 -07:00
Chris Robinson
099c2f3593 Use a simple loop to set multi-channel dry gains 2010-05-09 22:06:10 -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
0760415d08 Use doubles instead of floats for the source offset calculations 2010-04-28 17:58:20 -07:00
Chris Robinson
5730ccaa39 Combine AL and ALC function lists 2010-04-28 15:07:38 -07:00
Chris Robinson
aaa7082aa8 Get the offset even if the current buffer is 0 2010-04-28 14:08:10 -07:00
Chris Robinson
5d7815beed Only apply ambient gain to available output channels 2010-04-27 11:39:54 -07:00
Chris Robinson
a0ee2ccce7 Add a couple missing values to the *GetEnumValue tables 2010-04-25 08:40:37 -07:00
Chris Robinson
110be7f500 Add an option to scale the output mix 2010-04-23 07:54:43 -07:00
Chris Robinson
52663e8a44 Combine two loops into one 2010-04-23 07:23:38 -07:00
Chris Robinson
8646647b3e Update stereodup config option comment 2010-04-22 05:22:20 -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
81dd71dd71 Stop and start the backend device only if new attributes are being requested 2010-04-17 00:50:28 -07:00
Chris Robinson
4d15391c88 Disable PulseAudio's write callback when disconnecting 2010-04-17 00:27:13 -07:00
Chris Robinson
fc2473f826 Translate the source position separately
This is to handle the case where an app specifies the same values for the
source and listener, and expects centered panning. This fails due to floating-
point errors in the matrix, causing the result to be ever-so-slightly off of 0.

This error would normally be hidden by the position normalization, which will
not lengthen a distance shorter than the reference distance so the panning
would be nearly imperceptible. But that also fails if the reference distance
is set to 0, causing the position to expand to a full unit.

Keep the 4x4 matrix calculations, however. It will still be useful for the
requested listener matrix extension.
2010-04-16 02:09:53 -07:00
Chris Robinson
000d848f0b Return immediately when no layout is specified 2010-04-11 23:03:36 -07:00