Chris Robinson
0211831858
Move the FIR4 from SSE2 to SSE3
...
SSE3 can avoid the slow _MM_TRANSPOSE_PS4 call thanks to the inclusion of
horizontal adds.
2015-10-11 06:38:00 -07:00
Chris Robinson
70fbc2b1ff
Add a function to get a list of data files
...
The method takes a marked-up filename (e.g. may include %r for a sample rate,
%% for %, etc), and returns a vector of strings of found filenames that match.
It will search the CWD, the local, and global data directories, in that order.
2015-10-03 20:41:18 -07:00
Chris Robinson
da3b9568dd
Revert "Only use SDL1 with SDL_sound"
...
This reverts commit 8883ce1cef86c07d6eaa7e0eff2e132e181184f0.
2015-09-30 18:45:19 -07:00
Chris Robinson
8883ce1cef
Only use SDL1 with SDL_sound
2015-09-28 23:29:52 -07:00
Chris Robinson
f134fbac5c
Check for pthread_*_np functions in pthread_np.h when it exists
2015-08-13 15:20:34 -07:00
Aaron Jacobs
11e6e07a72
Make installation of headers and libraries optional
2015-08-12 15:08:14 -07:00
Chris Robinson
5543000c5b
Check for snprintf in stdio.h
...
This works better for VS2015, which adds support for the function.
2015-06-07 11:16:11 -07:00
Chris Robinson
23197ddbc3
Add a skeleton backend for JACK
2014-12-21 15:51:16 -08:00
Chris Robinson
4d19d4f416
Check that atomic_load works with a const _Atomic
...
The original C11 spec does not allow atomic_load to work on const _Atomic
variables, which we sometimes do in alGet* methods, despite the fact that it
does not modify the variable. An update to the C spec corrects this oversight,
and GCC 4.9 has allowed it anyway, while Clang 3.4 does not.
2014-09-05 17:47:32 -07:00
Chris Robinson
ab829fd906
Fix the __get_cpuid cmake check
2014-09-05 02:57:24 -07:00
Chris Robinson
0d0222e91b
Include the common sources when building statically
2014-08-23 13:37:14 -07:00
Chris Robinson
864528bb7b
Use the POSITION_INDEPENDENT_CODE target property when available
2014-08-16 20:46:55 -07:00
Chris Robinson
4a7e04add3
Don't force specific compile flags for the different build types
2014-08-16 19:57:56 -07:00
Chris Robinson
dd1df64537
Search for the correct include and lib directories for the DX SDK
...
And only set them when needed.
2014-08-15 14:26:06 -07:00
Chris Robinson
b907c21f48
Release 1.16.0
2014-08-14 17:30:11 -07:00
Chris Robinson
74c8de6372
Try the __cpuid intrinsic if GCC's __get_cpuid isn't available
2014-08-11 14:19:15 -07:00
Chris Robinson
e3ee534c39
Check for GCC's __get_cpuid before using it
2014-08-11 13:38:43 -07:00
Chris Robinson
8ecbeb4945
Only support dsound and mmdevapi on Windows
2014-08-11 09:13:08 -07:00
Chris Robinson
4a9545affa
Don't try to generate .def or .lib files when building statically
2014-08-10 19:48:53 -07:00
Chris Robinson
6273a18de5
Add an option to build an import .lib with dlltool on mingw
...
Also make sure the ordinals are stripped from the .def file (using sed), so
that the generated .lib will link apps to the DLL using function names instead
of ordinals.
2014-08-10 19:40:29 -07:00
Chris Robinson
22856844c6
Properly set FluidSynth's include dir for older cmake versions
2014-08-10 05:50:19 -07:00
Chris Robinson
357beb0570
Create a .def file when building with MinGW
...
Preferably we'd tell CMake to make it itself instead of specifiying compiler-
specific flags, but there doesn't seem to be a way to.
2014-08-10 05:10:11 -07:00
Chris Robinson
6048d70232
Add a 48khz HRTF data set
...
Made by simply using makehrtf's resampling option with the 44.1hz KEMAR data
set.
2014-08-07 04:26:06 -07:00
Chris Robinson
951870b189
Enable large file support
2014-08-05 05:05:05 -07:00
Chris Robinson
7b4a2335eb
Load fluidsynth dynamically when possible
2014-08-05 01:48:30 -07:00
Chris Robinson
0ad3f61351
Don't try to use internal visibility
...
A number of functions are passed as callbacks to external libraries, which
internal visiiblity doesn't allow.
2014-07-26 17:48:36 -07:00
Chris Robinson
a3dbe08c8b
Support C11 atomics
2014-07-23 06:36:34 -07:00
Chris Robinson
be66692f94
Require SSE for SSE2, and SSE2 for SSE4.1
2014-06-07 23:28:32 -07:00
Timothy Arceri
fc0be88c0f
Add SSE2 and SSE4.1 linear resamplers
...
Currently the only way SSE 4.1 is detected is by using __get_cpuid, i.e. with
GCC. Windows' IsProcessorFeaturePresent does not report SSE4.1 capabilities.
2014-06-06 07:15:00 -07:00
Chris Robinson
d2c0a43498
Add an ffmpeg-based example player
...
This example shows proper timing and A/V synchronization with an OpenAL stream.
Requires the in-progress AL_SOFTX_source_length extension to avoid manually
keeping track of the buffer queue length.
2014-06-02 17:33:11 -07:00
Chris Robinson
13eac2552e
Update the examples to use SDL2
...
This should make it easier to build the examples on 64-bit, where there are no
premade dev libs for SDL1 on 64-bit mingw. FindSDL_sound.cmake has been
updated to accept SDL or SDL2.
2014-05-23 12:14:51 -07:00
Chris Robinson
85e990e915
Don't try to use the non-standard alloca.h
...
Variable-length arrays are C99 standard and are preferred over alloca. The only
compiler that needs alloca (MSVC) has it in malloc.h.
2014-05-22 08:46:13 -07:00
Chris Robinson
bd88e1743a
Build a common static lib for reusable code
2014-05-07 19:51:42 -07:00
Chris Robinson
a2bddb7b40
Move RWLock and UIntMap implementations to common
...
This should make the code in common completely self-reliant.
2014-05-07 19:16:49 -07:00
Chris Robinson
38b98de78e
Check for C99 _Bool support
2014-05-06 23:10:50 -07:00
Chris Robinson
1aff37114a
Move atomic method definitions to a separate common source
2014-05-06 19:07:40 -07:00
Chris Robinson
fa12855d19
Move threads.c to a separate source dir
...
This will eventually serve to build a static lib of common wrapper methods,
such as threads, mutexes, atomics, etc.
2014-05-06 18:57:42 -07:00
Chris Robinson
cbb94405db
Test _Alignas with 16 instead of 4
2014-05-05 14:21:09 -07:00
Chris Robinson
2edd047178
C11's alignas is also sufficient for SSE aligning
2014-05-05 13:53:07 -07:00
Chris Robinson
d90f684f16
Use a backup in case pthread_mutex_timedlock isn't available
2014-05-01 14:15:31 -07:00
Chris Robinson
84afe4fb40
Simplify the cmake backend handling a bit
2014-04-22 07:58:25 -07:00
Chris Robinson
d5ac11c87f
Fix adding backend include directories
2014-04-22 07:21:19 -07:00
Chris Robinson
d856183c4b
Only declare backend options when the backend is available
2014-04-20 22:42:53 -07:00
Chris Robinson
043e25b602
Don't link with libwinmm unless WinMM is enabled
...
We don't use timeGetTime for timing anymore, so winmm only needs to be linked
when the winmm backend is enabled.
2014-04-19 08:50:41 -07:00
Chris Robinson
96c559fbef
Use a find module to look for DirectSound
2014-04-19 07:49:27 -07:00
Chris Robinson
887763e41c
Use find cmake modules for more backends
2014-04-19 06:35:14 -07:00
Chris Robinson
59fc9aac0e
Use C11 alignas when available
2014-04-19 02:11:04 -07:00
Chris Robinson
8badd3740e
Dont bother trying _alloca
...
We prefer C99 variable-length arrays, and other systems (including MSVC9) don't
have an issue with alloca.
2014-04-19 01:10:12 -07:00
Chris Robinson
1d69ec9ce1
Set -D_GNU_SOURCE=1 -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=700 earlier
2014-04-19 01:02:36 -07:00
Chris Robinson
9b685bace5
Use FindALSA.cmake to look for ALSA
...
Also, only provide the ALSA_BACKEND_ALSA option if it's available
2014-04-19 00:52:19 -07:00