#[macro_use]
mod util;
mod context;
mod descriptor;
mod factory;
pub mod features;
mod wrapper;
pub use self::factory::Factory;
pub use clap_sys::entry::clap_plugin_entry;
pub use clap_sys::factory::plugin_factory::CLAP_PLUGIN_FACTORY_ID;
pub use clap_sys::version::CLAP_VERSION;
pub use lazy_static::lazy_static;
#[macro_export]
macro_rules! nih_export_clap {
($plugin_ty:ty) => {
#[doc(hidden)]
mod clap {
use super::*;
::nih_plug::wrapper::clap::lazy_static! {
static ref FACTORY: ::nih_plug::wrapper::clap::Factory<$plugin_ty> = ::nih_plug::wrapper::clap::Factory::default();
}
pub extern "C" fn init(_plugin_path: *const ::std::os::raw::c_char) -> bool {
::nih_plug::wrapper::setup_logger();
true
}
pub extern "C" fn deinit() {}
pub extern "C" fn get_factory(
factory_id: *const ::std::os::raw::c_char,
) -> *const ::std::ffi::c_void {
if !factory_id.is_null()
&& unsafe { ::std::ffi::CStr::from_ptr(factory_id) }
== ::nih_plug::wrapper::clap::CLAP_PLUGIN_FACTORY_ID
{
&(*FACTORY).clap_plugin_factory as *const _ as *const ::std::ffi::c_void
} else {
std::ptr::null()
}
}
}
#[no_mangle]
#[used]
pub static clap_entry: ::nih_plug::wrapper::clap::clap_plugin_entry =
::nih_plug::wrapper::clap::clap_plugin_entry {
clap_version: ::nih_plug::wrapper::clap::CLAP_VERSION,
init: Some(self::clap::init),
deinit: Some(self::clap::deinit),
get_factory: Some(self::clap::get_factory),
};
};
}