612 Commits

Author SHA1 Message Date
Chris Robinson
5ff8d5ae32 Add an exception class to cover backend creation and opening 2019-05-04 18:03:25 -07:00
Chris Robinson
85439cbd87 Add some missing include directories 2019-04-29 20:03:51 -07:00
ArthurSonzogni
2eb657f2df CMAKE: export PUBLIC headers of OpenAL.
Remove the cmake function:
  INCLUDE_DIRECTORIES(..)
Replace it by:
  TARGET_INCLUDE_DIRECTORIES(...)

It gives us the opportunity to define whether or not OpenAL dependencies
should be exported or not (using PUBLIC or PRIVATE keywoard).

[user visible changes]
The OpenAL PUBLIC headers are exported. When a target depends on OpenAL,
it will have access to its public headers.

Some small refactor along the way.
2019-04-30 04:17:43 +02:00
Chris Robinson
460a01443c Add macros to stop exceptions from leaving API functions
Effectively makes the functions act as noexcept, since there's no meaningful
reason to propogate exceptions from "C" functions. Currently only applied to
ALC functions, but can incrementally be applied to AL functions too. In the
future, this could also handle ALC and AL errors with unique exception types
(functions that utilize this behavior would need to ensure proper cleanup).
2019-04-09 20:48:01 -07:00
Chris Robinson
f392d9c138 Move makemhr's .def loading code to a separate source 2019-03-24 19:00:58 -07:00
Chris Robinson
7c16b1e02f Rename makehrtf to makemhr and move it to a subdirectory 2019-03-24 17:31:10 -07:00
Chris Robinson
e7e585f65c Use the effect state factory to set the default effect props 2019-03-22 15:00:37 -07:00
Chris Robinson
73a43fb19c Don't bother trying _controlfp or __control87_2 2019-03-18 20:27:25 -07:00
Chris Robinson
6a0b2ed0ca Check compile-time support for SSE intrinsics 2019-03-18 20:05:15 -07:00
Chris Robinson
821c7565cf Don't bother checking for SSE1 alone
SSE2 support is now the minimum required for SSE. Run-time can still disable
SSE2-specific functions separately from SSE1, but build-time support can't be
separated.
2019-03-18 17:38:02 -07:00
Chris Robinson
e61cec8f17 Don't bother checking for C99 inline semantics
Should be unneeded with C++
2019-03-18 14:31:12 -07:00
Chris Robinson
2fc8461c14 Don't check for __int64 2019-02-11 11:44:35 -08:00
Chris Robinson
995c9649cb Move some number-related stuff to a separate header 2019-02-11 11:07:06 -08:00
Chris Robinson
ebb46cf4cf Rename a header
To workaround an apparent MSVC error
2019-01-23 15:09:11 -08:00
Chris Robinson
ce3acf4d1b Make hrtf_inc.cpp a proper header 2019-01-23 12:33:18 -08:00
Chris Robinson
3ab4bc5186 Don't install utilities that aren't built 2019-01-22 17:34:45 -08:00
Chris Robinson
5c0dcd1f24 Fix building makehrtf and sofa-info on Windows 2019-01-22 13:17:21 -08:00
Chris Robinson
ecafa19bcf Support loading sofa files in makehrtf
The makehrtf utility now requires libmysofa to build. This isn't necessay for
the OpenAL Soft library itself.
2019-01-22 11:24:57 -08:00
Chris Robinson
1565d7e276 Add a sofa-info utility to check sofa files 2019-01-21 10:23:17 -08:00
Chris Robinson
648b76ed65 Move some macros to a common header 2019-01-07 01:12:09 -08:00
Chris Robinson
4c4572ae8a Compile makehrtf as C++ 2018-12-31 18:23:30 -08:00
Chris Robinson
3d92e8c4df Convert the backends to use proper inheritence 2018-12-28 22:56:20 -08:00
Chris Robinson
8336de6653 Rename a couple filter files for consistency 2018-12-25 10:28:02 -08:00
Chris Robinson
e0f635b20d Move some ambisonic-related macros to a separate header 2018-12-15 03:30:47 -08:00
Chris Robinson
43f6a7c626 Remove an unused source 2018-12-12 04:34:09 -08:00
Chris Robinson
a4009c47e7 Add a cmake option to specify prebuilt native tools
This should only be used with automated build systems that guarantee the native
tools' binaries are up-to-date. Otherwise it's best to leave it alone so it can
automatically rebuild them as needed.
2018-12-08 17:22:10 -08:00
Chris Robinson
2179388430 Remove unneeded mutex checks 2018-11-27 15:23:18 -08:00
Chris Robinson
ee2d756d94 Disable MSVC warning C4065
"switch statement contains 'default' but no 'case' labels"
2018-11-27 00:04:55 -08:00
Chris Robinson
2530370ff2 Avoid relying on struct timespec 2018-11-26 23:45:04 -08:00
Chris Robinson
bf9db1fe3d Remove althrd_t from Windows 2018-11-26 20:34:16 -08:00
Chris Robinson
71660df5e5 Move bs2b.h to a more appropriate place 2018-11-24 19:54:30 -08:00
Chris Robinson
e79d9bdd1a Move the vector and matrix declarations to a separate header 2018-11-17 23:21:37 -08:00
Chris Robinson
fa3c34268d Move the ALCcontext definition to its own header 2018-11-17 23:02:27 -08:00
Chris Robinson
d10301c209 Remove unused headers and checks 2018-11-17 19:52:54 -08:00
Chris Robinson
1ac41d3ea0 Convert almalloc.c to C++ 2018-11-17 19:01:10 -08:00
Chris Robinson
8c69fb046c Always use C++11 atomics 2018-11-17 18:56:00 -08:00
Chris Robinson
1468dee831 Convert bs2b.c to C++ 2018-11-17 18:54:10 -08:00
Chris Robinson
9992cef915 Remove now unneeded inldefs.c
All code using inline functions is now C++, so will generate callable functions
as-needed.
2018-11-17 17:52:23 -08:00
Chris Robinson
7f69dbb517 Convert the mixers to C++ 2018-11-17 17:49:55 -08:00
Chris Robinson
2d4ff77410 Remove ASSUME_ALIGNED
It's become a liability with C++ since it returns void* instead of the input
pointer type, and it doesn't seem to help optimizations anyway (auto-
vectorization still produces unaligned loads and stores).
2018-11-17 17:35:52 -08:00
Chris Robinson
e5442db803 Convert the filters to C++ 2018-11-17 17:22:32 -08:00
Chris Robinson
057b1411f9 Convert ringbuffer.c to C++ 2018-11-17 07:45:10 -08:00
Chris Robinson
ff4219e54e Convert mastering.c to C++ 2018-11-17 07:40:10 -08:00
Chris Robinson
6e6a024058 Convert converter.c to C++ 2018-11-17 07:35:11 -08:00
Chris Robinson
13478126cb Convert the remaining effects to C++ 2018-11-17 07:08:41 -08:00
Chris Robinson
93d96ced9c Convert the dedicated, distortion, echo, and equalizer to C++ 2018-11-17 06:53:20 -08:00
Chris Robinson
1fae8c16a8 Convert threads.c to C++
Also vastly simplify and remove related code.
2018-11-17 05:31:29 -08:00
Chris Robinson
ccdaca80c9 Use standard complex types instead of custom 2018-11-17 04:14:57 -08:00
Chris Robinson
b69b3bd89f Convert fshifter.c to C++ 2018-11-17 01:58:38 -08:00
Chris Robinson
aa66ed0ea5 Convert modulator.c to C++ 2018-11-17 01:53:39 -08:00