pub trait PadExtManual: 'static {
Show 44 methods
// Required methods
fn add_probe<F>(&self, mask: PadProbeType, func: F) -> Option<PadProbeId>
where F: Fn(&Self, &mut PadProbeInfo<'_>) -> PadProbeReturn + Send + Sync + 'static;
fn remove_probe(&self, id: PadProbeId);
fn pull_range(&self, offset: u64, size: u32) -> Result<Buffer, FlowError>;
fn pull_range_fill(
&self,
offset: u64,
buffer: &mut BufferRef,
size: u32
) -> Result<(), FlowError>;
fn range(&self, offset: u64, size: u32) -> Result<Buffer, FlowError>;
fn range_fill(
&self,
offset: u64,
buffer: &mut BufferRef,
size: u32
) -> Result<(), FlowError>;
fn peer_query(&self, query: &mut QueryRef) -> bool;
fn query(&self, query: &mut QueryRef) -> bool;
fn proxy_query_caps(&self, query: &mut QueryRef) -> bool;
fn proxy_query_accept_caps(&self, query: &mut QueryRef) -> bool;
fn push_event(&self, event: impl Into<Event>) -> bool;
fn send_event(&self, event: impl Into<Event>) -> bool;
fn iterate_internal_links(&self) -> Iterator<Pad>;
fn stream_lock(&self) -> StreamLock<'_>;
unsafe fn set_activate_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>) -> Result<(), LoggableError> + Send + Sync + 'static;
unsafe fn set_activatemode_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, PadMode, bool) -> Result<(), LoggableError> + Send + Sync + 'static;
unsafe fn set_chain_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, Buffer) -> Result<FlowSuccess, FlowError> + Send + Sync + 'static;
unsafe fn set_chain_list_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, BufferList) -> Result<FlowSuccess, FlowError> + Send + Sync + 'static;
unsafe fn set_event_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, Event) -> bool + Send + Sync + 'static;
unsafe fn set_event_full_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, Event) -> Result<FlowSuccess, FlowError> + Send + Sync + 'static;
unsafe fn set_getrange_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, u64, Option<&mut BufferRef>, u32) -> Result<PadGetRangeSuccess, FlowError> + Send + Sync + 'static;
unsafe fn set_iterate_internal_links_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>) -> Iterator<Pad> + Send + Sync + 'static;
unsafe fn set_link_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, &Pad) -> Result<PadLinkSuccess, PadLinkError> + Send + Sync + 'static;
unsafe fn set_query_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>, &mut QueryRef) -> bool + Send + Sync + 'static;
unsafe fn set_unlink_function<F>(&self, func: F)
where F: Fn(&Self, Option<&Object>) + Send + Sync + 'static;
fn start_task<F: FnMut() + Send + 'static>(
&self,
func: F
) -> Result<(), BoolError>;
fn peer_query_convert<U: SpecificFormattedValueFullRange>(
&self,
src_val: impl FormattedValue
) -> Option<U>;
fn peer_query_convert_generic(
&self,
src_val: impl FormattedValue,
dest_format: Format
) -> Option<GenericFormattedValue>;
fn peer_query_duration<T: SpecificFormattedValueIntrinsic>(
&self
) -> Option<T>;
fn peer_query_duration_generic(
&self,
format: Format
) -> Option<GenericFormattedValue>;
fn peer_query_position<T: SpecificFormattedValueIntrinsic>(
&self
) -> Option<T>;
fn peer_query_position_generic(
&self,
format: Format
) -> Option<GenericFormattedValue>;
fn query_convert<U: SpecificFormattedValueFullRange>(
&self,
src_val: impl FormattedValue
) -> Option<U>;
fn query_convert_generic(
&self,
src_val: impl FormattedValue,
dest_format: Format
) -> Option<GenericFormattedValue>;
fn query_duration<T: SpecificFormattedValueIntrinsic>(&self) -> Option<T>;
fn query_duration_generic(
&self,
format: Format
) -> Option<GenericFormattedValue>;
fn query_position<T: SpecificFormattedValueIntrinsic>(&self) -> Option<T>;
fn query_position_generic(
&self,
format: Format
) -> Option<GenericFormattedValue>;
fn mode(&self) -> PadMode;
fn sticky_events_foreach<F: FnMut(&Event) -> ControlFlow<EventForeachAction, EventForeachAction>>(
&self,
func: F
);
fn sticky_event<T: StickyEventType>(&self, idx: u32) -> Option<T::Owned>;
fn set_pad_flags(&self, flags: PadFlags);
fn unset_pad_flags(&self, flags: PadFlags);
fn pad_flags(&self) -> PadFlags;
}