use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
pub type CAMediaTimingFillMode = NSString;
extern_protocol!(
pub unsafe trait CAMediaTiming {
#[method(beginTime)]
unsafe fn beginTime(&self) -> CFTimeInterval;
#[method(setBeginTime:)]
unsafe fn setBeginTime(&self, begin_time: CFTimeInterval);
#[method(duration)]
unsafe fn duration(&self) -> CFTimeInterval;
#[method(setDuration:)]
unsafe fn setDuration(&self, duration: CFTimeInterval);
#[method(speed)]
unsafe fn speed(&self) -> c_float;
#[method(setSpeed:)]
unsafe fn setSpeed(&self, speed: c_float);
#[method(timeOffset)]
unsafe fn timeOffset(&self) -> CFTimeInterval;
#[method(setTimeOffset:)]
unsafe fn setTimeOffset(&self, time_offset: CFTimeInterval);
#[method(repeatCount)]
unsafe fn repeatCount(&self) -> c_float;
#[method(setRepeatCount:)]
unsafe fn setRepeatCount(&self, repeat_count: c_float);
#[method(repeatDuration)]
unsafe fn repeatDuration(&self) -> CFTimeInterval;
#[method(setRepeatDuration:)]
unsafe fn setRepeatDuration(&self, repeat_duration: CFTimeInterval);
#[method(autoreverses)]
unsafe fn autoreverses(&self) -> bool;
#[method(setAutoreverses:)]
unsafe fn setAutoreverses(&self, autoreverses: bool);
#[method_id(@__retain_semantics Other fillMode)]
unsafe fn fillMode(&self) -> Retained<CAMediaTimingFillMode>;
#[method(setFillMode:)]
unsafe fn setFillMode(&self, fill_mode: &CAMediaTimingFillMode);
}
unsafe impl ProtocolType for dyn CAMediaTiming {}
);
extern "C" {
pub static kCAFillModeForwards: &'static CAMediaTimingFillMode;
}
extern "C" {
pub static kCAFillModeBackwards: &'static CAMediaTimingFillMode;
}
extern "C" {
pub static kCAFillModeBoth: &'static CAMediaTimingFillMode;
}
extern "C" {
pub static kCAFillModeRemoved: &'static CAMediaTimingFillMode;
}