1use lv2_raw::*;
2
3type LV2_Handle = LV2Handle;
4type LV2_Descriptor = LV2Descriptor;
5
6#[inline(always)]
13pub unsafe fn lilv_instance_get_uri(
14 instance: *const crate::LilvInstance,
15) -> *const std::os::raw::c_char {
16 instance
17 .as_ref()
18 .iter()
19 .flat_map(|i| i.lv2_descriptor.as_ref())
20 .map(|d| d.uri)
21 .next()
22 .unwrap_or(std::ptr::null())
23}
24
25#[inline(always)]
32pub unsafe fn lilv_instance_connect_port(
33 instance: *mut crate::LilvInstance,
34 port_index: u32,
35 data_location: *mut ::std::os::raw::c_void,
36) {
37 if let Some(instance) = instance.as_mut() {
38 if let Some(descriptor) = instance.lv2_descriptor.as_ref() {
39 (descriptor.connect_port)(instance.lv2_handle, port_index, data_location);
40 }
41 }
42}
43
44pub unsafe fn lilv_instance_activate(instance: *const crate::LilvInstance) {
52 if let Some(instance) = instance.as_ref() {
53 if let Some(descriptor) = instance.lv2_descriptor.as_ref() {
54 if let Some(activate_fn) = descriptor.activate {
55 (activate_fn)(instance.lv2_handle);
56 }
57 }
58 }
59}
60
61#[inline(always)]
68pub unsafe fn lilv_instance_run(instance: *const crate::LilvInstance, sample_count: u32) {
69 if let Some(instance) = instance.as_ref() {
70 if let Some(descriptor) = instance.lv2_descriptor.as_ref() {
71 (descriptor.run)(instance.lv2_handle, sample_count);
72 }
73 }
74}
75
76#[inline(always)]
83pub unsafe fn lilv_instance_deactivate(instance: *mut crate::LilvInstance) {
84 if let Some(instance) = instance.as_ref() {
85 if let Some(descriptor) = instance.lv2_descriptor.as_ref() {
86 if let Some(deactivate_fn) = descriptor.deactivate {
87 (deactivate_fn)(instance.lv2_handle);
88 }
89 }
90 }
91}
92
93#[inline(always)]
100pub unsafe fn lilv_instance_get_extension_data(
101 instance: *mut crate::LilvInstance,
102 uri: *const u8,
103) -> *const ::std::os::raw::c_void {
104 if let Some(instance) = instance.as_ref() {
105 if let Some(descriptor) = instance.lv2_descriptor.as_ref() {
106 return (descriptor.extension_data)(uri);
107 }
108 };
109 std::ptr::null()
110}
111
112#[inline(always)]
119pub unsafe fn lilv_instance_get_descriptor(
120 instance: *const crate::LilvInstance,
121) -> *const LV2_Descriptor {
122 instance
123 .as_ref()
124 .map(|i| i.lv2_descriptor)
125 .unwrap_or(::std::ptr::null())
126}
127
128#[inline(always)]
137pub unsafe fn lilv_instance_get_handle(instance: *const crate::LilvInstance) -> LV2_Handle {
138 instance
139 .as_ref()
140 .map(|i| i.lv2_handle)
141 .unwrap_or(::std::ptr::null_mut())
142}