1#ifndef SIGNALSMITH_DSP_COMMON_H
2#define SIGNALSMITH_DSP_COMMON_H
3
4#ifndef M_PI
5#define M_PI 3.14159265358979323846264338327950288
6#endif
7
8namespace signalsmith {
9 /** @defgroup Common Common
10 @brief Definitions and helper classes used by the rest of the library
11
12 @{
13 @file
14 */
15
16#define SIGNALSMITH_DSP_VERSION_MAJOR 1
17#define SIGNALSMITH_DSP_VERSION_MINOR 6
18#define SIGNALSMITH_DSP_VERSION_PATCH 0
19#define SIGNALSMITH_DSP_VERSION_STRING "1.6.0"
20
21 /** Version compatability check.
22 \code{.cpp}
23 static_assert(signalsmith::version(1, 4, 1), "version check");
24 \endcode
25 ... or use the equivalent `SIGNALSMITH_DSP_VERSION_CHECK`.
26 Major versions are not compatible with each other. Minor and patch versions are backwards-compatible.
27 */
28 constexpr bool versionCheck(int major, int minor, int patch=0) {
29 return major == SIGNALSMITH_DSP_VERSION_MAJOR
30 && (SIGNALSMITH_DSP_VERSION_MINOR > minor
31 || (SIGNALSMITH_DSP_VERSION_MINOR == minor && SIGNALSMITH_DSP_VERSION_PATCH >= patch));
32 }
33
34/// Check the library version is compatible (semver).
35#define SIGNALSMITH_DSP_VERSION_CHECK(major, minor, patch) \
36 static_assert(::signalsmith::versionCheck(major, minor, patch), "signalsmith library version is " SIGNALSMITH_DSP_VERSION_STRING);
37
38/** @} */
39} // signalsmith::
40#else
41// If we've already included it, check it's the same version
42static_assert(SIGNALSMITH_DSP_VERSION_MAJOR == 1 && SIGNALSMITH_DSP_VERSION_MINOR == 6 && SIGNALSMITH_DSP_VERSION_PATCH == 0, "multiple versions of the Signalsmith DSP library");
43#endif // include guard
44

source code of qtmultimedia/src/3rdparty/signalsmith-stretch/dsp/common.h