OpenDAFF C++ API  v1.7
Directional Audio File Format
DAFFDefs.h
Go to the documentation of this file.
1 /*
2  * -------------------------------------------------------------------------------------
3  *
4  * OpenDAFF - A free, open source software package for directional audio data
5  * Copyright 2016 Institute of Technical Acoustics, RWTH Aachen University
6  * OpenDAFF is distributed under the Apache License Version 2.0.
7  *
8  * ------------------------------------------------------------------------------------
9  *
10  */
11 
12 #ifndef IW_DAFF_DEFS
13 #define IW_DAFF_DEFS
14 
15 // Import/export directives
16 #ifdef WIN32
17  // Windows DLL
18  #ifdef DAFF_DLL
19  #ifdef DAFF_DLL_EXPORTS
20  #define DAFF_API __declspec(dllexport)
21  #else
22  #define DAFF_API __declspec(dllimport)
23  #endif
24  #endif
25 #endif
26 
27 // Default directive: None
28 #ifndef DAFF_API
29  #define DAFF_API
30 #endif
31 
32 #include <string>
33 #include <sstream>
34 
35 // Define necessary typedef from stdint.h for Microsoft compilers before Visual C++ 2010
36 #if _MSC_VER < 1600
37 
38 #ifdef WIN32
39 typedef __int8 int8_t;
40 typedef __int16 int16_t;
41 typedef __int32 int32_t;
42 typedef __int64 int64_t;
43 
44 typedef unsigned __int8 uint8_t;
45 typedef unsigned __int16 uint16_t;
46 typedef unsigned __int32 uint32_t;
47 typedef unsigned __int64 uint64_t;
48 #endif
49 
50 #else
51 
52 // On GNU-platforms include stdint.h automatically
53 #include <stdint.h>
54 
55 #endif // _MSC_VER
56 
57 // Define NULL if it is not present
58 #ifndef NULL
59 #define NULL 0
60 #endif // NULL
61 
62 
65 {
71 };
72 
73 
76 {
80 };
81 
82 
85 {
88 };
89 
90 
93 {
95 
96  DAFF_MODAL_ERROR = 10001,
109 };
110 
111 
114 {
117  std::string sVersion;
118 };
119 
120 
123 {
124  int iIndex1;
125  int iIndex2;
126  int iIndex3;
127  int iIndex4;
128 };
129 
130 
132 
139 {
140 public:
141  float fYawAngleDeg;
144 
147  : fYawAngleDeg(0)
148  , fPitchAngleDeg(0)
149  , fRollAngleDeg(0)
150  {};
151 
153 
158  inline DAFFOrientationYPR(float fInitYawAngleDeg, float fInitPitchAngleDeg, float fInitRollAngleDeg)
159  : fYawAngleDeg(fInitYawAngleDeg)
160  , fPitchAngleDeg(fInitPitchAngleDeg)
161  , fRollAngleDeg(fInitRollAngleDeg)
162  {};
163 
165 
168  inline std::string toString() const
169  {
170  std::stringstream ss;
171  // Note: \xF8 => Degree sign
172  ss << "( Y" << fYawAngleDeg << "\xF8, P" << fPitchAngleDeg << "\xF8, R" << fRollAngleDeg << "\xF8 )";
173  return ss.str();
174  };
175 };
176 
177 #endif // IW_DAFF_DEFS
#define DAFF_API
Definition: DAFFDefs.h:29
File has unkown content type (IR, MS, DFT, etc)
Definition: DAFFDefs.h:99
float fPitchAngleDeg
Pitch angle (degrees)
Definition: DAFFDefs.h:142
Discrete Fourier spectrum in the frequency-domain.
Definition: DAFFDefs.h:70
Invalid alpha angles or range problem.
Definition: DAFFDefs.h:100
int iVersionMinor
Minor version (example: 7 for version 1.7)
Definition: DAFFDefs.h:116
Given metadata type is unknown, use bool, int, double, string.
Definition: DAFFDefs.h:106
No error = 0.
Definition: DAFFDefs.h:94
Invalid index (e.g. record index)
Definition: DAFFDefs.h:108
Pure data class that describes the points of a quad by their indices and coordinates.
Definition: DAFFDefs.h:122
Magnitude spectrum defined at discrete frequencies.
Definition: DAFFDefs.h:67
int iVersionMajor
Major version (example: 1 for version 1.7)
Definition: DAFFDefs.h:115
File format version is not supported by this library version.
Definition: DAFFDefs.h:103
DAFFOrientationYPR(float fInitYawAngleDeg, float fInitPitchAngleDeg, float fInitRollAngleDeg)
Initializing constructor.
Definition: DAFFDefs.h:158
Invalid beta angles or range problem.
Definition: DAFFDefs.h:101
DAFF_VIEWS
Views on the data (special spherical coordinate system)
Definition: DAFFDefs.h:84
Magnitude-phase spectrum defined at discrete frequencies.
Definition: DAFFDefs.h:69
Pure data class that covers version information.
Definition: DAFFDefs.h:113
Impulse response (IR) in the time-domain.
Definition: DAFFDefs.h:66
int iIndex1
First index point.
Definition: DAFFDefs.h:124
std::string sVersion
String of version (example: "1.7" for version 1.7)
Definition: DAFFDefs.h:117
DAFF_CONTENT_TYPES
Content types.
Definition: DAFFDefs.h:64
Modal error (e.g. close a file that is not opened)
Definition: DAFFDefs.h:96
std::string toString() const
Return a string of the orientation.
Definition: DAFFDefs.h:168
float fRollAngleDeg
Roll angle (degrees)
Definition: DAFFDefs.h:143
Data reading error of an otherwise valid DAFF file.
Definition: DAFFDefs.h:107
DAFFOrientationYPR()
Default constructor.
Definition: DAFFDefs.h:146
Content parameter invalid (sampling rate, num supporting frequencies, etc)
Definition: DAFFDefs.h:104
16-Bit signed integer
Definition: DAFFDefs.h:77
DAFF_ERROR
Errorcodes.
Definition: DAFFDefs.h:92
Invalid DAFF file, i.e. wrong signature.
Definition: DAFFDefs.h:97
float fYawAngleDeg
Yaw angle (degrees)
Definition: DAFFDefs.h:141
32-Bit floating point
Definition: DAFFDefs.h:79
int iIndex3
Third index point.
Definition: DAFFDefs.h:126
int iIndex2
Second index point.
Definition: DAFFDefs.h:125
Data uses unrecognized or wrong quantization.
Definition: DAFFDefs.h:102
24-Bit signed integer
Definition: DAFFDefs.h:78
int iIndex4
Fourth index point.
Definition: DAFFDefs.h:127
File not found.
Definition: DAFFDefs.h:105
Phase spectrum defined at discrete frequencies.
Definition: DAFFDefs.h:68
File has invalid main header parameter (num channels, etc)
Definition: DAFFDefs.h:98
DAFF_QUANTIZATIONS
Quantization modes.
Definition: DAFFDefs.h:75
Data class for orientations in yaw-pitch-roll (YPR) angles (right-handed OpenGL coordinate system) ...
Definition: DAFFDefs.h:138
Data-related view referring to data spherical coordinates (DSC)
Definition: DAFFDefs.h:86
Object-related view referring to object spherical coordinates (OSC)
Definition: DAFFDefs.h:87
OpenDAFF is a project from the Institute of Technical Acoustics, RWTH Aachen University, Germany.