Chris Robinson
eb489ac886
Store double formats as float
...
The mixer will cut it down to float anyway, so it's unnecessary and needlessly
creates more mixer functions
2010-11-28 23:07:57 -08:00
Chris Robinson
0e748d98d5
Rename some stuff for consistency
2010-11-28 13:08:51 -08:00
Chris Robinson
c41e893361
Don't store the internal format in the buffer
...
The type and channel config are good enough
2010-11-28 12:53:35 -08:00
Chris Robinson
2fd8d6916b
Support rear formats directly in the mixer
2010-11-27 22:55:20 -08:00
Chris Robinson
2a123a4760
Support 64-bit double buffers directly
2010-11-27 00:32:53 -08:00
Chris Robinson
6abb9d151e
Use enums when selecting the mixer
2010-11-26 23:42:30 -08:00
Chris Robinson
16c05d2c05
Avoid some more code duplication
2010-11-26 20:22:14 -08:00
Chris Robinson
facb922f3e
Properly clamp high pitch values
2010-11-26 17:47:43 -08:00
Chris Robinson
d7987677ac
Subtract the fractional position separately
2010-11-26 15:51:13 -08:00
Chris Robinson
5fbbfa482f
Rename some variables to be clearer
2010-11-26 12:59:45 -08:00
Chris Robinson
7287b5cd3c
Make the buffer padding size dependent on the resampler
2010-11-26 02:53:15 -08:00
Chris Robinson
d647ed60e8
Convert a few divisions to multiplications
2010-11-26 01:35:40 -08:00
Chris Robinson
1cb29ece08
Make a FRACTIONONE macro, and use it
2010-11-26 01:21:46 -08:00
Chris Robinson
de8b7fbc5f
Share the interpolation functions and use them in the reverb effect
2010-11-26 01:07:54 -08:00
Chris Robinson
3d1eb7dcad
Add a missing break statement
2010-11-25 23:13:50 -08:00
Chris Robinson
30820c1bde
Add a cubic resampler
2010-11-25 23:05:44 -08:00
Chris Robinson
46b9802902
Force the point resampler when the source plays at normal speed
2010-11-25 22:15:38 -08:00
Chris Robinson
b6fb28de1a
Pass a pointer to the samplers so they can read just the samples they need
2010-11-25 22:04:17 -08:00
Chris Robinson
17fc4ba5e3
Add "pre-padding" to the temp buffer
...
This will help to implement resamplers that want previous samples
2010-11-25 21:42:15 -08:00
Chris Robinson
f72c735f9e
Make sure the target buffer size is frame aligned
2010-11-25 14:23:03 -08:00
Chris Robinson
9b23fc5db8
Minor rework of the template macros
2010-11-25 14:07:52 -08:00
Chris Robinson
aaff188b3b
Remove the cosine resampler
...
It's too slow when auxiliary sends are being used.
2010-11-25 13:49:51 -08:00
Chris Robinson
2595d85cca
Double-up the interpolation functions (and make them use doubles)
2010-11-25 13:45:35 -08:00
Chris Robinson
2c96c29938
Rename some "template" functions
2010-11-25 13:22:54 -08:00
Chris Robinson
65919b7037
Always make sure there's a sample available to mix, for pending click removal
2010-11-25 13:17:51 -08:00
Chris Robinson
f4e0c6a348
Use a temporary stack buffer to store the source buffer data to be mixed
...
This makes it much easier to pack the playable buffer data so that it's a
continuous data stream. This could normally be broken up otherwise, such as
when using loop points or small queued buffers.
Currently it defaults to a 16KB stack buffer, but this can be overridden at
compile time.
2010-11-25 11:16:19 -08:00
Chris Robinson
885a5e9f90
Use 0-based access for the buffer data
2010-11-24 20:44:21 -08:00
Chris Robinson
22e3e9a18b
Support 8-bit sample data in the mixer
2010-11-24 19:41:25 -08:00
Chris Robinson
445cde2dd4
Check the sample byte size after the resampler
2010-11-24 17:23:09 -08:00
Chris Robinson
3dd58cf765
Get rid of a useless union
2010-11-24 17:10:41 -08:00
Chris Robinson
cd87061749
Change the mixer macros to declare functions
2010-11-24 17:07:50 -08:00
Chris Robinson
1311e051d9
Set mixer sample pos and frac when needed
2010-11-24 14:54:46 -08:00
Chris Robinson
6ab22e7cbb
Reorder some stored source params
2010-11-24 10:01:50 -08:00
Chris Robinson
bb13f7f234
Make sure the buffer padding is always cleared before looking for the next buffer
2010-11-24 07:20:41 -08:00
Chris Robinson
bbb45e326c
Avoid temporary float variables
2010-11-21 03:58:37 -08:00
Chris Robinson
dfe3e402a8
Pass the data pointer and proper sampler to the mixer macro
2010-11-21 03:33:33 -08:00
Chris Robinson
e884da50ea
Move aluMixData back to ALu.c
2010-11-21 02:51:18 -08:00
Chris Robinson
07346da740
Use the number of sends the device is configured for in more places
2010-11-06 14:27:33 -07:00
Chris Robinson
289c74788e
Use a switch to select the appropriate channel-count mixer
2010-11-06 12:21:46 -07:00
Chris Robinson
65a8d9278d
Declare a variable where it's used
2010-11-01 12:44:56 -07:00
Chris Robinson
6db4e08efb
Fix fpu state handling with _controlfp
2010-10-15 10:35:47 -07:00
Chris Robinson
90e9cd970a
Check resampler mode first when selecting the mixer
2010-09-26 13:53:02 -07:00
Chris Robinson
845ca95888
Get a variable where it's needed
2010-09-26 13:30:46 -07:00
Chris Robinson
92d8d2f8a4
Pass the device to the mix function and localize the dry mix and click buffers
2010-09-26 12:23:22 -07:00
Chris Robinson
7cd52b2857
Clarify a check
2010-09-26 01:29:28 -07:00
Chris Robinson
9fbd6c6c3f
Make the SourceMix function a method of the ALsource struct
2010-09-26 01:15:27 -07:00
Chris Robinson
08fdc5fa98
Avoid updating the source in MixSource
2010-09-25 23:49:57 -07:00
Chris Robinson
7e362249ff
Convert shorts so that 0 remains 0
2010-09-25 21:13:40 -07:00
Chris Robinson
4c75a72a90
Avoid some code duplication
2010-09-25 20:18:07 -07:00
Chris Robinson
a0b2778161
Localize more variables and remove unnecessary ones
2010-09-25 14:19:36 -07:00