VISR  0.12.0
Versatile Interactive Scene Renderer
biquad_parameter.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_PML_BIQUAD_PARAMETER_HPP_INCLUDED
4 #define VISR_PML_BIQUAD_PARAMETER_HPP_INCLUDED
5 
6 #include "matrix_parameter_config.hpp" // might be a forward declaration
7 
9 
12 
13 #include <boost/property_tree/ptree_fwd.hpp>
14 
15 #include <algorithm>
16 #include <array>
17 #include <initializer_list>
18 #include <iosfwd>
19 #include <stdexcept>
20 #include <vector>
21 
22 namespace visr
23 {
24 namespace pml
25 {
26 
27 namespace // unnamed
28 {
32 template<typename ElementType> struct BiquadMatrixParameterType{};
33 
34 template<> struct BiquadMatrixParameterType<float>
35 {
36  static constexpr const ParameterType ptype() { return detail::compileTimeHashFNV1( "BiquadFloatMatrix" ); }
37 };
38 template<> struct BiquadMatrixParameterType<double>
39 {
40  static constexpr const ParameterType ptype() { return detail::compileTimeHashFNV1( "BiquadDoubleMatrix" ); }
41 };
42 } // unnamed
43 
44 template<typename CoeffType >
45 class BiquadParameterMatrix: public TypedParameterBase<BiquadParameterMatrix<CoeffType>, MatrixParameterConfig, BiquadMatrixParameterType<CoeffType>::ptype() > ,
46  public rbbl::BiquadCoefficientMatrix<CoeffType>
47 {
48 public:
53 
54  explicit BiquadParameterMatrix( MatrixParameterConfig const & config );
55 
56  explicit BiquadParameterMatrix( ParameterConfigBase const & config );
57 
58  virtual ~BiquadParameterMatrix() override;
59 };
60 
61 } // namespace pml
62 } // namespace visr
63 
66 
67 #endif // VISR_PML_BIQUAD_PARAMETER_HPP_INCLUDED
Definition: biquad_parameter.hpp:45
Definition: matrix_parameter_config.hpp:26
uint64_t ParameterType
Definition: parameter_type.hpp:13
constexpr uint64_t compileTimeHashFNV1(const char *s)
Definition: compile_time_hash_fnv1.hpp:25
Definition: options.cpp:10
Definition: parameter_factory.hpp:20
Definition: parameter_config_base.hpp:22
#define DEFINE_PARAMETER_TYPE(ParameterClassType, ParameterId, ParameterConfigType)
Definition: parameter_type.hpp:60
Definition: LoudspeakerArray.h:36