1291 Commits

Author SHA1 Message Date
Chris Robinson
65a8d9278d Declare a variable where it's used 2010-11-01 12:44:56 -07:00
Chris Robinson
887c830d56 Remove explicit use of -funroll-loops
I'm not sure this really helps much.
2010-10-15 15:21:23 -07:00
Chris Robinson
6db4e08efb Fix fpu state handling with _controlfp 2010-10-15 10:35:47 -07:00
Chris Robinson
4f81bce800 Improve a macro to reference its parameter 2010-10-11 12:24:28 -07:00
Chris Robinson
932fcfa8bf Fix 64-bit compilation 2010-10-11 12:24:07 -07:00
Chris Robinson
314832e35a Rename a couple more variables 2010-10-10 04:00:50 -07:00
Chris Robinson
6a9dd185e6 Improve naming and placement of a couple variables 2010-10-10 03:47:57 -07:00
Chris Robinson
2172827f43 Simplify a calculation 2010-10-09 15:24:24 -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
9fa2db0227 Don't try to open the ALSA device a second time if the first fails 2010-09-25 20:20:10 -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
Chris Robinson
bc6d94cd25 Avoid sampling beyond the end of the loop 2010-09-24 23:32:50 -07:00
Chris Robinson
e70141e57b Localize some variables to the mixer macros
The hope here is to help break the mixer loops into separate functions, so the
macro expansion doesn't cause the MixSource function to explode in size and
kill compilation speed.
2010-09-24 23:24:01 -07:00
Chris Robinson
2e70b82eaa Use separate mixing loops for the dry path and wet paths
This will increase CPU use a bit for sources that use auxiliary sends
(particularly with the cosine resampler), but it makes it more scalable when
adding more sends per source. Additionally, it will improve performance of
sources that don't use auxiliary sends.

The cosine resampler can probably be improved by using a lookup table instead
of calling cos() as there are 14 bits of fractional precision, so a 16384-
element float array would cover it all. This can also be reduced to a half or
quarter size if the precision loss is found to be acceptable.
2010-09-24 18:29:49 -07:00
Chris Robinson
117ed52091 Better protect against negative attenuation 2010-09-24 13:16:09 -07:00
Chris Robinson
e9d5e53dbe Use ALfloat for the dry mix buffer 2010-09-23 17:44:02 -07:00
Chris Robinson
e308694521 Remove an unnecessary variable 2010-09-23 16:51:30 -07:00
Chris Robinson
7e498012ff Rename some variables to be less confusing 2010-09-23 16:49:33 -07:00
Chris Robinson
f98bf32be8 Fix line indentation 2010-09-23 15:08:30 -07:00
Chris Robinson
0f2ed8c84d Be consistent with a variable's use 2010-09-23 13:49:21 -07:00
Chris Robinson
8d67cdfaab Convert float to short similar to short to float 2010-09-23 08:43:39 -07:00
Chris Robinson
67ba924ed3 Store and mix signed 16-bit samples 2010-09-22 23:38:06 -07:00
Chris Robinson
764cfb6a0d Allow the mixing loop to access the different sample formats 2010-09-22 20:53:04 -07:00
Chris Robinson
4e3c945093 Compact some reused code 2010-09-22 18:49:46 -07:00
Chris Robinson
8558bc1d41 Allow accessing the buffer data as multiple data types in the mixer
Also reduces a bunch of indentation
2010-09-22 17:19:35 -07:00
Chris Robinson
03f56419d0 Duplicate stereo sources by default
The mixer is smart enough now to handle proper volume adjustments depending on
the number of output speakers
2010-09-22 11:09:34 -07:00
Chris Robinson
3ee9d24c3f Use separate macros for the different mixing loops 2010-09-22 09:38:24 -07:00
Chris Robinson
9b1ad6c873 Consolidate some code 2010-09-21 19:49:47 -07:00
Chris Robinson
97daaade8a Reduce some more indentation 2010-09-21 16:54:33 -07:00
Chris Robinson
8a1d5a21c3 Reduce some indentation 2010-09-21 15:12:08 -07:00
Chris Robinson
301a8ba3a4 Improve some range checks 2010-09-21 14:41:43 -07:00
Chris Robinson
2d4453968d Implement AL_SOFT_buffer_sub_data using the current AL_EXT_buffer_sub_data spec
This extension can be useful for some applications, but a full EXT version may
not be ready for some time. Using the SOFT moniker will help differentiate it
in case changes need to be done for the EXT version.
2010-09-21 09:43:35 -07:00
Chris Robinson
a2580a85a8 Improve range checking for BufferSubData 2010-09-19 14:00:55 -07:00
Chris Robinson
8a0e15ff37 Store air absorption factor locally 2010-09-12 00:10:33 -07:00
Chris Robinson
8953a73fb1 Prevent effectiveDist from going negative 2010-09-11 23:57:15 -07:00
Chris Robinson
1a2883ae9a Pass dry-path click buffers as parameters to MixSource 2010-09-11 23:43:12 -07:00
Chris Robinson
a2358ffc41 Source positions at and after the end of the buffer queue go back to 0 2010-09-09 18:27:14 -07:00
Chris Robinson
33eb2786f8 Avoid another non-descript incrementing variable 2010-09-09 16:47:54 -07:00
Chris Robinson
c8ec4fd505 Avoid using a single-letter iterator value 2010-09-09 14:53:14 -07:00
Chris Robinson
fe98ab5398 Combine multiple checks into one 2010-09-08 17:29:16 -07:00
Chris Robinson
76be7eb1e7 Better protect against sample overflow when converting float to short 2010-09-08 16:26:19 -07:00
Chris Robinson
6e32812bc1 Remove unnecessary check 2010-09-07 22:38:29 -07:00
Chris Robinson
50a7be6385 Fix comparison check 2010-09-07 22:23:37 -07:00