use crate::*;
use ae_sys::*;
define_suite!(
UtilitySuite,
PF_UtilitySuite,
kPFUtilitySuite,
kPFUtilitySuiteVersion9
);
impl UtilitySuite {
pub fn new() -> Result<Self, Error> {
crate::Suite::new()
}
pub fn filter_instance_id(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<i32, Error> {
Ok(call_suite_fn_single!(self, GetFilterInstanceID -> A_long, effect_ref.as_ptr())? as i32)
}
pub fn media_timecode(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<(i32, PF_TimeDisplay), Error> {
call_suite_fn_double!(self, GetMediaTimecode -> i32, PF_TimeDisplay, effect_ref.as_ptr())
}
pub fn clip_speed(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<f64, Error> {
call_suite_fn_single!(self, GetClipSpeed -> f64, effect_ref.as_ptr())
}
pub fn clip_duration(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<i32, Error> {
Ok(call_suite_fn_single!(self, GetClipDuration -> A_long, effect_ref.as_ptr())? as i32)
}
pub fn clip_start(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<i32, Error> {
Ok(call_suite_fn_single!(self, GetClipStart -> A_long, effect_ref.as_ptr())? as i32)
}
pub fn unscaled_clip_duration(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<i32, Error> {
Ok(call_suite_fn_single!(self, GetUnscaledClipDuration -> A_long, effect_ref.as_ptr())? as i32)
}
pub fn unscaled_clip_start(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<i32, Error> {
Ok(call_suite_fn_single!(self, GetUnscaledClipStart -> A_long, effect_ref.as_ptr())? as i32)
}
pub fn track_item_start(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<i32, Error> {
Ok(call_suite_fn_single!(self, GetTrackItemStart -> A_long, effect_ref.as_ptr())? as i32)
}
pub fn media_field_type(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<prFieldType, Error> {
call_suite_fn_single!(self, GetMediaFieldType -> prFieldType, effect_ref.as_ptr())
}
pub fn media_frame_rate(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<PrTime, Error> {
call_suite_fn_single!(self, GetMediaFrameRate -> PrTime, effect_ref.as_ptr())
}
pub fn containing_timeline_id(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<PrTimelineID, Error> {
call_suite_fn_single!(self, GetContainingTimelineID -> PrTimelineID, effect_ref.as_ptr())
}
pub fn clip_name(&self, effect_ref: impl AsPtr<PF_ProgPtr>, get_master_clip_name: bool) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetClipName -> PrSDKString, effect_ref.as_ptr(), get_master_clip_name as _)?).into())
}
pub fn effect_wants_checked_out_frames_to_match_render_pixel_format(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<(), Error> {
call_suite_fn!(self, EffectWantsCheckedOutFramesToMatchRenderPixelFormat, effect_ref.as_ptr())
}
pub fn set_effect_depends_on_clip_name(&self, effect_ref: impl AsPtr<PF_ProgPtr>, depends_on_clip_name: bool) -> Result<(), Error> {
call_suite_fn!(self, EffectDependsOnClipName, effect_ref.as_ptr(), depends_on_clip_name as _)
}
pub fn set_effect_instance_name(&self, effect_ref: impl AsPtr<PF_ProgPtr>, name: &str) -> Result<(), Error> {
let pr_string = PrStringSuite::new()?.allocate_from_utf8(name)?;
call_suite_fn!(self, SetEffectInstanceName, effect_ref.as_ptr(), &pr_string)
}
pub fn file_name(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetFileName -> PrSDKString, effect_ref.as_ptr())?).into())
}
pub fn original_clip_frame_rate(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<PrTime, Error> {
call_suite_fn_single!(self, GetOriginalClipFrameRate -> PrTime, effect_ref.as_ptr())
}
pub fn source_track_media_timecode(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, apply_transform: bool, add_start_time_offset: bool) -> Result<A_long, Error> {
call_suite_fn_single!(self, GetSourceTrackMediaTimecode -> A_long, effect_ref.as_ptr(), layer_param_index, apply_transform, add_start_time_offset)
}
pub fn source_track_clip_name(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, get_master_clip_name: bool) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetSourceTrackClipName -> PrSDKString, effect_ref.as_ptr(), layer_param_index, get_master_clip_name as _)?).into())
}
pub fn source_track_file_name(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetSourceTrackFileName -> PrSDKString, effect_ref.as_ptr(), layer_param_index)?).into())
}
pub fn set_effect_depends_on_clip_name2(&self, effect_ref: impl AsPtr<PF_ProgPtr>, depends_on_clip_name: bool, layer_param_index: u8) -> Result<(), Error> {
call_suite_fn!(self, EffectDependsOnClipName2, effect_ref.as_ptr(), layer_param_index, depends_on_clip_name as _)
}
pub fn media_timecode2(&self, effect_ref: impl AsPtr<PF_ProgPtr>, apply_trim: bool) -> Result<(i32, PF_TimeDisplay), Error> {
call_suite_fn_double!(self, GetMediaTimecode2 -> i32, PF_TimeDisplay, effect_ref.as_ptr(), apply_trim)
}
pub fn source_track_media_timecode2(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, apply_transform: bool, add_start_time_offset: bool, sequence_time: PrTime) -> Result<A_long, Error> {
call_suite_fn_single!(self, GetSourceTrackMediaTimecode2 -> A_long, effect_ref.as_ptr(), layer_param_index, apply_transform, add_start_time_offset, sequence_time)
}
pub fn source_track_clip_name2(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, get_master_clip_name: bool, sequence_time: PrTime) -> Result<String, Error> {
let mut val: PrSDKString = unsafe { std::mem::zeroed() };
call_suite_fn!(self, GetSourceTrackClipName2, effect_ref.as_ptr(), layer_param_index, get_master_clip_name as _, &mut val, sequence_time)?;
Ok(PrString(val).into())
}
pub fn source_track_file_name2(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, sequence_time: PrTime) -> Result<String, Error> {
let mut val: PrSDKString = unsafe { std::mem::zeroed() };
call_suite_fn!(self, GetSourceTrackFileName2, effect_ref.as_ptr(), layer_param_index, &mut val, sequence_time)?;
Ok(PrString(val).into())
}
pub fn comment_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetCommentString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn log_note_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetLogNoteString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn camera_roll_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetCameraRollString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn client_metadata_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetClientMetadataString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn daily_roll_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetDailyRollString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn description_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetDescriptionString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn lab_roll_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetLabRollString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn scene_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetSceneString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn shot_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetShotString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn tape_name_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetTapeNameString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn video_codec_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetVideoCodecString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn good_metadata_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetGoodMetadataString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn sound_roll_string(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<String, Error> {
Ok(PrString(call_suite_fn_single!(self, GetSoundRollString -> PrSDKString, effect_ref.as_ptr(), source_track, sequence_time)?).into())
}
pub fn sequence_time(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<PrTime, Error> {
call_suite_fn_single!(self, GetSequenceTime -> PrTime, effect_ref.as_ptr())
}
pub fn sound_timecode(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<i32, Error> {
Ok(call_suite_fn_single!(self, GetSoundTimecode -> A_long, effect_ref.as_ptr(), source_track, sequence_time)? as i32)
}
pub fn original_clip_frame_rate_for_source_track(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32) -> Result<PrTime, Error> {
call_suite_fn_single!(self, GetOriginalClipFrameRateForSourceTrack -> PrTime, effect_ref.as_ptr(), source_track)
}
pub fn media_frame_rate_for_source_track(&self, effect_ref: impl AsPtr<PF_ProgPtr>, source_track: i32, sequence_time: PrTime) -> Result<PrTime, Error> {
call_suite_fn_single!(self, GetMediaFrameRateForSourceTrack -> PrTime, effect_ref.as_ptr(), source_track, sequence_time)
}
pub fn source_track_media_actual_start_time(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, sequence_time: PrTime) -> Result<PrTime, Error> {
call_suite_fn_single!(self, GetSourceTrackMediaActualStartTime -> PrTime, effect_ref.as_ptr(), layer_param_index, sequence_time)
}
pub fn is_source_track_media_trimmed(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, sequence_time: PrTime) -> Result<bool, Error> {
call_suite_fn_single!(self, IsSourceTrackMediaTrimmed -> bool, effect_ref.as_ptr(), layer_param_index, sequence_time)
}
pub fn is_media_trimmed(&self, effect_ref: impl AsPtr<PF_ProgPtr>, sequence_time: PrTime) -> Result<bool, Error> {
call_suite_fn_single!(self, IsMediaTrimmed -> bool, effect_ref.as_ptr(), sequence_time)
}
pub fn is_track_empty(&self, effect_ref: impl AsPtr<PF_ProgPtr>, layer_param_index: u32, sequence_time: PrTime) -> Result<bool, Error> {
call_suite_fn_single!(self, IsTrackEmpty -> bool, effect_ref.as_ptr(), layer_param_index, sequence_time)
}
pub fn is_track_item_effect_applied_to_synthetic(&self, effect_ref: impl AsPtr<PF_ProgPtr>) -> Result<bool, Error> {
call_suite_fn_single!(self, IsTrackItemEffectAppliedToSynthetic -> bool, effect_ref.as_ptr())
}
}