//$ nobt //$ nocpp /** * @file r8bconf.h * * @brief The "configuration" inclusion file you can modify. * * This is the "configuration" inclusion file for the "r8brain-free-src" * sample rate converter. You may redefine the macros here as you see fit. * * r8brain-free-src Copyright (c) 2013-2014 Aleksey Vaneev * See the "License.txt" file for license. */ #ifndef R8BCONF_INCLUDED #define R8BCONF_INCLUDED #if defined( _WIN32 ) || defined( _WIN64 ) #define R8B_WIN 1 #elif defined( __APPLE__ ) #define R8B_MAC 1 #else // defined( __APPLE__ ) #define R8B_LNX 1 // Assume Linux (Unix) platform by default. #endif // defined( __APPLE__ ) #if !defined( R8B_FLTLEN ) /** * This macro defines the default fractional delay filter length. Macro is * used by the r8b::CDSPResampler class. */ #define R8B_FLTLEN 28 #endif // !defined( R8B_FLTLEN ) #if !defined( R8B_FLTFRACS ) /** * This macro defines the default number of fractional delay filters that * are sampled by the filter bank. Macro is used by the r8b::CDSPResampler * class. In order to get consistent results when resampling to/from * different sample rates, it is suggested to set this macro to a suitable * prime number. */ #define R8B_FLTFRACS 1733 #endif // !defined( R8B_FLTFRACS ) #if !defined( R8B_IPP ) /** * Set the R8B_IPP macro definition to 1 to enable the use of Intel IPP's * fast Fourier transform functions. Also uncomment and correct the IPP * header inclusion macros. * * Do not forget to call the ippInit() function at the start of the * application, before using this library's functions. */ #define R8B_IPP 0 // #include // #include #endif // !defined( R8B_IPP ) #if !defined( R8BASSERT ) /** * Assertion macro used to check for certain run-time conditions. By * default no action is taken if assertion fails. * * @param e Expression to check. */ #define R8BASSERT( e ) #endif // !defined( R8BASSERT ) #if !defined( R8BCONSOLE ) /** * Console output macro, used to output various resampler status strings, * including filter design parameters, convolver parameters. * * @param e Expression to send to the console, usually consists of a * standard "printf" format string followed by several parameters * (__VA_ARGS__). */ #define R8BCONSOLE( ... ) #endif // !defined( R8BCONSOLE ) #if !defined( R8B_BASECLASS ) /** * Macro defines the name of the class from which all classes that are * designed to be created on heap are derived. The default * r8b::CStdClassAllocator class uses "stdlib" memory allocation * functions. * * The classes that are best placed on stack or as class members are not * derived from any class. */ #define R8B_BASECLASS :: r8b :: CStdClassAllocator #endif // !defined( R8B_BASECLASS ) #if !defined( R8B_MEMALLOCCLASS ) /** * Macro defines the name of the class that implements raw memory * allocation functions, see the r8b::CStdMemAllocator class for details. */ #define R8B_MEMALLOCCLASS :: r8b :: CStdMemAllocator #endif // !defined( R8B_MEMALLOCCLASS ) #if !defined( R8B_FILTER_CACHE_MAX ) /** * This macro specifies the number of filters kept in the cache at most. * The actual number can be higher if many different filters are in use at * the same time. */ #define R8B_FILTER_CACHE_MAX 96 #endif // !defined( R8B_FILTER_CACHE_MAX ) #if !defined( R8B_FLTTEST ) /** * This macro, when equal to 1, enables fractional delay filter bank * testing: in this mode the filter bank becomes dynamic member of the * CDSPFracInterpolator object instead of being a global static object. */ #define R8B_FLTTEST 0 #endif // !defined( R8B_FLTTEST ) #endif // R8BCONF_INCLUDED