2#include <Process/Execution/ProcessComponent.hpp>
3#include <Process/GenericProcessFactory.hpp>
4#include <Process/Process.hpp>
5#include <Process/ProcessMetadata.hpp>
6#include <Process/Script/ScriptEditor.hpp>
8#include <Scenario/Commands/ScriptEditCommand.hpp>
10#include <Control/DefaultEffectItem.hpp>
11#include <Effect/EffectFactory.hpp>
12#include <JitCpp/EditScript.hpp>
14#include <ossia/dataflow/execution_state.hpp>
15#include <ossia/dataflow/graph_node.hpp>
16#include <ossia/dataflow/node_process.hpp>
23 , Jit::JitEffectModel,
"0a3b49d6-4ce7-4668-aec3-9505b6ee1a60",
"Jit",
"JIT",
24 Process::ProcessCategory::Script,
"Script",
"JIT compilation process",
"ossia score",
25 QStringList{}, {}, {},
26 QUrl(
"https://ossia.io/score-docs/processes/cpp_jit.html#c-jit"),
32using NodeCompiler = Driver;
33using NodeFactory = std::function<ossia::graph_node*()>;
38 friend class JitUpdateUI;
39 SCORE_SERIALIZE_FRIENDS
40 PROCESS_METADATA_IMPL(JitEffectModel)
42 W_OBJECT(JitEffectModel)
47 ~JitEffectModel()
override;
54 bool validate(
const QString& txt)
const noexcept;
56 const QString& script()
const {
return m_text; }
58 void scriptChanged(
const QString& txt) W_SIGNAL(scriptChanged, txt);
59 void programChanged() W_SIGNAL(programChanged);
61 QString prettyName() const noexcept override;
63 std::shared_ptr<NodeFactory> factory;
65 void errorMessage(
int line, const QString& e) W_SIGNAL(errorMessage, line, e);
66 PROPERTY(QString, script READ script WRITE setScript NOTIFY scriptChanged)
68 std::shared_ptr<NodeFactory> getJitFactory();
70 QString effect() const noexcept override;
71 void loadPreset(const
Process::Preset& preset) override;
72 Process::Preset savePreset() const noexcept override;
75 [[nodiscard]]
Process::ScriptChangeResult reload();
77 std::unique_ptr<NodeCompiler> m_compiler;
82 static constexpr const char* language =
"C++";
88 JitEffectModel, JitEffectModel::p_script, LanguageSpec>>;
95EffectProcessFactory_T<Jit::JitEffectModel>::customConstructionData() const noexcept;
99EffectProcessFactory_T<Jit::JitEffectModel>::descriptor(QString d) const noexcept;
102Process::Descriptor EffectProcessFactory_T<Jit::JitEffectModel>::descriptor(
103 const
Process::ProcessModel& d) const noexcept;
111 COMPONENT_METADATA(
"122ceaeb-cbcc-4808-91f2-1929e3ca8292")
114 static constexpr bool is_unique =
true;
128 SCORE_COMMAND_DECL(CommandFactoryName(),
EditScript,
"Edit a C++ program")
140 using Jit::EditScript::EditScript;
Definition DataStreamVisitor.hpp:202
Definition JitModel.hpp:110
Definition Process/Execution/ProcessComponent.hpp:123
Definition JSONVisitor.hpp:423
Definition JitModel.hpp:127
Definition EffectFactory.hpp:86
Definition EffectFactory.hpp:14
The Process class.
Definition score-lib-process/Process/Process.hpp:62
Definition ScriptEditor.hpp:49
Definition ScriptEditCommand.hpp:16
The id_base_t class.
Definition Identifier.hpp:59
Components used for the execution of a score.
Definition ProcessComponent.cpp:14
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
@ DynamicPorts
The process has a variable structure, e.g. its ports can change dynamically.
Definition ProcessFlags.hpp:59
@ ScriptEditingSupported
The process is based on user-editable source code (JS, Faust, etc.)
Definition ProcessFlags.hpp:70
Base toolkit upon which the software is built.
Definition Application.cpp:111
Definition ExecutionContext.hpp:196
Definition Process/Execution/ProcessComponent.hpp:93
Definition ScriptProcess.hpp:14
Definition TimeValue.hpp:21
Definition PropertyCommand.hpp:112