VISR  0.11.7
Versatile Interactive Scene Renderer
audio_sample_type.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_AUDIO_SAMPLE_TYPE_HPP_INCLUDED
4 #define VISR_AUDIO_SAMPLE_TYPE_HPP_INCLUDED
5 
6 #include "export_symbols.hpp"
7 
8 #include <complex>
9 #include <cstdint>
10 #include <cstddef>
11 
17 #define VISR_AUDIO_SAMPLE_TYPE_DEFINITION( TypeParameter, IdParameter )\
18 template<> struct TypeToId<TypeParameter> { static constexpr Id id = IdParameter; };\
19 template<> struct IdToType<IdParameter> { using Type = TypeParameter; };
20 
21 namespace visr
22 {
23 
27 namespace AudioSampleType
28 {
35  enum Id
36  {
37  floatId = 0,
38  doubleId = 1,
40  uint8Id = 3,
41  int8Id = 4,
42  uint16Id = 5,
43  int16Id = 6,
44  uint32Id = 7,
45  int32Id = 8,
48  };
49 
54  template< AudioSampleType::Id id > struct IdToType {};
55 
60  template< typename > struct TypeToId {};
61 
65  VISR_CORE_LIBRARY_SYMBOL std::size_t typeSize( Id id );
66 
81  VISR_AUDIO_SAMPLE_TYPE_DEFINITION( std::complex<double>, complexDoubleId )
83 }
84 
85 } // namespace visr
86 
87 #endif // #ifndef VISR_AUDIO_SAMPLE_TYPE_HPP_INCLUDED
Definition: audio_sample_type.hpp:42
Definition: audio_sample_type.hpp:46
Definition: audio_sample_type.hpp:37
Definition: audio_sample_type.hpp:47
#define VISR_AUDIO_SAMPLE_TYPE_DEFINITION(TypeParameter, IdParameter)
Definition: audio_sample_type.hpp:17
std::size_t typeSize(Id id)
Definition: audio_sample_type.cpp:14
Definition: audio_sample_type.hpp:44
Definition: audio_sample_type.hpp:43
Definition: options.cpp:10
Id
Definition: audio_sample_type.hpp:35
Definition: audio_sample_type.hpp:54
Definition: audio_sample_type.hpp:39
Definition: audio_sample_type.hpp:60
Definition: audio_sample_type.hpp:41
Definition: audio_sample_type.hpp:40
Definition: audio_sample_type.hpp:45
Definition: audio_sample_type.hpp:38