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
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
ab77fc14d5
Make killNow volatile
2010-07-24 10:54:12 -07:00
Chris Robinson
e0d0edc0fc
Close the log file last during shutdown
2010-07-22 09:16:28 -07:00
Chris Robinson
7eb124d99c
Keep count of the number of samples played
2010-07-22 08:11:44 -07:00
Chris Robinson
88f236ccd3
Make sure the device is stopped if there was an error setting up the first context
2010-07-21 14:50:39 -07:00
Chris Robinson
34a0c998cd
Use CLOCK_MONOTONIC when available
2010-07-18 06:21:16 -07:00
Chris Robinson
e658df493a
Update PulseAudio using period-sized chunks
...
To match the behavior of other backends
2010-07-17 23:30:25 -07:00
Chris Robinson
b2a257b6b0
Rename examples to utilities
...
There is only the one, and it more accurately reflects what it is
2010-07-17 01:02:51 -07:00