Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
plugin_importer.h
1// SPDX-FileCopyrightText: © 2025 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "actions/track_creator.h"
7#include "plugins/plugin_factory.h"
8#include "structure/tracks/track.h"
9#include "undo/undo_stack.h"
10
11#include <QObject>
12
13namespace zrythm::actions
14{
15
16class PluginImporter : public QObject
17{
18 Q_OBJECT
19 QML_ELEMENT
20 QML_UNCREATABLE ("")
21
22public:
23 explicit PluginImporter (
24 undo::UndoStack &undo_stack,
25 plugins::PluginFactory &plugin_factory,
26 const TrackCreator &track_creator,
27 plugins::PluginFactory::InstantiationFinishedHandler
28 instantiation_finished_handler,
29 QObject * parent = nullptr);
30
36 Q_INVOKABLE void
38
39 Q_INVOKABLE void importPluginToGroup (
40 const plugins::PluginDescriptor * descriptor,
41 plugins::PluginGroup * group);
42
43 Q_INVOKABLE void importPluginToTrack (
44 const plugins::PluginDescriptor * descriptor,
46
47private:
59 void import (
60 const plugins::PluginDescriptor * descriptor,
61 std::optional<std::variant<plugins::PluginGroup *, structure::tracks::Track *>>
62 track_or_group);
63
64private:
65 undo::UndoStack &undo_stack_;
66 plugins::PluginFactory &plugin_factory_;
67 const TrackCreator &track_creator_;
68 plugins::PluginFactory::InstantiationFinishedHandler
69 instantiation_finished_handler_;
70};
71
72} // namespace zrythm::actions
Q_INVOKABLE void importPluginToNewTrack(const plugins::PluginDescriptor *descriptor)
Imports a plugin instance from a descriptor.
The PluginDescriptor class provides a set of static utility functions and member functions to work wi...
A flexible container for plugins and nested plugin groups.
Represents a track in the project.
Definition track.h:54