1#[macro_export]
2macro_rules! export_vst3 {
3 () => {
4 #[allow(unused_imports)]
5 pub use $crate::vst3::*;
6 };
7}
8
9#[macro_export]
10macro_rules! export_auv2 {
11 () => {
12 #[allow(unused_imports)]
13 pub use $crate::auv2::*;
14 };
15}
16
17#[cfg(all(target_os = "macos", feature = "auv2"))]
18#[doc(hidden)]
19pub mod auv2 {
20 #[link(name = "clap_wrapper_auv2")]
21 unsafe extern "C" {
22 pub unsafe fn wrapAsAUV2_inst0Factory(
23 desc: *const core::ffi::c_void,
24 ) -> *mut core::ffi::c_void;
25 }
26
27 #[unsafe(no_mangle)]
28 pub unsafe extern "C" fn GetPluginFactoryAUV2(
29 desc: *const core::ffi::c_void,
30 ) -> *mut core::ffi::c_void {
31 unsafe { wrapAsAUV2_inst0Factory(desc) }
32 }
33}
34
35#[cfg(not(all(target_os = "macos", feature = "auv2")))]
36#[doc(hidden)]
37pub mod auv2 {}
38
39#[cfg(feature = "vst3")]
40#[doc(hidden)]
41pub mod vst3 {
42 #[link(name = "clap_wrapper_vst3")]
43 unsafe extern "system" {
44 unsafe fn clap_wrapper_GetPluginFactory() -> *mut core::ffi::c_void;
45 }
46
47 #[link(name = "clap_wrapper_vst3")]
48 #[cfg(all(target_family = "unix", not(target_os = "macos")))]
49 unsafe extern "C" {
50 unsafe fn clap_wrapper_ModuleEntry(lib_module: *mut core::ffi::c_void) -> bool;
51 unsafe fn clap_wrapper_ModuleExit() -> bool;
52 }
53
54 #[link(name = "clap_wrapper_vst3")]
55 #[cfg(target_os = "macos")]
56 unsafe extern "C" {
57 unsafe fn clap_wrapper_bundleEntry(lib_module: *mut core::ffi::c_void) -> bool;
58 unsafe fn clap_wrapper_bundleExit() -> bool;
59 }
60
61 #[link(name = "clap_wrapper_vst3")]
62 #[cfg(target_os = "windows")]
63 unsafe extern "system" {
64 unsafe fn clap_wrapper_InitDll() -> bool;
65 unsafe fn clap_wrapper_ExitDll() -> bool;
66 }
67
68 #[unsafe(no_mangle)]
69 pub extern "system" fn GetPluginFactory() -> *mut core::ffi::c_void {
70 unsafe { clap_wrapper_GetPluginFactory() }
71 }
72
73 #[unsafe(no_mangle)]
74 #[cfg(all(target_family = "unix", not(target_os = "macos")))]
75 pub extern "C" fn ModuleEntry(lib_module: *mut core::ffi::c_void) -> bool {
76 unsafe { clap_wrapper_ModuleEntry(lib_module) }
77 }
78
79 #[unsafe(no_mangle)]
80 #[cfg(all(target_family = "unix", not(target_os = "macos")))]
81 pub extern "C" fn ModuleExit() -> bool {
82 unsafe { clap_wrapper_ModuleExit() }
83 }
84
85 #[unsafe(no_mangle)]
86 #[cfg(target_os = "macos")]
87 pub extern "C" fn bundleEntry(lib_module: *mut core::ffi::c_void) -> bool {
88 unsafe { clap_wrapper_bundleEntry(lib_module) }
89 }
90
91 #[unsafe(no_mangle)]
92 #[cfg(target_os = "macos")]
93 pub extern "C" fn bundleExit() -> bool {
94 unsafe { clap_wrapper_bundleExit() }
95 }
96
97 #[unsafe(no_mangle)]
98 #[cfg(target_os = "windows")]
99 pub extern "system" fn InitDll() -> bool {
100 unsafe { clap_wrapper_InitDll() }
101 }
102
103 #[unsafe(no_mangle)]
104 #[cfg(target_os = "windows")]
105 pub extern "system" fn ExitDll() -> bool {
106 unsafe { clap_wrapper_ExitDll() }
107 }
108}
109
110#[cfg(not(feature = "vst3"))]
111#[doc(hidden)]
112pub mod vst3 {}