[][src]Trait spectrusty::chip::EarIn

pub trait EarIn {
    fn set_ear_in(&mut self, ear_in: bool, delta_fts: u32);
fn feed_ear_in<I>(
        &mut self,
        fts_deltas: I,
        max_frames_threshold: Option<usize>
    )
    where
        I: Iterator<Item = NonZeroU32>
;
fn purge_ear_in_changes(&mut self, ear_in: bool);
fn read_ear_in_count(&self) -> u32; fn read_ear_mode(&self) -> ReadEarMode { ... }
fn set_read_ear_mode(&mut self, _mode: ReadEarMode) { ... } }

A trait for feeding the EAR line input.

Required methods

fn set_ear_in(&mut self, ear_in: bool, delta_fts: u32)

Sets EAR IN bit state after the provided interval in ∆ T-states counted from the last recorded change.

fn feed_ear_in<I>(&mut self, fts_deltas: I, max_frames_threshold: Option<usize>) where
    I: Iterator<Item = NonZeroU32>, 

Feeds the EAR IN buffer with changes.

The provided iterator should yield time intervals measured in T-state ∆ differences after which the state of the EAR IN bit should be toggled.

max_frames_threshold may be optionally provided as a number of frames to limit the buffered changes. This is useful if the given iterator provides data largely exceeding the duration of a single frame.

fn purge_ear_in_changes(&mut self, ear_in: bool)

Removes all buffered so far EAR IN changes.

Changes are usually consumed only when a call is made to crate::chip::ControlUnit::ensure_next_frame. Provide the current value of EAR IN bit as ear_in.

This may be useful when tape data is already buffered but the user decided to stop the tape playback immediately.

fn read_ear_in_count(&self) -> u32

Returns the counter of how many times the EAR input line was read since the beginning of the current frame.

This can be used to help to implement the autoloading of tape data.

Loading content...

Provided methods

fn read_ear_mode(&self) -> ReadEarMode

Returns the current mode.

fn set_read_ear_mode(&mut self, _mode: ReadEarMode)

Changes the current mode.

Loading content...

Implementors

impl<D, X> EarIn for Ula3<D, X>[src]

impl<D, X> EarIn for Ula128<D, X>[src]

impl<M, B, X, V> EarIn for Scld<M, B, X, V> where
    M: PagedMemory8k,
    V: VideoFrame
[src]

impl<M, B, X, V> EarIn for Ula<M, B, X, V> where
    V: VideoFrame
[src]

fn feed_ear_in<I>(&mut self, fts_deltas: I, max_frames_threshold: Option<usize>) where
    I: Iterator<Item = NonZeroU32>, 
[src]

It's most optimal to be done after ensure_next_frame is called, but is not necessary.

Panics

Panics if adding the delta would exceed the TsCounter max_value (Ts::max_value() as u32 * V::HTS_COUNT as u32).

impl<U> EarIn for UlaPlus<U> where
    U: Video + EarIn
[src]

Loading content...