![]() |
r8brain-free-src
High-quality pro audio sample rate converter library
|
The "base" inclusion file with basic classes and functions. More...
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <math.h>
#include "r8bconf.h"
#include <pthread.h>
Go to the source code of this file.
Classes | |
class | r8b::CFixedBuffer< T > |
Templated memory buffer class for element buffers of fixed capacity. More... | |
class | r8b::CPtrKeeper< T > |
Pointer-to-object "keeper" class with automatic deletion. More... | |
class | r8b::CSineGen |
Sine signal generator class. More... | |
class | r8b::CStdClassAllocator |
The default base class for objects created on heap. More... | |
class | r8b::CStdMemAllocator |
The default base class for objects that allocate blocks of memory. More... | |
class | r8b::CSyncKeeper |
A "keeper" class for CSyncObject-based synchronization. More... | |
class | r8b::CSyncObject |
Multi-threaded synchronization object class. More... | |
Namespaces | |
namespace | r8b |
The "r8brain-free-src" library namespace. | |
Macros | |
#define | R8B_2PI 6.28318530717958648 |
#define | R8B_3PI 9.42477796076937972 |
#define | R8B_PI 3.14159265358979324 |
#define | R8B_PId2 1.57079632679489662 |
#define | R8B_VERSION "6.5" |
#define | R8BNOCTOR(ClassName) |
#define | R8BSYNC(SyncObject) R8BSYNC_( SyncObject, __LINE__ ) |
#define | R8BSYNC_(SyncObject, id) R8BSYNC__( SyncObject, id ) |
#define | R8BSYNC__(SyncObject, id) CSyncKeeper SyncKeeper##id( SyncObject ) |
Functions | |
template<typename T > | |
T * | r8b::alignptr (T *const ptr, const uintptr_t align) |
double | r8b::asinh (const double v) |
double | r8b::besselI0 (const double x) |
double | r8b::calcFIRFilterGroupDelay (const double *const flt, const int fltlen, const double th) |
void | r8b::calcFIRFilterResponse (const double *flt, int fltlen, const double th, double &re0, double &im0, const int fltlat=0) |
void | r8b::calcSpline2p8Coeffs (double *const c, const double xm3, const double xm2, const double xm1, const double x0, const double x1, const double x2, const double x3, const double x4) |
void | r8b::calcSpline3p4Coeffs (double *const c, const double *const y) |
void | r8b::calcSpline3p6Coeffs (double *const c, const double *const y) |
void | r8b::calcSpline3p8Coeffs (double *const c, const double xm3, const double xm2, const double xm1, const double x0, const double x1, const double x2, const double x3, const double x4) |
double | r8b::clampr (const double Value, const double minv, const double maxv) |
double | r8b::gauss (const double v) |
int | r8b::getBitOccupancy (const int v) |
template<typename T > | |
T | r8b::max (const T &v1, const T &v2) |
template<typename T > | |
T | r8b::min (const T &v1, const T &v2) |
void | r8b::normalizeFIRFilter (double *const p, const int l, const double DCGain, const int pstep=1) |
double | r8b::pow_a (const double v, const double p) |
double | r8b::sqr (const double x) |
The "base" inclusion file with basic classes and functions.
This is the "base" inclusion file for the "r8brain-free-src" sample rate converter. This inclusion file contains implementations of several small utility classes and functions used by the library.
#define R8B_2PI 6.28318530717958648 |
The R8B_2PI macro equals to "2 * pi" constant, fits 53-bit floating point mantissa.
#define R8B_3PI 9.42477796076937972 |
The R8B_3PI macro equals to "3 * pi" constant, fits 53-bit floating point mantissa.
#define R8B_PI 3.14159265358979324 |
The macro equals to "pi" constant, fits 53-bit floating point mantissa.
#define R8B_PId2 1.57079632679489662 |
The R8B_PId2 macro equals to "pi divided by 2" constant, fits 53-bit floating point mantissa.
#define R8B_VERSION "6.5" |
Macro defines r8brain-free-src version string.
#define R8BNOCTOR | ( | ClassName | ) |
A special macro that defines empty copy-constructor and copy operator with the "private:" prefix. This macro should be used in classes that cannot be copied in a standard C++ way. It is also assumed that objects of such classes are non-relocatable.
This macro does not need to be defined in classes derived from a class where such macro was already used.
ClassName | The name of the class which uses this macro. |
#define R8BSYNC | ( | SyncObject | ) | R8BSYNC_( SyncObject, __LINE__ ) |
The synchronization macro. The R8BSYNC( obj ) macro, which creates and object of the r8b::CSyncKeeper class on stack, should be put before sections of the code that may potentially change data asynchronously with other threads at the same time. The R8BSYNC( obj ) macro "acquires" the synchronization object thus blocking execution of other threads that also use the same R8BSYNC( obj ) macro. The blocked section begins with the R8BSYNC( obj ) macro and finishes at the end of the current C++ code block. Multiple R8BSYNC() macros can be defined within the same code block.
SyncObject | An object of the CSyncObject type that is used for synchronization. |