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,
42 int index = -1);
43
44 Q_INVOKABLE void importPluginToTrack (
45 const plugins::PluginDescriptor * descriptor,
47
48private:
58 void import (
59 const plugins::PluginDescriptor * descriptor,
60 std::optional<std::variant<plugins::PluginGroup *, structure::tracks::Track *>>
61 track_or_group,
62 std::optional<int> index = std::nullopt);
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