VISR  0.11.6
Versatile Interactive Scene Renderer
composite_component.hpp
Go to the documentation of this file.
1 /* Copyright Institute of Sound and Vibration Research - All rights reserved */
2 
3 #ifndef VISR_COMPOSITE_COMPONENT_HPP_INCLUDED
4 #define VISR_COMPOSITE_COMPONENT_HPP_INCLUDED
5 
6 #include "component.hpp"
7 #include "channel_list.hpp"
8 #include "export_symbols.hpp"
9 
10 #include <memory>
11 #include <vector>
12 
13 namespace visr
14 {
15 
16 // Forward declarations
17 class SignalFlowContext;
18 
19 namespace impl
20 {
21 class CompositeComponentImplementation;
22 }
23 
29 class VISR_CORE_LIBRARY_SYMBOL CompositeComponent: public Component
30 {
31 public:
42 
50  explicit CompositeComponent( SignalFlowContext const & context,
51  char const * name,
52  CompositeComponent * parent = nullptr );
53 
58 
64  std::size_t numberOfComponents() const;
65 
71  impl::CompositeComponentImplementation & implementation();
72 
78  impl::CompositeComponentImplementation const & implementation() const;
79 
90  void parameterConnection( char const * sendComponent,
91  char const * sendPort,
92  char const * receiveComponent,
93  char const * receivePort );
94 
100  void parameterConnection( ParameterPortBase & sender,
101  ParameterPortBase & receiver );
102 
124  void audioConnection( char const * sendComponent,
125  char const * sendPort,
126  ChannelList const & sendIndices,
127  char const * receiveComponent,
128  char const * receivePort,
129  ChannelList const & receiveIndices );
130 
147  void audioConnection( AudioPortBase & sendPort,
148  ChannelList const & sendIndices,
149  AudioPortBase & receivePort,
150  ChannelList const & receiveIndices );
151 
161  void audioConnection( AudioPortBase & sendPort,
162  AudioPortBase & receivePort );
163 };
164 
165 } // namespace visr
166 
167 #endif // #ifndef VISR_COMPOSITE_COMPONENT_HPP_INCLUDED
Definition: composite_component_implementation.hpp:24
Definition: audio_port_base.hpp:28
Definition: channel_list.hpp:24
Definition: component.hpp:38
Definition: options.cpp:10
Definition: composite_component.hpp:29
Definition: signal_flow_context.hpp:15
Definition: channel_list.hpp:177
Definition: parameter_port_base.hpp:29