OSSIA
Open Scenario System for Interactive Application
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
exec_state_facade.hpp
1#pragma once
2#include <ossia/detail/config.hpp>
3
4#include <ossia/dataflow/dataflow_fwd.hpp>
5
6#include <cinttypes>
7#include <string_view>
8
9namespace ossia
10{
11namespace net
12{
13class node_base;
14class parameter_base;
15namespace midi
16{
17class midi_parameter;
18}
19}
20
21struct execution_state;
22class audio_parameter;
23struct typed_value;
24struct audio_port;
25struct value_port;
26struct midi_port;
27struct token_request;
28class state;
29
30struct OSSIA_EXPORT exec_state_facade
31{
32 ossia::execution_state* impl{};
33 [[nodiscard]] int sampleRate() const noexcept;
34 [[nodiscard]] int bufferSize() const noexcept;
35 [[nodiscard]] double modelToSamples() const noexcept;
36 [[nodiscard]] double samplesToModel() const noexcept;
37 [[nodiscard]] int64_t samplesSinceStart() const noexcept;
38 [[nodiscard]] double startDate() const noexcept;
39 [[nodiscard]] double currentDate() const noexcept;
40 [[nodiscard]] ossia::net::node_base* find_node(std::string_view name) const noexcept;
41
42 struct sample_timings
43 {
44 int64_t start_sample;
45 int64_t length;
46 };
47
48 [[nodiscard]] sample_timings timings(const token_request& t) const noexcept;
49
50 void insert(ossia::net::parameter_base& dest, const value_port& v);
51 void insert(ossia::audio_parameter& dest, const audio_port& v);
52 void insert(ossia::net::midi::midi_parameter& dest, const midi_port& v);
53
54 std::vector<ossia::net::node_base*> list_destinations(const destination_t& address);
55 ossia::net::node_base* get_first_destination(const destination_t& address);
56};
57
58}
The node_base class.
Definition node.hpp:48
The parameter_base class.
Definition ossia/network/base/parameter.hpp:48
Definition git_info.h:7