Chris Robinson
0cf32e2946
Reorder some parameters for consistency
2010-11-29 19:48:18 -08:00
Chris Robinson
693ab4d8bc
Fix source offset calculations
2010-11-29 19:36:33 -08:00
Chris Robinson
e4869b447c
Store the decomposed source format in the buffer
2010-11-29 19:27:33 -08:00
Chris Robinson
547f356131
Keep a handle on the buffer with the format when queueing new buffers
2010-11-29 17:35:22 -08:00
Chris Robinson
017ab1b3fd
Add IMA4 as a source data type
2010-11-29 17:14:22 -08:00
Chris Robinson
07ef566de1
Add support for (unsigned) int input formats
2010-11-29 17:00:22 -08:00
Chris Robinson
3c8a29a179
Reorder and rename parameters for the format decomposition functions
2010-11-29 15:19:39 -08:00
Chris Robinson
f74032d244
Uninline a couple more functions
2010-11-29 15:01:27 -08:00
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
986628b8b2
Avoid temp storage
2010-11-28 22:50:27 -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
f09ae196a8
Avoid making Resampler[Pre]Padding static
2010-11-28 17:37:14 -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
b4eaf1ab5a
Avoid a potential overflow when setting the source offset
2010-11-27 22:22:14 -08:00
Chris Robinson
3c8e9a7f24
Clean up the source byte offset code
2010-11-27 22:13:29 -08:00
Chris Robinson
67ec72284d
Remove some unneeded muLaw special cases
2010-11-27 22:06:51 -08:00
Chris Robinson
754a122aa0
Support muLaw with LoadData
2010-11-27 22:00:24 -08:00
Chris Robinson
0486d633c6
Remove an unnecessary assert
2010-11-27 20:41:09 -08:00
Chris Robinson
09b063002b
Be much more flexible with loading and converting buffer data
2010-11-27 20:33:37 -08:00
Chris Robinson
8828f4d0e5
Don't inline the decompose function
2010-11-27 15:37:51 -08:00
Chris Robinson
9495cf71fd
Decompose input buffer formats and use it when converting uncompressed data
2010-11-27 15:33:33 -08:00
Chris Robinson
4d0f70439c
Rename a function
2010-11-27 14:30:13 -08:00
Chris Robinson
61315d4dfb
Shorten a couple really long lines
2010-11-27 00:51:21 -08:00
Chris Robinson
2a123a4760
Support 64-bit double buffers directly
2010-11-27 00:32:53 -08:00
Chris Robinson
4689ffb72d
muLaw converts to 16-bit, not float
2010-11-27 00:17:19 -08:00
Chris Robinson
d2895c7985
Use the enums in a couple more places
2010-11-27 00:15:07 -08:00
Chris Robinson
6abb9d151e
Use enums when selecting the mixer
2010-11-26 23:42:30 -08:00
Chris Robinson
08827efae3
Remove an unnecessary 'struct' keyword
2010-11-26 20:35:47 -08:00
Chris Robinson
facb922f3e
Properly clamp high pitch values
2010-11-26 17:47:43 -08:00
Chris Robinson
7287b5cd3c
Make the buffer padding size dependent on the resampler
2010-11-26 02:53:15 -08:00
Chris Robinson
0692cf304d
Don't allocate padding with the buffer itself
2010-11-26 02:31:17 -08:00
Chris Robinson
88ebe7e4c1
Decrease the buffer size more
2010-11-26 02:14:11 -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
e1c0b5ea24
Call MixSource directly, instead of through a function pointer
2010-11-25 23:09:18 -08:00
Chris Robinson
30820c1bde
Add a cubic resampler
2010-11-25 23:05:44 -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
596514f7aa
Make the buffer queue a double-linked list
2010-11-25 18:30:57 -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
f1bb7c33f1
Fix a bunch of comments
2010-11-25 12:07:12 -08:00
Chris Robinson
8e7a4046d0
Don't "convert" LOKI quad to MCFORMATS quad
2010-11-25 11:49:35 -08:00
Chris Robinson
22e3e9a18b
Support 8-bit sample data in the mixer
2010-11-24 19:41:25 -08:00
Chris Robinson
c9363832fe
Fully progress the source to a stopped state when no buffers are playable
2010-11-24 10:16:53 -08:00
Chris Robinson
6ab22e7cbb
Reorder some stored source params
2010-11-24 10:01:50 -08:00
Chris Robinson
a7b4e0b5c5
Get rid of the device timer stuff
2010-11-21 06:32:59 -08:00
Chris Robinson
5f6f046d25
Use a double when converting millisecond offsets to byte offsets
2010-11-07 21:41:04 -08:00
Chris Robinson
65e033c64b
Increase the max number of source sends to 4, and decrease the default to 1
2010-11-06 15:08:54 -07: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
c95f182a90
Remove unnecessary comments and reorder some lines
2010-11-06 14:07:30 -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
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
9fbd6c6c3f
Make the SourceMix function a method of the ALsource struct
2010-09-26 01:15:27 -07:00
Chris Robinson
e9d5e53dbe
Use ALfloat for the dry mix buffer
2010-09-23 17:44:02 -07:00
Chris Robinson
67ba924ed3
Store and mix signed 16-bit samples
2010-09-22 23:38:06 -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
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
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
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
Chris Robinson
3763c95784
Add missing else
2010-09-07 16:36:42 -07:00
Chris Robinson
5fa5252648
Watch for a few more negative sizes
2010-09-07 16:33:17 -07:00
Chris Robinson
1e82561a22
Check for invalid negative sizes
2010-09-07 16:18:24 -07:00
Chris Robinson
ba32a52bb6
Remove unused struct member
2010-09-07 16:07:35 -07:00
Chris Robinson
e5cae87502
Handle clicks by watching changes between updates
2010-08-16 14:53:21 -07:00
Chris Robinson
00525274a0
Add click removal for wet sends
2010-08-15 14:52:12 -07:00
Chris Robinson
2915d9dbd9
Use click removal to handle harsh panning/volume changes
2010-08-15 00:19:38 -07:00
Chris Robinson
0c49e5ba56
Use click removal when starting a source
2010-08-14 22:59:55 -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
8003278a55
Combine non-attenuated source calculation functions
2010-08-07 06:57:31 -07:00
Chris Robinson
5f22d30fc9
Calculate the source stepping value with the param calculations
2010-08-07 05:43:16 -07:00
Chris Robinson
8f49f2c25e
Forward some more source properties instead of duplicating
2010-08-07 01:35:43 -07:00
Chris Robinson
98bc60cfb7
Combine stereo and stereo-duplicate mixers
...
Use a separate update method for stereo sources to the set appropriate channel
gains
2010-08-05 01:07:20 -07:00
Chris Robinson
e74976e645
Use a callback to specify the source update method
2010-08-03 23:10:00 -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
42d9140afe
Check the buffer's original format when queueing on a source
2010-07-12 15:53:11 -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
37190b2caf
Add a function to get the frame size from a format
2010-05-24 21:51:30 -07:00
Chris Robinson
c6b948323e
Better watch for invalid values in alBufferSubDataEXT
2010-05-24 21:33:43 -07:00
Chris Robinson
ad2957ed98
Reduce the mixing buffer size
2010-05-24 20:10:35 -07:00
Chris Robinson
c469bfcb9e
Make error checking consistent in alBuffer.c
2010-05-24 19:52:27 -07:00
Chris Robinson
3d16be1822
Fix alBufferiv error handling
2010-05-24 19:02:36 -07:00
Chris Robinson
ad10d4ee74
Increment pointer when read
2010-05-24 17:40:16 -07:00
Chris Robinson
3ba3c1ca31
Pass the number of blocks to ConvertDataIMA4
2010-05-24 17:31:49 -07:00
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