OSSIA
Open Scenario System for Interactive Application
Loading...
Searching...
No Matches
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#include <vector>
9
10namespace ossia
11{
12namespace net
13{
14class node_base;
15class parameter_base;
16namespace midi
17{
18class midi_parameter;
19}
20}
21
22struct execution_state;
23class audio_parameter;
24struct typed_value;
25struct audio_port;
26struct value_port;
27struct midi_port;
28struct token_request;
29class state;
30
31struct OSSIA_EXPORT exec_state_facade
32{
33 ossia::execution_state* impl{};
34 [[nodiscard]] int sampleRate() const noexcept;
35 [[nodiscard]] int bufferSize() const noexcept;
36 [[nodiscard]] double modelToSamples() const noexcept;
37 [[nodiscard]] double samplesToModel() const noexcept;
38 [[nodiscard]] int64_t samplesSinceStart() const noexcept;
39 [[nodiscard]] double startDate() const noexcept;
40 [[nodiscard]] double currentDate() const noexcept;
41 [[nodiscard]] ossia::net::node_base* find_node(std::string_view name) const noexcept;
42
43 struct sample_timings
44 {
45 int64_t start_sample;
46 int64_t length;
47 };
48
49 [[nodiscard]] sample_timings timings(const token_request& t) const noexcept;
50
51 void insert(ossia::net::parameter_base& dest, const value_port& v);
52 void insert(ossia::audio_parameter& dest, const audio_port& v);
53 void insert(ossia::net::midi::midi_parameter& dest, const midi_port& v);
54
55 std::vector<ossia::net::node_base*> list_destinations(const destination_t& address);
56 ossia::net::node_base* get_first_destination(const destination_t& address);
57};
58
59}
The node_base class.
Definition node.hpp:48
The parameter_base class.
Definition ossia/network/base/parameter.hpp:48
Definition git_info.h:7