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