clap_wrapper/
lib.rs

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 {}