VISR  0.11.1
Versatile Interactive Scene Renderer
channel_object_routing_calculator.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_LIBRCL_CHANNEL_OBJECT_ROUTING_CALCULATOR_HPP_INCLUDED
4 #define VISR_LIBRCL_CHANNEL_OBJECT_ROUTING_CALCULATOR_HPP_INCLUDED
5 
6 #include "export_symbols.hpp"
7 
11 
13 #include <libobjectmodel/object.hpp> // needed basically for type definitions
14 
16 #include <libpml/object_vector.hpp>
18 
19 #include <vector>
20 #include <map>
21 
22 namespace visr
23 {
24 // forward declarations
25 namespace panning
26 {
27 class LoudspeakerArray;
28 }
29 
30 namespace rcl
31 {
32 
36 class VISR_RCL_LIBRARY_SYMBOL ChannelObjectRoutingCalculator: public AtomicComponent
37 {
38 public:
43 
52  explicit ChannelObjectRoutingCalculator( SignalFlowContext const & context,
53  char const * name,
54  CompositeComponent * parent,
55  std::size_t numberOfObjectChannels,
56  panning::LoudspeakerArray const & config );
57 
62 
67 
68  void process() override;
69 
70 private:
77  void process( pml::ObjectVector const & objects, pml::SignalRoutingParameter & routings );
78 
81 
85  std::size_t const cNumberOfObjectChannels;
86 
87  using ChannelLookup = std::map< objectmodel::ChannelObject::OutputChannelId, std::size_t >;
88 
89  ChannelLookup mLookup;
90 };
91 
92 } // namespace rcl
93 } // namespace visr
94 
95 #endif // #ifndef VISR_LIBRCL_CHANNEL_OBJECT_ROUTING_CALCULATOR_HPP_INCLUDED
Definition: channel_object_routing_calculator.hpp:36
Definition: signal_routing_parameter.hpp:32
Definition: options.cpp:10
Definition: atomic_component.hpp:21
SampleType CoefficientType
Definition: channel_object_routing_calculator.hpp:42
Definition: composite_component.hpp:29
Definition: LoudspeakerArray.h:42
Definition: signal_flow_context.hpp:15
float SampleType
Definition: constants.hpp:14
Definition: object_vector.hpp:25