Struct Mbox3Protocol

Source
pub struct Mbox3Protocol;
Expand description

Protocol implementation of Avid Mbox 3 Pro.

Trait Implementations§

Source§

impl Debug for Mbox3Protocol

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Mbox3Protocol

Source§

fn default() -> Mbox3Protocol

Returns the “default value” for a type. Read more
Source§

impl TcatExtensionOperation for Mbox3Protocol

Source§

fn read_extension( req: &FwReq, node: &FwNode, section: &Section, offset: usize, frames: &mut [u8], timeout_ms: u32, ) -> Result<(), Error>

Initiate read transaction to offset in specific address space and finish it.
Source§

fn write_extension( req: &FwReq, node: &FwNode, section: &Section, offset: usize, frames: &mut [u8], timeout_ms: u32, ) -> Result<(), Error>

Initiate write transaction to offset in specific address space and finish it.
Source§

fn read_extension_sections( req: &FwReq, node: &FwNode, sections: &mut ExtensionSections, timeout_ms: u32, ) -> Result<(), Error>

Read section layout.
Source§

impl TcatExtensionSectionNotifiedParamsOperation<Mbox3SpecificParams> for Mbox3Protocol

Source§

fn cache_extension_notified_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut Mbox3SpecificParams, msg: u32, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for notified parameters.
Source§

impl TcatExtensionSectionParamsOperation<Mbox3SpecificParams> for Mbox3Protocol

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, _: &ExtensionCaps, params: &mut Mbox3SpecificParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl TcatExtensionSectionPartialMutableParamsOperation<Mbox3SpecificParams> for Mbox3Protocol

Source§

fn update_extension_partial_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, _: &ExtensionCaps, params: &Mbox3SpecificParams, prev: &mut Mbox3SpecificParams, timeout_ms: u32, ) -> Result<(), Error>

Update state of hardware for partial parameters.
Source§

impl TcatGlobalSectionSpecification for Mbox3Protocol

Source§

const AVAILABLE_CLOCK_SOURCE_OVERRIDE: Option<&'static [ClockSource]> = None

Some models report invalid list for signal source of sampling clock.
Source§

const CLOCK_SOURCE_LABEL_TABLE: &'static [ClockSource] = _

Some models report list of labels for signal source of sampling clock with unexpected position.
Source§

impl TcatOperation for Mbox3Protocol

Source§

fn read( req: &FwReq, node: &FwNode, offset: usize, frames: &mut [u8], timeout_ms: u32, ) -> Result<(), Error>

Initiate read transaction to offset in specific address space and finish it.
Source§

fn write( req: &FwReq, node: &FwNode, offset: usize, frames: &mut [u8], timeout_ms: u32, ) -> Result<(), Error>

Initiate write transaction to offset in specific address space and finish it.
Source§

fn read_general_sections( req: &FwReq, node: &FwNode, sections: &mut GeneralSections, timeout_ms: u32, ) -> Result<(), Error>

Read section layout.
Source§

impl Tcd22xxSpecification for Mbox3Protocol

Source§

const INPUTS: &'static [Input]

Physical input ports.
Source§

const OUTPUTS: &'static [Output]

Physical output ports.
Source§

const FIXED: &'static [SrcBlk]

Ports with fixed position in router entries; e.g. target ports for meter display.
Source§

const MIXER_OUT_PORTS: [u8; 3] = _

The number of mixer outputs at specification of TCD22xx.
Source§

const MIXER_IN_PORTS: [(DstBlkId, u8); 2] = _

The number of mixer inputs at specification of TCD22xx.
Source§

const ADAT_CHANNELS: [u8; 3] = _

The number of ADAT channels at specification of ADAT/SMUX.
Source§

fn adat_channel_count(rate_mode: RateMode) -> u8

Compute the number of ADAT channels.
Source§

fn mixer_out_port_count(rate_mode: RateMode) -> u8

Compute the number of mixer outputs.
Source§

fn mixer_in_port_count() -> u8

Compute the number of mixer inputs.
Source§

fn compute_avail_real_blk_pair( rate_mode: RateMode, ) -> (Vec<SrcBlk>, Vec<DstBlk>)

Compute available destination and source blocks for physical ports.
Source§

fn compute_avail_stream_blk_pair( tx_entries: &[FormatEntry], rx_entries: &[FormatEntry], ) -> (Vec<SrcBlk>, Vec<DstBlk>)

Compute available destination and source blocks for Tx/Rx streams.
Source§

fn compute_avail_mixer_blk_pair( caps: &ExtensionCaps, rate_mode: RateMode, ) -> (Vec<SrcBlk>, Vec<DstBlk>)

Compute available destination and source blocks for mixer inputs and outputs.
Source§

fn refine_router_entries( entries: &mut Vec<RouterEntry>, avail_blocks: &Tcd22xxAvailableBlocks, )

