4#ifndef __PLUGINS_CARLA_DISCOVERY_H__
5#define __PLUGINS_CARLA_DISCOVERY_H__
7#include "zrythm-config.h"
13# include "plugins/plugin_descriptor.h"
14# include "utils/types.h"
16# include "carla_wrapper.h"
18namespace zrythm::gui::old_dsp::plugins
21class PluginDescriptor;
23class CarlaDiscoveryStartThread;
34 ZCarlaDiscovery (PluginManager &owner);
36 friend class CarlaDiscoveryStartThread;
38 void start (BinaryType btype, PluginProtocol protocol);
48 static std::unique_ptr<PluginDescriptor>
49 create_au_descriptor_from_info (
const CarlaCachedPluginInfo * info);
51 static std::unique_ptr<PluginDescriptor> descriptor_from_discovery_info (
52 const CarlaPluginDiscoveryInfo * info,
53 std::string_view sha1);
62 static fs::path get_discovery_path (PluginArchitecture arch);
67 std::vector<std::pair<CarlaPluginDiscoveryHandle, bool>> handles_;
69 std::mutex handles_mutex_;
75 PluginManager * owner_ =
nullptr;
78class CarlaDiscoveryStartThread :
public QThread
83 CarlaDiscoveryStartThread (
85 PluginProtocol protocol,
86 ZCarlaDiscovery &self);
88 friend class ZCarlaDiscovery;
94 PluginProtocol protocol_;
95 ZCarlaDiscovery &discovery_;
The PluginManager is responsible for scanning and keeping track of available Plugin's.