2 #include <Process/Execution/ProcessComponent.hpp>
3 #include <Process/ExecutionContext.hpp>
5 #include <Explorer/DeviceList.hpp>
7 #include <Pd/PdInstance.hpp>
8 #include <Pd/PdProcess.hpp>
10 #include <score/document/DocumentContext.hpp>
11 #include <score/document/DocumentInterface.hpp>
13 #include <ossia/dataflow/graph_node.hpp>
14 #include <ossia/detail/string_view.hpp>
15 #include <ossia/editor/scenario/time_process.hpp>
16 #include <ossia/editor/scenario/time_value.hpp>
18 #include <boost/circular_buffer.hpp>
33 std::shared_ptr<Instance> instance, ossia::string_view folder,
36 const Pd::PatchSpec& spec,
bool midi_in =
true,
bool midi_out =
true);
39 [[nodiscard]] std::string label()
const noexcept
override
41 return "puredata (" + m_file +
")";
44 ossia::outlet* get_outlet(
const char* str)
const;
46 ossia::value_port* get_value_port(
const char* str)
const;
48 ossia::midi_port* get_midi_in()
const;
49 ossia::midi_port* get_midi_out()
const;
51 void run(
const ossia::token_request& t, ossia::exec_state_facade e) noexcept
override;
52 void add_dzero(std::string& s)
const;
54 std::shared_ptr<Instance> m_instance;
56 std::size_t m_audioIns{};
57 std::size_t m_audioOuts{};
58 std::vector<Process::Port*> m_inport, m_outport;
59 std::vector<std::string> m_inmess, m_outmess;
61 std::vector<float> m_inbuf, m_outbuf;
62 std::vector<boost::circular_buffer<float>> m_prev_outbuf;
63 std::size_t m_firstInMessage{}, m_firstOutMessage{};
64 ossia::audio_port* m_audio_inlet{};
65 ossia::audio_port* m_audio_outlet{};
66 ossia::midi_port* m_midi_inlet{};
67 ossia::midi_port* m_midi_outlet{};
73 COMPONENT_METADATA(
"78657f42-3a2a-4b80-8736-8736463442b4")
Definition: Process/Execution/ProcessComponent.hpp:119
Definition: Process/Execution/ProcessComponent.hpp:48
Definition: PdExecutor.hpp:72
Definition: PdExecutor.hpp:30
Definition: PdProcess.hpp:40
Definition: ExecutionContext.hpp:76
Definition: PdProcess.hpp:24
Definition: PortForward.hpp:23
Definition: PortForward.hpp:27