OpenDAFF C++ API  v1.7
Directional Audio File Format
Utils.h
Go to the documentation of this file.
1 #ifndef IW_DAFF_INTERNAL_UTILS
2 #define IW_DAFF_INTERNAL_UTILS
3 
4 #include <DAFFDefs.h>
5 
6 // STL includes
7 #include <cmath>
8 #include <string>
9 #include <cstring> // required for size_t
10 #include <stdint.h> // required for int64_t
11 
12 namespace DAFF
13 {
14  // Define necessary roundf for Microsoft compilers
15  #ifdef _MSC_VER
16  #define roundf(x) (x<0?ceil((x)-0.5f):floor((x)+0.5f));
17  #endif // _MSC_VER
18 
19  // --= Complex number conversion =--
20 
21  float cabs(float Re, float Im);
22  float carg(float Re, float Im);
23 
24  // degrees
25  float anglef_proj_0_360_DEG(float alpha);
26  float anglef_mindiff_0_360_DEG(float alpha, float beta);
27  float anglef_mindiff_abs_0_360_DEG(float alpha, float beta);
28 
29  // radiants
30  float anglef_proj_0_2PI(float alpha);
31  float anglef_mindiff_0_2PI(float alpha, float beta);
32  float anglef_mindiff_abs_0_2PI(float alpha, float beta);
33 
34  // --= Endianess conversion functions =--
35 
36  /*
37  * All convert from little endian (used within the DAFF files)
38  * into the systems endianess (little endian -> system endianess)
39  *
40  */
41 
42  extern void (*le2se_2byte)(void* src, size_t count);
43  extern void (*le2se_3byte)(void* src, size_t count);
44  extern void (*le2se_4byte)(void* src, size_t count);
45  extern void (*le2se_8byte)(void* src, size_t count);
46 
47  // --= Memory (de)allocation =--
48 
49  // Allocate/free memory on with a 16-byte boundary
50  void* malloc_aligned16(size_t bytes);
51  void free_aligned16(void* ptr);
52 
53  // --= Sample type conversion =--
54 
56  void stc_sint16_to_float(float* dest, const short* src, size_t count, int input_stride=1, int output_stride=1, float gain=1);
57  void stc_sint16_to_float_add(float* dest, const short* src, size_t count, int input_stride=1, int output_stride=1, float gain=1);
58 
60  void stc_sint24_to_float(float* dest, const void* src, size_t count, int input_stride=1, int output_stride=1, float gain=1);
61  void stc_sint24_to_float_add(float* dest, const void* src, size_t count, int input_stride=1, int output_stride=1, float gain=1);
62 
63 
64  // --= File system functions =--
65 
67  int64_t getFileSize(const std::string& sFilename);
68 
69 
70 } // End of namespace "DAFF"
71 
72 #endif // IW_DAFF_INTERNAL_UTILS
float anglef_proj_0_2PI(float alpha)
Definition: Utils.cpp:27
int64_t getFileSize(const std::string &sFilename)
Größe einer Datei in Bytes zurückgeben (Gibt im Fehlerfall -1 zurück)
Definition: Utils.cpp:331
float anglef_proj_0_360_DEG(float alpha)
Definition: Utils.cpp:33
void(* le2se_2byte)(void *src, size_t count)
Definition: Utils.cpp:100
void(* le2se_3byte)(void *src, size_t count)
Definition: Utils.cpp:101
float anglef_mindiff_0_360_DEG(float alpha, float beta)
Definition: Utils.cpp:49
float anglef_mindiff_0_2PI(float alpha, float beta)
Definition: Utils.cpp:37
void stc_sint16_to_float(float *dest, const short *src, size_t count, int input_stride, int output_stride, float gain)
Convert signed integer 16-Bit -> single precision floating point (32-Bit)
Definition: Utils.cpp:212
void stc_sint24_to_float(float *dest, const void *src, size_t count, int input_stride, int output_stride, float gain)
Convert signed integer 24-Bit -> single precision floating point (32-Bit)
Definition: Utils.cpp:225
float carg(float Re, float Im)
Definition: Utils.cpp:64
void stc_sint16_to_float_add(float *dest, const short *src, size_t count, int input_stride, int output_stride, float gain)
Definition: Utils.cpp:219
float anglef_mindiff_abs_0_360_DEG(float alpha, float beta)
Definition: Utils.cpp:53
void(* le2se_4byte)(void *src, size_t count)
Definition: Utils.cpp:102
Definition: DAFFUtils.h:20
float cabs(float Re, float Im)
Definition: Utils.cpp:60
void * malloc_aligned16(size_t bytes)
Definition: Utils.cpp:185
float anglef_mindiff_abs_0_2PI(float alpha, float beta)
Definition: Utils.cpp:45
void stc_sint24_to_float_add(float *dest, const void *src, size_t count, int input_stride, int output_stride, float gain)
Definition: Utils.cpp:276
void(* le2se_8byte)(void *src, size_t count)
Definition: Utils.cpp:103
void free_aligned16(void *ptr)
Definition: Utils.cpp:201
OpenDAFF is a project from the Institute of Technical Acoustics, RWTH Aachen University, Germany.