3 #include <ossia/dataflow/audio_port.hpp>
5 #include <ossia/detail/pod_vector.hpp>
6 #include <ossia/detail/span.hpp>
7 #include <ossia/network/base/parameter.hpp>
8 #include <ossia/network/value/value.hpp>
16 ossia::small_vector<tcb::span<float>, 8> audio;
21 virtual ~audio_parameter();
23 void clone_value(audio_vector& res)
const;
24 virtual void push_value(
const audio_port& port);
26 void pull_value()
override;
33 val_type get_value_type() const noexcept override;
34 net::parameter_base& set_value_type(
val_type) override;
36 net::parameter_base& set_access(
access_mode) override;
37 const domain& get_domain() const noexcept override;
38 net::parameter_base& set_domain(const domain&) override;
43 class OSSIA_EXPORT virtual_audio_parameter final : public audio_parameter
46 std::vector<ossia::float_vector> m_audio_data;
51 void set_buffer_size(
int bs)
53 const auto chan = m_audio_data.size();
55 for(std::size_t i = 0; i < chan; i++)
57 m_audio_data[i].resize(bs);
58 audio[i] = m_audio_data[i];
59 ossia::fill(m_audio_data[i], 0.f);
63 virtual ~virtual_audio_parameter();
66 using audio_mapping = ossia::int_vector;
67 class OSSIA_EXPORT mapped_audio_parameter final :
public audio_parameter
70 audio_mapping mapping;
71 bool is_output{
false};
74 virtual ~mapped_audio_parameter();
The node_base class.
Definition: network/base/node.hpp:48
The parameter_base class.
Definition: ossia/network/base/parameter.hpp:48
The value class.
Definition: value.hpp:173
val_type
Enum to represent the types that a value can take.
Definition: parameter_properties.hpp:16
bounding_mode
Address behaviors at crossing domain boundaries.
Definition: parameter_properties.hpp:56
access_mode
Address behaviors at crossing domain boundaries time.
Definition: parameter_properties.hpp:46
OSSIA_EXPORT void push_value(const ossia::destination &addr, const ossia::value_with_unit &)
Send a value to a given destination.
Definition: ossia/network/base/parameter.cpp:151