IceCube display
LED display to show IceCube event data
All Data Structures Files Functions Variables Enumerations Enumerator Macros Modules Pages
Display frame queue

FIFO interface for frame displaying. More...

Frame queue manipulation

bool frame_queue_full ()
 Check if the frame queue is full.
 
bool frame_queue_empty ()
 Check if the frame queue is empty.
 
bool push_frame (struct frame_buffer_t *frame)
 Push new frame into the frame FIFO. More...
 
struct frame_buffer_tpop_frame ()
 Pop a frame from the frame FIFO. More...
 

Detailed Description

FIFO interface for frame displaying.

A flexible display system is created by using a first-in, first-out queue which holds pointers to frame buffer objects. Multiple instances can push frames in the queue to be displayed. They can do this independently from each other, without running the risk of (partially) overwriting an existing frame, or a frame that is currently being drawn. Queue manipulation is done atomically to ensure no pointers are dropped, or invalid pointers are returned.

Function Documentation

◆ pop_frame()

struct frame_buffer_t* pop_frame ( )

Pop a frame from the frame FIFO.

Returns
Pointer to the popped frame, or NULL if the FIFO was empty.

◆ push_frame()

bool push_frame ( struct frame_buffer_t frame)

Push new frame into the frame FIFO.

Returns
true on success, and false if the FIFO was full.