Trait spectrusty::chip::FrameState
source · pub trait FrameState {
fn current_frame(&self) -> u64;
fn set_frame_counter(&mut self, fc: u64);
fn frame_tstate(&self) -> (u64, i32);
fn current_tstate(&self) -> i32;
fn set_frame_tstate(&mut self, ts: i32);
fn is_frame_over(&self) -> bool;
}
Expand description
The trait for reading and modifying the state of frame and cycle counters.
Required Methods§
sourcefn current_frame(&self) -> u64
fn current_frame(&self) -> u64
Returns the value of the current execution frame counter. The FrameState implementation should count passing frames infinitely wrapping at 2^64.
sourcefn set_frame_counter(&mut self, fc: u64)
fn set_frame_counter(&mut self, fc: u64)
Sets the frame counter to the specified value.
sourcefn frame_tstate(&self) -> (u64, i32)
fn frame_tstate(&self) -> (u64, i32)
Returns a normalized frame counter and a T-state counter as a tuple.
T-states are counted from 0 at the start of each frame. This method never returns the T-state counter value below 0 or past the frame counter limit.
sourcefn current_tstate(&self) -> i32
fn current_tstate(&self) -> i32
Returns the current value of the T-state counter.
Unlike in FrameState::frame_tstate, values return by this method can sometimes be negative as well as exceeding the maximum number of T-states per frame.
sourcefn set_frame_tstate(&mut self, ts: i32)
fn set_frame_tstate(&mut self, ts: i32)
Sets the T-state counter to the specified value modulo <Self as Video>::FRAME_TSTATES_COUNT
.
sourcefn is_frame_over(&self) -> bool
fn is_frame_over(&self) -> bool
Returns true
if the value of the current T-state counter has reached a certain arbitrary limit which
is very close to the maximum number of T-states per frame.