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
28 #include "CarlaNative.h"
29 #include "CarlaHost.h"
30 #include "CarlaUtils.h"
33 * Get the native plugin descriptor for the carla-rack plugin.
35 CARLA_API_EXPORT
const NativePluginDescriptor
* carla_get_native_rack_plugin(void);
38 * Get the native plugin descriptor for the carla-patchbay plugin.
40 CARLA_API_EXPORT
const NativePluginDescriptor
* carla_get_native_patchbay_plugin(void);
43 * Get the native plugin descriptor for the carla-patchbay16 plugin.
45 CARLA_API_EXPORT
const NativePluginDescriptor
* carla_get_native_patchbay16_plugin(void);
48 * Get the native plugin descriptor for the carla-patchbay32 plugin.
50 CARLA_API_EXPORT
const NativePluginDescriptor
* carla_get_native_patchbay32_plugin(void);
53 * Get the native plugin descriptor for the carla-patchbay64 plugin.
55 CARLA_API_EXPORT
const NativePluginDescriptor
* carla_get_native_patchbay64_plugin(void);
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);
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);
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);
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);
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
);
85 * Free memory created during carla_create_native_plugin_host_handle.
87 CARLA_API_EXPORT
void carla_host_handle_free(CarlaHostHandle handle
);
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
);
98 #endif /* CARLA_NATIVE_PLUGIN_H_INCLUDED */