after_effects/pf/
external_dependencies.rs1use crate::*;
2
3define_struct_wrapper!(ExternalDependenciesExtra, PF_ExtDependenciesExtra);
4
5impl ExternalDependenciesExtra {
6 pub fn check_type(&self) -> DepCheckType {
7 unsafe { (*self.0).check_type.into() }
8 }
9
10 pub fn set_dependencies_str(&mut self, text: &str) -> Result<(), Error> {
11 let suite = pf::suites::Handle::new()?;
12 let text = std::ffi::CString::new(text).unwrap();
13 let text = text.as_bytes_with_nul();
14 let handle = suite.new_handle(text.len() as _);
15 let ptr = suite.lock_handle(handle);
16 unsafe {
17 std::ptr::copy_nonoverlapping(text.as_ptr(), ptr as *mut u8, text.len());
18 (*self.0).dependencies_strH = handle;
19 }
20 suite.unlock_handle(handle);
21 Ok(())
22 }
23
24 pub fn set_dependencies_data(&mut self, data: Vec<u8>) -> Result<(), Error> {
25 let suite = pf::suites::Handle::new()?;
26 let handle = suite.new_handle(data.len() as _);
27 let ptr = suite.lock_handle(handle);
28 unsafe {
29 std::ptr::copy_nonoverlapping(data.as_ptr(), ptr as *mut u8, data.len());
30 (*self.0).dependencies_strH = handle;
31 }
32 suite.unlock_handle(handle);
33 Ok(())
34 }
35}
36
37impl std::fmt::Debug for ExternalDependenciesExtra {
38 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
39 let mut dbg = f.debug_struct("ExternalDependenciesExtra");
40 dbg.field("check_type", &self.check_type());
41 dbg.finish()
42 }
43}
44
45define_enum! {
46 ae_sys::PF_DepCheckType,
47 DepCheckType {
48 None = ae_sys::PF_DepCheckType_NONE,
49 AllDependencies = ae_sys::PF_DepCheckType_ALL_DEPENDENCIES,
50 MissingDependencies = ae_sys::PF_DepCheckType_MISSING_DEPENDENCIES,
51 }
52}