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
bbcf4e8c1d
Make sure sources are 16-byte aligned
...
They contain fields that require 16-byte alignment for SSE (and Neon?)
acceleration.
2012-08-15 05:54:13 -07:00
Chris Robinson
2859357939
Add wrapper methods to ensure aligned allocations
2012-08-15 05:50:40 -07:00
Chris Robinson
2cbb565d09
Ensure some HRTF-related parameters are aligned
2012-08-15 04:10:41 -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
64cd763e19
Remove unused filter functions
2012-08-15 01:48:47 -07:00
Chris Robinson
c3f387da70
Check for and use the -msse switch when dealing with SSE intrinsics
2012-08-15 01:46:42 -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
cfc5205569
Fix a typo
2012-08-13 22:31:58 -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
e32e2fd6b8
Fix an inadvertent change in the HRTF coefficient stepping value array size
2012-07-19 11:49:43 -07:00
Chris Robinson
6bd535bed0
Use wrappers for float-typed math functions
2012-06-29 02:12:36 -07:00
Chris Robinson
524c88c402
Test the squared length of a vector before normalizing
2012-06-28 20:54:10 -07:00
Chris Robinson
1c096b101d
Minor typo fixes
2012-06-28 19:57:23 -07:00
Chris Robinson
583dc8dbca
Don't use all caps for enum value names
2012-06-28 18:49:49 -07:00
Chris Robinson
befa4e7528
Don't try to set FE_TOWARDZERO when it's not available
2012-06-28 18:27:45 -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
d17f835e74
Remove an unused include
2012-06-19 04:02:55 -07:00
Chris Robinson
ef1f8aa9a0
Don't needlessly verify a device
2012-06-19 00:25:45 -07:00
Chris Robinson
a5ac6eb524
Remove an outdated comment about _REENTRANT
2012-06-18 02:04:10 -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
ad2643d8af
Clarify some comments, fix some definition ordering, and add some includes
2012-06-15 23:46:09 -07:00
Chris Robinson
46840ee787
Add DEVPKEY_Device_FriendlyName declaration for mingw-w64 compatibility
2012-06-14 18:10:10 -07:00
Chris Robinson
1e0282a238
Add some more entries to .gitignore
2012-05-09 16:30:22 -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