Cleanup
[carla.git] / source / includes / CarlaNativePlugin.h
blob80708332266294a2309840fc105c924598895c01
1 /*
2 * Carla Plugin Host
3 * Copyright (C) 2011-2023 Filipe Coelho <falktx@falktx.com>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 2 of
8 * the License, or any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * For a full copy of the GNU General Public License see the doc/GPL.txt file.
18 #ifndef CARLA_NATIVE_PLUGIN_H_INCLUDED
19 #define CARLA_NATIVE_PLUGIN_H_INCLUDED
21 #include "CarlaDefines.h"
23 #ifdef STATIC_PLUGIN_TARGET
24 # undef CARLA_PLUGIN_EXPORT
25 # define CARLA_PLUGIN_EXPORT CARLA_API_EXPORT
26 #endif
28 #include "CarlaNative.h"
29 #include "CarlaHost.h"
30 #include "CarlaUtils.h"
32 /*!
33 * Get the native plugin descriptor for the carla-rack plugin.
35 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_rack_plugin(void);
37 /*!
38 * Get the native plugin descriptor for the carla-patchbay plugin.
40 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_plugin(void);
42 /*!
43 * Get the native plugin descriptor for the carla-patchbay16 plugin.
45 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay16_plugin(void);
47 /*!
48 * Get the native plugin descriptor for the carla-patchbay32 plugin.
50 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay32_plugin(void);
52 /*!
53 * Get the native plugin descriptor for the carla-patchbay64 plugin.
55 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay64_plugin(void);
57 /*!
58 * Get the native plugin descriptor for the carla-patchbay-cv plugin.
60 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_cv_plugin(void);
62 /*!
63 * Get the native plugin descriptor for the carla-patchbay-cv8 plugin.
65 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_cv8_plugin(void);
67 /*!
68 * Get the native plugin descriptor for the carla-patchbay-cv32 plugin.
70 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_cv32_plugin(void);
72 /*!
73 * Get the native plugin descriptor for the carla-patchbay OBS plugin.
75 CARLA_API_EXPORT const NativePluginDescriptor* carla_get_native_patchbay_obs_plugin(void);
77 /*!
78 * Create a CarlaHostHandle suitable for CarlaHost API calls.
79 * Returned value must be freed by the caller when no longer needed.
81 CARLA_API_EXPORT CarlaHostHandle carla_create_native_plugin_host_handle(const NativePluginDescriptor* desc,
82 NativePluginHandle handle);
84 /*!
85 * Free memory created during carla_create_native_plugin_host_handle.
87 CARLA_API_EXPORT void carla_host_handle_free(CarlaHostHandle handle);
89 #ifdef __cplusplus
90 /*!
91 * Get the internal CarlaEngine instance.
92 * @deprecated Please use carla_create_native_plugin_host_handle instead
94 CARLA_API_EXPORT CARLA_BACKEND_NAMESPACE::CarlaEngine* carla_get_native_plugin_engine(const NativePluginDescriptor* desc,
95 NativePluginHandle handle);
96 #endif
98 #endif /* CARLA_NATIVE_PLUGIN_H_INCLUDED */