Refine router entries by defined descriptors.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<O> TcatExtensionCapsSectionOperation for O

Source§

fn read_extension_caps( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &mut ExtensionCaps, timeout_ms: u32, ) -> Result<(), Error>

Read capabilities.
Source§

impl<O> TcatExtensionCommandSectionOperation for O

Source§

fn initiate( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, opcode: Opcode, timeout_ms: u32, ) -> Result<u32, Error>

Initiate command and wait for its completion.
Source§

impl<O> TcatExtensionSectionParamsOperation<CurrentRouterParams> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut CurrentRouterParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionParamsOperation<CurrentStreamFormatParams> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut CurrentStreamFormatParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionParamsOperation<MixerCoefficientParams> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut MixerCoefficientParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionParamsOperation<MixerSaturationParams> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut MixerSaturationParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionParamsOperation<PeakParams> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut PeakParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionParamsOperation<RouterParams> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut RouterParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionParamsOperation<StandaloneParameters> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, _: &ExtensionCaps, params: &mut StandaloneParameters, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionParamsOperation<StreamFormatParams> for O

Source§

fn cache_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &mut StreamFormatParams, timeout_ms: u32, ) -> Result<(), Error>

Cache state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionPartialMutableParamsOperation<MixerCoefficientParams> for O

Source§

fn update_extension_partial_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &MixerCoefficientParams, prev: &mut MixerCoefficientParams, timeout_ms: u32, ) -> Result<(), Error>

Update state of hardware for partial parameters.
Source§

impl<O> TcatExtensionSectionPartialMutableParamsOperation<StandaloneParameters> for O

Source§

fn update_extension_partial_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, _: &ExtensionCaps, params: &StandaloneParameters, prev: &mut StandaloneParameters, timeout_ms: u32, ) -> Result<(), Error>

Update state of hardware for partial parameters.
Source§

impl<O> TcatExtensionSectionWholeMutableParamsOperation<RouterParams> for O

Source§

fn update_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &RouterParams, timeout_ms: u32, ) -> Result<(), Error>

Update state of hardware for whole parameters.
Source§

impl<O> TcatExtensionSectionWholeMutableParamsOperation<StreamFormatParams> for O

Source§

fn update_extension_whole_params( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, params: &StreamFormatParams, timeout_ms: u32, ) -> Result<(), Error>

Update state of hardware for whole parameters.
Source§

impl<O> TcatFluctuatedSectionOperation<GlobalParameters> for O

Source§

const FLUCTUATED_OFFSETS: &'static [usize] = const FLUCTUATED_OFFSETS: &'static [usize] = &[88];

The set of address offsets in which any value is changed apart from software operation; e.g. hardware metering.
Source§

