3#include <ossia/dataflow/audio_port.hpp>
5#include <ossia/detail/pod_vector.hpp>
7#include <ossia/network/base/parameter.hpp>
8#include <ossia/network/value/value.hpp>
12class OSSIA_EXPORT audio_parameter :
public ossia::net::parameter_base
16 ossia::small_vector<std::span<float>, 8> audio;
19 explicit audio_parameter(ossia::net::node_base& n);
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;
27 net::parameter_base&
push_value(
const ossia::value&)
override;
28 net::parameter_base&
push_value(ossia::value&&)
override;
30 ossia::value value()
const override;
31 ossia::value set_value(
const ossia::value&)
override;
32 ossia::value set_value(ossia::value&&)
override;
33 val_type get_value_type() const noexcept override;
34 net::parameter_base& set_value_type(val_type) override;
35 access_mode get_access() const noexcept 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;
39 bounding_mode get_bounding() const noexcept override;
40 net::parameter_base& set_bounding(bounding_mode) override;
43class OSSIA_EXPORT virtual_audio_parameter final : public audio_parameter
46 std::vector<ossia::float_vector> m_audio_data;
49 virtual_audio_parameter(
int num_channels, ossia::net::node_base& n);
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];
62 void push_value(
const audio_port& port)
override;
64 virtual ~virtual_audio_parameter();
67using audio_mapping = ossia::int_vector;
68class OSSIA_EXPORT mapped_audio_parameter final :
public audio_parameter
71 audio_mapping mapping;
72 bool is_output{
false};
73 mapped_audio_parameter(
bool output, audio_mapping m, ossia::net::node_base& n);
75 virtual ~mapped_audio_parameter();
val_type
Enum to represent the types that a value can take.
Definition parameter_properties.hpp:16
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