Commit Graph

1038 Commits

Author SHA1 Message Date
Chris Robinson ba32a52bb6 Remove unused struct member 2010-09-07 16:07:35 -07:00
Chris Robinson 6027fda0ce Combine two arrays into one 2010-08-16 16:07:44 -07:00
Chris Robinson e5cae87502 Handle clicks by watching changes between updates 2010-08-16 14:53:21 -07:00
Chris Robinson ba0ec1b4ba Use the correct value to dereference an array 2010-08-16 11:42:18 -07:00
Chris Robinson 2acd6f52f1 Add a bit more information to the README 2010-08-15 16:55:11 -07:00
Chris Robinson b520228bc6 Consolidate some click removal calculations 2010-08-15 15:55:02 -07:00
Chris Robinson 343a8241ab Use a multiplier instead of if checks 2010-08-15 15:09:38 -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 94b7e5a227 Rename Null Output to No Output 2010-08-13 22:06:38 -07:00
Chris Robinson 928572d384 Start the device when creating a context without specified attributes 2010-08-12 17:24:55 -07:00
Chris Robinson 2d1988bb6f Output on available channels only, for the echo and modulator effects 2010-08-09 06:12:00 -07:00
Chris Robinson e007dc3614 Fix early/late reverb panning, and only output reverb on available channels 2010-08-09 05:11:58 -07:00
Chris Robinson 2ed929eadc Update device parameters using a separate function 2010-08-09 00:28:48 -07:00
Chris Robinson f1924fa7ea Decrement context count when it's removed from the list 2010-08-08 02:48:28 -07:00
Chris Robinson df822513fa Don't re-init and re-allocate some stuff when the device is left running 2010-08-07 09:13:51 -07:00
Chris Robinson 762bdaeee1 Panning init cleanup 2010-08-07 08:49:29 -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 d6dc855511 Set up increment once 2010-08-07 02:32:16 -07:00
Chris Robinson 8f49f2c25e Forward some more source properties instead of duplicating 2010-08-07 01:35:43 -07:00
Chris Robinson f4304ca062 Calculate the actual stepping value in the source update method 2010-08-07 00:38:02 -07:00
Chris Robinson 044662e4b7 Calculate gain steps once during a source mix 2010-08-06 07:55:00 -07:00
Chris Robinson d9d8319c22 Effectslot's Effectstate should never be NULL 2010-08-06 04:52:34 -07:00
Chris Robinson 56b094767b Remove an unnecessary check
The number of buffers played should never exceed the buffer count when playing,
and the buffer list is used later on regardless
2010-08-06 01:14:37 -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 2aacca76de Improve a warning message 2010-08-04 06:18:23 -07:00
Chris Robinson aea615edb3 Prevent re-probing while opening a Pulse device if no devices were found 2010-08-04 05:07:56 -07:00
Chris Robinson f6b2dfd09f Only except a NULL device name for Pulse if some devices were found 2010-08-04 04:56:07 -07:00
Chris Robinson 7f9bcfbc7d Do not enumerate PulseAudio devices if a context fails to connect 2010-08-04 04:21:39 -07:00
Chris Robinson 22cc5af1fe pa_context_errno can return a positive value 2010-08-04 04:11:38 -07:00
Chris Robinson 0dc3f1984e Move the core mixer functions to a separate source file 2010-08-03 23:19:36 -07:00
Chris Robinson e74976e645 Use a callback to specify the source update method 2010-08-03 23:10:00 -07:00
Chris Robinson 91278608c5 Add some spacing 2010-08-03 01:44:52 -07:00
Chris Robinson 8e2d765671 Move active source iteration to aluMixData 2010-08-03 01:09:02 -07:00
Chris Robinson 2af39e51f8 Separate speaker/panning initialization into another source file 2010-08-03 00:21:36 -07:00
Chris Robinson 1504cf8812 Use millisecond resolution for the Null and Wave Writer backends 2010-08-02 22:34:19 -07:00
Chris Robinson 3bece35bbd Prevent getting bad time values when pa_stream_get_time fails
Also makes sure that reported time won't go backwards
2010-08-02 22:27:32 -07:00
Chris Robinson ae41ad5d1e Use a better method to time the Null and Wave Writer backends
This better compensates for precision loss when converting milliseconds to the
sample rate
2010-08-02 20:04:52 -07:00
Chris Robinson ee61f7a55c Make sure to request a tlength that's at least minreq*2
And warn if Pulse returns a minreq that's too large
2010-08-02 17:24:40 -07:00
Chris Robinson 241ddf76d4 Enforce the device time to be a multiple of the reported resolution 2010-08-01 16:31:00 -07:00
Chris Robinson fe6e73ede9 Be a bit more verbose when a device fails to open 2010-08-01 16:20:28 -07:00
Chris Robinson 8dab4c418c Use Pulse's stream time for the device time 2010-07-31 21:33:46 -07:00
Chris Robinson 41e2c41ecc Combine duplicate lines into the mixing macro 2010-07-31 21:09:59 -07:00
Chris Robinson 30108c7855 Remove an unnecessary variable 2010-07-31 19:14:27 -07:00
Chris Robinson 40ba9db406 Only call Pulse functions from under a lock 2010-07-31 16:07:04 -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 d886fb118b Signal the Pulse mainloop on underruns
Otherwise there are (rare) risks of not getting signaled after writing the
amount of free audio data the client knows about, leading to a mixer loop
lockup
2010-07-30 20:20:40 -07:00