fn partial_cache( req: &FwReq, node: &FwNode, section: &Section, params: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Cache part of section for fluctuated values, then deserialize for parameters.
Source§

impl<O> TcatMutableSectionOperation<GlobalParameters> for O

Source§

fn whole_update( req: &FwReq, node: &FwNode, section: &Section, params: &T, timeout_ms: u32, ) -> Result<(), Error>

Update whole section by the parameters.
Source§

fn partial_update( req: &FwReq, node: &FwNode, section: &Section, params: &T, prev: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Update part of section for any change at the parameters.
Source§

impl<O> TcatMutableSectionOperation<RxStreamFormatParameters> for O

Source§

fn whole_update( req: &FwReq, node: &FwNode, section: &Section, params: &T, timeout_ms: u32, ) -> Result<(), Error>

Update whole section by the parameters.
Source§

fn partial_update( req: &FwReq, node: &FwNode, section: &Section, params: &T, prev: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Update part of section for any change at the parameters.
Source§

impl<O> TcatMutableSectionOperation<TxStreamFormatParameters> for O

Source§

fn whole_update( req: &FwReq, node: &FwNode, section: &Section, params: &T, timeout_ms: u32, ) -> Result<(), Error>

Update whole section by the parameters.
Source§

fn partial_update( req: &FwReq, node: &FwNode, section: &Section, params: &T, prev: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Update part of section for any change at the parameters.
Source§

impl<O> TcatNotifiedSectionOperation<GlobalParameters> for O

Source§

const NOTIFY_FLAG: u32 = 112u32

Flag in message notified for any change in section.
Source§

fn notified(_: &T, msg: u32) -> bool

Check message to be notified or not.
Source§

impl<O> TcatNotifiedSectionOperation<RxStreamFormatParameters> for O

Source§

const NOTIFY_FLAG: u32 = 1u32

Flag in message notified for any change in section.
Source§

fn notified(_: &T, msg: u32) -> bool

Check message to be notified or not.
Source§

impl<O> TcatNotifiedSectionOperation<TxStreamFormatParameters> for O

Source§

const NOTIFY_FLAG: u32 = 2u32

Flag in message notified for any change in section.
Source§

fn notified(_: &T, msg: u32) -> bool

Check message to be notified or not.
Source§

impl<O> TcatSectionOperation<ExtendedSyncParameters> for O
where O: TcatOperation,

Source§

fn whole_cache( req: &FwReq, node: &FwNode, section: &Section, params: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Cache whole section and deserialize for parameters.
Source§

impl<O> TcatSectionOperation<GlobalParameters> for O

Source§

fn whole_cache( req: &FwReq, node: &FwNode, section: &Section, params: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Cache whole section and deserialize for parameters.
Source§

impl<O> TcatSectionOperation<RxStreamFormatParameters> for O
where O: TcatOperation,

Source§

fn whole_cache( req: &FwReq, node: &FwNode, section: &Section, params: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Cache whole section and deserialize for parameters.
Source§

impl<O> TcatSectionOperation<TxStreamFormatParameters> for O
where O: TcatOperation,

Source§

fn whole_cache( req: &FwReq, node: &FwNode, section: &Section, params: &mut T, timeout_ms: u32, ) -> Result<(), Error>

Cache whole section and deserialize for parameters.
Source§

impl<O> TcatSectionSerdes<ExtendedSyncParameters> for O
where O: TcatOperation,

Source§

const MIN_SIZE: usize = 16usize

Minimum size of section for parameters.
Source§

const ERROR_TYPE: GeneralProtocolError = const ERROR_TYPE: GeneralProtocolError = GeneralProtocolError::ExtendedSync;

The type of error.
Source§

fn serialize(_: &ExtendedSyncParameters, _: &mut [u8]) -> Result<(), String>

Serialize parameters for section.
Source§

fn deserialize( params: &mut ExtendedSyncParameters, raw: &[u8], ) -> Result<(), String>

Deserialize section for parameters.
Source§

impl<O> TcatSectionSerdes<GlobalParameters> for O

Source§

const MIN_SIZE: usize = 96usize

Minimum size of section for parameters.
Source§

const ERROR_TYPE: GeneralProtocolError = const ERROR_TYPE: GeneralProtocolError = GeneralProtocolError::Global;

The type of error.
Source§

fn serialize(params: &GlobalParameters, raw: &mut [u8]) -> Result<(), String>

Serialize parameters for section.
Source§

fn deserialize(params: &mut GlobalParameters, raw: &[u8]) -> Result<(), String>

Deserialize section for parameters.
Source§

impl<O> TcatSectionSerdes<RxStreamFormatParameters> for O
where O: TcatOperation,

Source§

const MIN_SIZE: usize = 8usize

Minimum size of section for parameters.
Source§

const ERROR_TYPE: GeneralProtocolError = const ERROR_TYPE: GeneralProtocolError = GeneralProtocolError::RxStreamFormat;

The type of error.
Source§

fn serialize( params: &RxStreamFormatParameters, raw: &mut [u8], ) -> Result<(), String>

Serialize parameters for section.
Source§

fn deserialize( params: &mut RxStreamFormatParameters, raw: &[u8], ) -> Result<(), String>

Deserialize section for parameters.
Source§

impl<O> TcatSectionSerdes<TxStreamFormatParameters> for O
where O: TcatOperation,

Source§

const MIN_SIZE: usize = 8usize

Minimum size of section for parameters.
Source§

const ERROR_TYPE: GeneralProtocolError = const ERROR_TYPE: GeneralProtocolError = GeneralProtocolError::TxStreamFormat;

The type of error.
Source§

fn serialize( params: &TxStreamFormatParameters, raw: &mut [u8], ) -> Result<(), String>

Serialize parameters for section.
Source§

fn deserialize( params: &mut TxStreamFormatParameters, raw: &[u8], ) -> Result<(), String>

Deserialize section for parameters.
Source§

impl<O> Tcd22xxOperation for O

Source§

fn detect_available_blocks( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, rate_mode: RateMode, avail_blocks: &mut Tcd22xxAvailableBlocks, timeout_ms: u32, ) -> Result<(), Error>

Detect available source and destination blocks at given rate mode.
Source§

fn update_router_entries( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, rate_mode: RateMode, avail_blocks: &Tcd22xxAvailableBlocks, params: &mut RouterParams, timeout_ms: u32, ) -> Result<(), Error>

Update router entries.
Source§

fn load_configuration( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, timeout_ms: u32, ) -> Result<(), Error>

Load configuration from on-board flash memory, including parameters in application section.
Source§

fn store_configuration( req: &FwReq, node: &FwNode, sections: &ExtensionSections, caps: &ExtensionCaps, timeout_ms: u32, ) -> Result<(), Error>

Store configuration to on-board flash memory, including parameters in application section.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.