Chris Robinson
a240abb6c8
Avoid building redundant mixers
2012-09-16 08:14:26 -07:00
Chris Robinson
dd9d30e248
Implement an SSE MixSend method
2012-09-16 06:19:39 -07:00
Chris Robinson
95535ce99e
Properly restore the SSE control word with __control87_2
2012-09-16 06:01:48 -07:00
Chris Robinson
df2e82da78
Properly handle the SSE control word
2012-09-16 05:35:38 -07:00
Chris Robinson
a1daec66e2
Use __control87_2 when available
2012-09-16 01:44:45 -07:00
Chris Robinson
657ee85136
Use a struct to store the FPU mode
2012-09-16 01:35:16 -07:00
Chris Robinson
28086f6cb7
Implement an SSE cubic resampler
2012-09-14 07:01:58 -07:00
Chris Robinson
45bb010b28
Shorten a warning
2012-09-14 05:05:20 -07:00
Chris Robinson
90e0c74721
Implement an SSE linear resampler
2012-09-14 04:48:53 -07:00
Chris Robinson
a20341ac2a
Ensure the ResampledBuffer is aligned
2012-09-14 04:16:49 -07:00
Chris Robinson
7635afcb52
Use a source param for the resampler and move them to the mixer source
2012-09-14 04:13:18 -07:00
Chris Robinson
9f58edd7a8
Fix up some more header includes
2012-09-14 02:42:36 -07:00
Chris Robinson
0f3a575a09
Don't include alu.h in alMain.h
2012-09-14 02:14:29 -07:00
Chris Robinson
ec74fb9ba2
Enable flush-to-zero mode when possible
2012-09-14 01:10:19 -07:00
Chris Robinson
ff809f2271
Move a couple methods to where they're used
2012-09-12 07:57:50 -07:00
Chris Robinson
41f52fdd6a
Restore support for the previous mhr format
2012-09-12 07:25:05 -07:00
Chris Robinson
613ce3f976
Update fnamelist after handling % markers
2012-09-12 04:55:03 -07:00
Chris Robinson
ce8a0a9fd5
Use PATH_MAX for the fname length
2012-09-12 03:45:26 -07:00
Chris Robinson
f59e4ba7c2
Improve parsing hrtf_tables filenames
2012-09-12 03:41:41 -07:00
Chris Robinson
f4642953d4
Warn about SSE performance with non-multiple-of-4 update sizes
2012-09-11 11:17:41 -07:00
Chris Robinson
88b0c30152
Use the correct size for defaultCoeffs
2012-09-11 10:43:53 -07:00
Chris Robinson
01183ad93b
Minor cleanups for variable declarations
2012-09-11 09:40:08 -07:00
Chris Robinson
3f97af4c8c
Don't use count-specific functions to write to the output buffer
2012-09-11 06:41:24 -07:00
Chris Robinson
4c5cb2189b
Use a non-interleaved DryBuffer
2012-09-11 06:32:42 -07:00
Chris Robinson
98ff6f990a
Do the filtering separately from the mixing
2012-09-11 05:56:19 -07:00
Chris Robinson
7e81918f7b
Update HRTF code
...
This update allows for much more flexibility in the HRTF data. It also allows
for HRTF table file names to include "%r" to represent the device's playback
rate (e.g. if you set hrtf-%r.mhr, then it will try to use hrtf-44100.mhr or
hrtf-48000.mhr depending if the device's output rate is 44100 or 48000,
respectively).
The makehrtf utility has also been updated to support more options and input
file formats, as well as the new mhr format.
2012-09-11 02:11:51 -07:00
Chris Robinson
1b840a3db8
Again try to get _WIN32_IE to behave right with MinGW
2012-09-11 01:39:05 -07:00
Chris Robinson
af3b5c23c8
Try to ensure mixing samples in multiples of 4
2012-09-09 04:27:47 -07:00
Chris Robinson
9f208417df
Use the right method to clear a __m128 to 0
2012-09-09 04:09:31 -07:00
Chris Robinson
f1ce139997
Use SSE to do 4 samples at once (non-HRTF direct mix), instead of to apply a matrix row
...
MaxCHannels no longer needs to be a multiple of 4 now, either.
2012-09-09 04:02:54 -07:00
Chris Robinson
f56dddfa73
Implement MixDirect_SSE separately from the C and Neon versions
2012-09-09 00:53:54 -07:00
Chris Robinson
2bf1979d4a
Move the target effect slot to the SendParams struct
2012-09-08 22:32:30 -07:00
Chris Robinson
89cab3cd39
Remove STACK_DATA_SIZE in favor of BUFFERSIZE
2012-09-08 22:09:34 -07:00
Chris Robinson
6723d27e06
Remove some unused code
2012-09-08 21:53:04 -07:00
Chris Robinson
1c03025090
Separate the resampling and mixing steps
2012-09-08 21:34:36 -07:00
Chris Robinson
2b5fdad2c8
Free the global ALSA config after opening capture devices too
2012-09-02 14:26:46 -07:00
Lauri Kasanen
a6f9ede849
alsa: Free the global config cache to remove a lot of reported leaks
...
Signed-off-by: Lauri Kasanen <curaga@operamail.com>
2012-09-02 14:16:23 -07:00
Chris Robinson
795909c39e
Minor cleanups for mixer_inc
2012-08-29 02:43:19 -07:00
Chris Robinson
3c042a054d
Add an SSE-enhanced path for applying the mixer matrix
2012-08-29 01:56:04 -07:00
Chris Robinson
332d66c183
Make sure device buffers are 16-byte aligned
2012-08-29 01:40:42 -07:00
Chris Robinson
f2fa5e7c88
Print the error when reporting snd_pcm_delay failure
2012-08-27 22:52:37 -07:00
Chris Robinson
3b735cc34a
Use _aligned_free for pointers returned by _aligned_malloc
2012-08-24 17:45:16 -07:00
Chris Robinson
bc1ce7b3ac
Add methods to get source properties as doubles
2012-08-20 15:26:35 -07:00
Chris Robinson
50fa9a44be
Properly export alGetSource3i64SOFT
2012-08-20 14:48:08 -07:00
Chris Robinson
f5e0500df4
Add a macro to help make a 64-bit value
2012-08-19 22:31:55 -07:00
Chris Robinson
37924887e8
Use a default method to provide a dummy latency
2012-08-19 12:31:59 -07:00
Chris Robinson
0db7c4131b
Hold the device lock with PulseAudio between mixing and writing
2012-08-18 17:20:20 -07:00
Chris Robinson
a56a974149
Hold the device lock with ALSA between mixing and writing
2012-08-18 17:18:53 -07:00
Chris Robinson
af7f3768fa
Use non-blocking access for ALSA playback
2012-08-18 17:01:56 -07:00
Chris Robinson
0865db564f
Move the device lock into the backend function table
...
For backend-specific implementations: this should hold the audio mixer loop for
playback devices, and provide recursive mutex behavior.
2012-08-18 15:58:04 -07:00
Chris Robinson
2b020040b4
Keep the backend device open until the last reference is released
...
This should generally happen with the next ALCdevice_DecRef call unless the
device is in the middle of being used in another thread, in which case it's
probably best to not remove the resources.
2012-08-18 14:49:42 -07:00
Chris Robinson
3ae5fcbd7e
Add the start of AL_SOFT_source_latency
...
This extension will provide a way for apps to get accurate latency and playback
position information
2012-08-18 11:06:39 -07:00
Chris Robinson
ac4fc4026c
Add a device method to retrieve the active latency
...
This is effectively the time until the next update will be heard by the user,
or the closest approximation thereof, in nanoseconds.
2012-08-17 13:38:52 -07:00
Chris Robinson
9737f68315
Place the alignment attribute before the variable declaration
2012-08-16 10:42:48 -07:00
Chris Robinson
3c395a82db
Fix aligned allocator fallback
2012-08-16 10:30:13 -07:00
Chris Robinson
147fd9de4e
Avoid dynamic handling of libsndio
...
This makes it safer and easier to handle as OpenBSD updates it
2012-08-16 10:12:50 -07:00
Chris Robinson
0bca771a88
Apply HRTF mixer coefficients with stepping using SSE
2012-08-15 08:19:04 -07:00
Chris Robinson
f4ff63e271
Check the max CPUID functions before calling them
2012-08-15 06:28:45 -07:00
Chris Robinson
2859357939
Add wrapper methods to ensure aligned allocations
2012-08-15 05:50:40 -07:00
Chris Robinson
4d157d2849
Make sure the working coefficients are aligned for the SSE mixer
2012-08-15 03:43:36 -07:00
Chris Robinson
6ebeb3b4f7
Check the correct macro for ARM Neon support
2012-08-15 01:32:17 -07:00
Chris Robinson
2e18baa3c8
Don't bother handling MMX since we don't use it
2012-08-15 01:29:19 -07:00
Chris Robinson
c9e87a19a9
Add cmake options to disable or require support for CPU extensions
2012-08-15 01:24:50 -07:00
Chris Robinson
3b87e29e63
Move mixers into separate source files
2012-08-15 01:01:55 -07:00
Chris Robinson
e9a20cb985
Add an SSE-enhanced HRTF mixer using intrinsics
...
Not as good as it could be, but it's something
2012-08-14 03:53:07 -07:00
Chris Robinson
17dfaa3aae
Add a config option to disable use of CPU extensions
2012-08-13 10:37:49 -07:00
Chris Robinson
0a3eba08d8
Allow building multiple types of mixers, selecting based on CPU caps
2012-08-13 09:18:46 -07:00
Chris Robinson
add53e28c2
Check for some CPU extensions
2012-08-13 09:07:01 -07:00
Chris Robinson
f42f655ea9
Don't unlock the pulseaudio mainloop when mixing
...
Lock contention could cause a lengthy delay between mixing and writing the
audio. There shouldn't be any risk of dead-locking as the device lock should
never be held when the mainloop gets locked.
2012-08-12 03:52:38 -07:00
Chris Robinson
8304fc1bef
Handle the scalar values a bit better
2012-08-11 06:20:24 -07:00
Chris Robinson
ea84fee952
Use a more efficient method to blend HRTF delays and coefficients
2012-08-11 02:16:34 -07:00
Chris Robinson
d6fd52a0e5
Add an option for wide stereo sources
...
Replaces the old stereodup option
2012-08-09 05:38:07 -07:00
Chris Robinson
0dde7dd88a
Use a more efficient method to offset the speaker angles when computing gains
2012-08-09 02:31:19 -07:00
Chris Robinson
1323e11701
Interpolate between HRTF delay samples using the delay fraction
2012-07-20 15:08:11 -07:00
Chris Robinson
7ac9944bb3
Increase the directional change sensitivity for the HRTF delta
2012-07-20 14:38:49 -07:00
Chris Robinson
6bd535bed0
Use wrappers for float-typed math functions
2012-06-29 02:12:36 -07:00
Chris Robinson
583dc8dbca
Don't use all caps for enum value names
2012-06-28 18:49:49 -07:00
Chris Robinson
bc6751237c
Clamp the Y position before trying to get the elevation
2012-06-28 17:26:00 -07:00
Chris Robinson
6f3be31b60
Add some includes
2012-06-20 03:01:19 -07:00
Chris Robinson
8001d86751
Add missing include
2012-06-19 22:15:19 -07:00
Chris Robinson
acca3e5a21
Use a proper method to wait for a PulseAudio operation
2012-06-19 10:37:09 -07:00
Chris Robinson
ef1f8aa9a0
Don't needlessly verify a device
2012-06-19 00:25:45 -07:00
Chris Robinson
ac84d95c6e
Silence some GCC warnings
2012-06-17 22:17:03 -07:00
Chris Robinson
785f52aa29
Only try float32 with DSound when specifically requested
...
Some hardware drivers seem to have a bug where a buffer descriptor with a
32-bit float sample type ends up creating a non-float32 buffer.
2012-06-17 04:13:01 -07:00
Chris Robinson
051195a991
Avoid failing if ALSA can't set a buffer or period time near to our request
...
These functions should not fail, but there seem to be bugs that cause them to
sometimes. We're flexible enough to handle almost anything it throws back at us
though, so anything is better than nothing here.
2012-06-16 23:02:59 -07:00
Chris Robinson
90ca6675c2
Allow PulseAudio to spawn a server by default
...
Since only one backend is used at a time now, the issues with device ownership
aren't really prevelant anymore. An application that tries to open all
enumerated devices won't run into the problem of spawning a server and end up
preventing other backend devices from working.
2012-06-16 22:37:45 -07:00
Chris Robinson
0db9730a50
Add an option to allow PulseAudio to move streams
...
This could be made the default, if there's a safe way to update the AL device
specifier.
2012-06-16 22:32:19 -07:00
Chris Robinson
46840ee787
Add DEVPKEY_Device_FriendlyName declaration for mingw-w64 compatibility
2012-06-14 18:10:10 -07:00
Chris Robinson
259e4f5b38
Rename AllDevice -> AllDevices
2012-05-09 16:28:16 -07:00
Chris Robinson
e44229c74e
Clamp the ALSA period time between min and max if setting near fails
2012-05-08 01:23:53 -07:00
Chris Robinson
92827cc467
Clamp the ALSA buffer time between min and max if setting near fails
...
It seems there's some bugs with snd_pcm_hw_params_set_buffer_time_near that
cause it to return "invalid argument" despite a valid nearby buffer time being
available. Clamping the buffer time seems to mitigate the issue a bit.
2012-05-07 11:42:59 -07:00
Chris Robinson
dd3d5bc2d4
Look for libsndio.so.2 instead of libsndio.so
2012-05-05 16:19:51 -07:00
Chris Robinson
010a66487d
Use 2 chained one-pole filters for the wet path
2012-04-30 09:33:00 -07:00
Chris Robinson
aed35fd811
Use ComputeAngleGains for multi-channel sources and remove the unused lookup table stuff
2012-04-29 05:04:46 -07:00
Chris Robinson
8d9838012d
Remove the stereodup option
...
There's better ways to do it now with "wide" sound sources.
2012-04-29 04:44:53 -07:00
Chris Robinson
57d36ec582
Fix a couple comment typos, and a minor cleanup
2012-04-29 03:39:08 -07:00
Chris Robinson
febc2a50cb
Use ComputeAngleGains for 3D sounds
2012-04-28 13:06:16 -07:00
Chris Robinson
74e128bd0f
Fix ComputeAngleGains
...
The old code would improperly handle speakers just inside or outside the
coverage area if it had to be inverted. It also didn't properly handle when
only one speaker was outside of the covered area.
2012-04-28 12:12:02 -07:00
Chris Robinson
c34d78f417
Use ComputeAngleGains for the echo and dedicated effects
2012-04-28 08:24:09 -07:00
Chris Robinson
611bd0b2d3
Add a method to calculate gains given a sound point and its half-width, and use it for reverb
...
The half-width ranges from 0 to pi, and essentially specifies the coverage area
around the listener. At 0, it's an infinitely small point sound and behaves
like a usual panning sound. At pi/2 it covers half the area, and at pi it
covers the whole area.
2012-04-28 08:21:53 -07:00
Chris Robinson
267d38cf20
Flip the parameters to aluCart2LUTpos, so it behaves a bit more like atan2
2012-04-28 03:58:58 -07:00
Chris Robinson
26456f13e1
Pass the direct/send params to the mixer instead of accessing through the source
2012-04-28 03:31:13 -07:00
Chris Robinson
2484c44db0
Apply the listener gain with the filter
2012-04-28 03:13:37 -07:00
Chris Robinson
a8a13fcbd8
Move the HrtfParams into the DirectParams
2012-04-28 02:23:53 -07:00
Chris Robinson
0a193c5645
Move the direct and send params into separate different types
2012-04-28 01:32:52 -07:00
Chris Robinson
2450ee1723
Use separate methods for the dry and wet mixing loops
2012-04-27 23:46:51 -07:00
Chris Robinson
67f1cdfcbe
Store the speaker angles in the device
2012-04-27 07:38:17 -07:00
Chris Robinson
549d542a31
Reorganize some ALsource fields
2012-04-27 01:36:13 -07:00
Chris Robinson
2cdb58fb85
The mixer always uses floats
2012-04-26 07:50:17 -07:00
Chris Robinson
68ab232364
Use a separate loop to actually update DataPosFrac and DataPosInt
2012-04-26 06:44:37 -07:00
Chris Robinson
5c70cacc13
Fixup some comments in ALu.c
2012-04-26 00:59:17 -07:00
Chris Robinson
648464a2da
Check the right playback device file with OSS
2012-04-22 05:06:44 -07:00
Chris Robinson
77f55da6c7
Use a macro to declare the function and enum list members
2012-04-20 22:38:03 -07:00
Chris Robinson
0ad8047820
Combine ALCenum and ALenum lists
2012-04-20 01:24:58 -07:00
Chris Robinson
2115f578e9
Reorganize ALC functions and fixup some comments
2012-04-20 01:18:38 -07:00
Chris Robinson
511b4790d0
Remove hungarian notation from dsound and mmdevapi
2012-04-19 23:42:02 -07:00
Chris Robinson
d6491e21f9
Remove some more hungarian notation
2012-04-19 23:28:34 -07:00
Chris Robinson
cff0f938e5
Remove hungarian notation from the winmm backend
2012-04-19 23:22:11 -07:00
Chris Robinson
5418519637
Remove some more hungarian notation
2012-04-19 23:00:58 -07:00
Chris Robinson
b023dbe7b8
Remove hungarian notation from the device and context structs
2012-04-19 22:50:11 -07:00
Chris Robinson
125b743e5c
Remove hungarian notation from sources
2012-04-19 21:46:29 -07:00
Chris Robinson
f6a1e53f19
Read ALSOFT_TRAP_*ERROR when reading the config
2012-04-16 20:13:50 -07:00
Chris Robinson
a0a015f19f
Set a 1MB stack size for created threads
2012-04-16 19:15:48 -07:00
Chris Robinson
5d08563975
Handle very small speed of sound values
2012-03-18 08:20:08 -07:00
Chris Robinson
adb83ad3c0
Avoid converting positions to meters
2012-03-18 08:09:59 -07:00
Chris Robinson
2d0e028993
Base the initial reverb decay on the source's dry path attenuation
2012-03-18 08:06:21 -07:00
Chris Robinson
703d72f20e
Use the correct loop count for reading the elevation offsets from external HRTF files
2012-03-17 03:42:07 -07:00
Chris Robinson
b7d67d8bcc
Don't error when querying unknown enums for the channel config and sample format
2012-03-15 15:22:58 -07:00
Chris Robinson
7e5b13aabd
Finalize ALC_SOFT_loopback
2012-03-15 15:21:15 -07:00
Chris Robinson
7fbcb4b9e6
Use the actual distance from the ref distance for air absorption and initial reverb decay
2012-03-14 22:45:52 -07:00
Chris Robinson
767a5b3c73
Mark the GlobalContext pointer as volatile
2012-03-14 00:13:16 -07:00
Chris Robinson
a08080bd82
Avoid modifying the ALCdevice in portaudio's open method
2012-03-13 22:18:51 -07:00
Chris Robinson
415bf58a06
Store the portaudio stream parameters with the device
2012-03-13 21:52:47 -07:00
Chris Robinson
3b517bfa59
Initialize the default effect after opening the device
2012-03-13 19:02:26 -07:00
Chris Robinson
e356527a88
Rename GetReverbEffect to LoadReverbPreset
2012-03-13 15:48:51 -07:00
Chris Robinson
07e34cc3cf
Use enums to specify the default channel configuration and sample type
2012-03-13 15:32:44 -07:00
Chris Robinson
f7f1dd1346
Initialize the default effect when opening the device and update it with the other effect slots
2012-03-13 15:07:38 -07:00
Chris Robinson
92ccacdc77
Pass the device to InitializeEffect and return the error enum from it
2012-03-13 14:58:34 -07:00
Chris Robinson
b5ed2a5351
Pass a device to the effect update functions
2012-03-13 14:49:58 -07:00
Chris Robinson
55c5e4fe92
Rename ForcedEffect to DefaultEffect
2012-03-13 14:38:09 -07:00
Chris Robinson
3b165809cc
Minor coreaudio fix, and make sure to set the device name
2012-03-13 13:48:42 -07:00
Chris Robinson
5c59e6e704
Try to ensure the full mmdevapi buffer is used
2012-03-13 01:39:57 -07:00
Chris Robinson
ef2f237276
Try to ensure at least 2 mmdevapi updates
2012-03-13 01:35:31 -07:00
Chris Robinson
0af14c7a11
Try to find a multiple of mmdevapi's period size nearest to the wanted update size
2012-03-13 01:32:15 -07:00
Chris Robinson
305d790a19
Revert the default stereo layout back to -90 and +90 degrees
...
For the time being, until better stereo spatialization can be implemented and
headphones can be better detected.
2012-03-12 22:49:10 -07:00
Chris Robinson
1f3c1091d3
Finalize AL_SOFT_direct_channels
2012-03-12 22:46:13 -07:00
Chris Robinson
663b43f4f1
Attempted fix for the coreaudio backend
2012-03-12 21:58:40 -07:00
Chris Robinson
560f34e3df
Channel angle is already in radians, not degrees
2012-03-12 18:29:46 -07:00
Chris Robinson
335232207d
With DirectChannels enabled, don't try to mix channels that have no matching output
2012-03-12 18:27:25 -07:00
Chris Robinson
f7a8e3db35
Don't assume the calculated HRTF delta for the gain difference is less than 1
2012-03-12 13:31:19 -07:00
Chris Robinson
7747c320a8
Remove an unused property key definition
2012-03-12 12:56:52 -07:00
Chris Robinson
842a698f2b
Add a text file explaining OpenAL Soft's HRTF support and data file format
2012-03-11 19:27:40 -07:00
Chris Robinson
f5f519aa80
Properly make the source velocity relative to the listener velocity
2012-03-09 23:53:45 -08:00
Chris Robinson
7db29a2332
Clamp the upper and lower bound of the doppler velocity scale more like the original
2012-03-09 22:38:26 -08:00
Chris Robinson
6e70ae9958
The listener velocity is specified in world coordinates, too
2012-03-08 18:27:05 -08:00
Chris Robinson
e190fc9416
Refactor the doppler shift calculations
2012-03-08 18:19:15 -08:00
Chris Robinson
1a4a0abd1a
Pin the DLL for Windows
...
The mmdevapi backend does not react well to being unloaded dynamically. It has
a message-handling thread running in the background which can't quit before
DllMain is called with DLL_PROCESS_DETACH, at which point it's too late to
safely message and wait for it shutddown, thus it can continue running after
the DLL is unloaded from memory.
2012-03-08 17:42:16 -08:00
Chris Robinson
dddacc25a5
Store a duplicate of the mmdevapi device ID
2012-03-06 13:15:55 -08:00
Chris Robinson
2ba2da467c
Add a comment explaining the pulseaudio prop_filter
2012-03-06 12:01:15 -08:00
Chris Robinson
f2b64fd111
Update the ALCdevice in winmm's reset method instead of open
2012-03-06 10:14:05 -08:00
Chris Robinson
6623f69476
Mark the device as running for capture, too
2012-03-05 15:10:02 -08:00
Chris Robinson
db36574667
Hold the list lock while calling the backend
...
Pretty ugly, but we mustn't hold the device lock
2012-03-05 14:53:25 -08:00
Chris Robinson
3131104595
Filter out a couple pulseaudio stream properties by setting them to 0-length data
...
It seems Qt/Phonon will globally set media.role and phonon.streamid properties,
causing them to apply even to our streams if they happen to be loaded in the
same process. This is particularly a problem because media.role gets set to
"event", preventing the streams from showing in pavucontrol.
2012-03-05 13:00:51 -08:00
Chris Robinson
f64bdc4bd4
Returned pa_operations can be NULL
2012-03-05 08:37:50 -08:00
Chris Robinson
fe6e532c87
Use a separate backend callback to start playback of the device
...
This allows us to properly update the ALCdevice and its resources with the new
parameters before starting playback, instead of expecting the mixer to block
and wait after it has begun.
This also lets us avoid holding the device lock while resetting and starting
the device, which helps prevent lock inversion on some backends (ie, one thread
locking A then B, and another thread locking B then A), ultimately allowing
certain backends to asynchronously update the ALCdevice without risk of lockup.
Capture still has issues here, however.
2012-03-05 07:11:09 -08:00
Chris Robinson
5cdeeb47f3
Avoid some uninitialized warnings
2012-03-05 00:28:57 -08:00
Chris Robinson
bc1bb7f90f
Print and handle errors from pa_stream_readable_size
2012-03-05 00:11:28 -08:00
Chris Robinson
0f0141b9dd
Set prebuf to 0 since we're handling the stream start manually
2012-03-04 09:24:07 -08:00
Chris Robinson
302c08a14b
Enforce range limits on periods and period_size.
2012-03-04 05:44:37 -08:00
Chris Robinson
b643f13a6e
Make sure the pulse stream is properly started and better handle buffer size changes
2012-03-04 05:30:42 -08:00
Chris Robinson
487d05a73e
Invert a nested loop
2012-03-03 10:31:27 -08:00
Chris Robinson
91ed077eba
Handle BS2B cross-feed right after click removal
2012-03-03 09:41:16 -08:00
Chris Robinson
49433c2074
Slight correction for handling the wave writer backend's timer wrapping
2012-03-03 08:50:15 -08:00
Chris Robinson
a93ff6ef3c
Slight correction for handling the null backend's timer wrapping
2012-03-03 08:47:23 -08:00
Chris Robinson
44e10c4f69
Remove some unneeded pulseaudio calls
2012-03-02 09:46:36 -08:00
Chris Robinson
7a832c4522
Don't unload libpulse
...
This sometimes spawns esoteric errors in dlclose
2012-03-02 09:27:30 -08:00
Chris Robinson
7d0faba424
Remove some unneeded markers
2012-03-02 09:08:17 -08:00
Chris Robinson
01d942628b
Set prebuf to the expected buffer size
...
This is to make sure the stream starts even if PulseAudio increases tlength.
2012-03-02 05:38:11 -08:00
Chris Robinson
2a9012c94d
Don't rely on PulseAudio to wake us up using early requests
2012-03-02 04:51:29 -08:00
Chris Robinson
b571926a6d
Avoid a leak if PortAudio fails to give a usable channel count
2012-03-02 02:14:04 -08:00
Chris Robinson
f784aa704d
Make sure the device gets stopped when closing even if there's no contexts
2012-03-02 00:10:24 -08:00
Chris Robinson
153affac12
Recalculate the new update size using the device's UpdateSize
2012-03-02 00:08:56 -08:00
Chris Robinson
e5d365a3d9
Avoid an unnecessary doCapture check
2012-03-01 20:47:49 -08:00
Chris Robinson
6ffaabeb75
Update the layout config option names
2012-03-01 10:06:55 -08:00
Chris Robinson
06debb153d
Fix a memory leak
2012-03-01 09:56:25 -08:00
Chris Robinson
51e6786f31
Set the func list after successfully connecting to PulseAudio
2012-03-01 09:22:37 -08:00
Chris Robinson
50ef19720d
Make alcLoopbackOpenDeviceSOFT take a standard "device" name for a parameter
2012-03-01 08:30:21 -08:00
Chris Robinson
8d24bd720f
Don't use GUIDs to ID mmdevapi devices, and don't enumerate if not needed
2012-03-01 06:07:00 -08:00
Chris Robinson
55556f0e6c
Avoid enumerating when opening the default ALSA device
2012-03-01 04:58:28 -08:00
Chris Robinson
7d9cabebff
Use NULL to open the default PulseAudio device, and get the actual device name from the stream
2012-03-01 04:37:40 -08:00
Chris Robinson
9602c46809
Move some function definitions down
2012-03-01 04:12:47 -08:00
Chris Robinson
85daab0d5e
Don't define lib handles when dynamic loading is disabled
2012-03-01 03:46:45 -08:00
Chris Robinson
105faa1935
Only support PA_API_VERSION 12
2012-03-01 03:29:28 -08:00
Chris Robinson
b299b90964
Update the stored buffer attributes if PulseAudio changes it
2012-03-01 03:09:15 -08:00
Chris Robinson
346f1ac293
Don't allow the PulseAudio stream to move
...
Since the device specifier isn't updated to reflect the change, it's best to
not allow it to move. This should be fixed eventually.
2012-03-01 02:52:32 -08:00
Chris Robinson
6e113eea89
Don't force a sample spec when looking for the default device
2012-03-01 01:34:49 -08:00
Chris Robinson
54f906b347
Don't check if the pulseaudio sink is suspended when opening
2012-03-01 01:19:07 -08:00
Chris Robinson
4b252bc494
Constify a couple string pointers
2012-03-01 01:03:37 -08:00
Chris Robinson
b192165fb4
Look for and enumerate the default PulseAudio source first
2012-02-29 23:52:10 -08:00
Chris Robinson
f887f4efdd
Use a separate function to create and connect a PulseAudio record stream
2012-02-29 23:46:30 -08:00