PixelKey
NeoPixel USB Key
Loading...
Searching...
No Matches
PixelKey Keyframe Processor Internals

Functions

static void init_keyframe (keyframe_base_t *p_keyframe, color_rgb_t *p_color)
 Initialize a keyframe or keyframe group. More...
 
pixelkey_error_t pixelkey_keyframeproc_render_frame (color_rgb_t *p_frame_buffer)
 Performs a render of the current keyframes. More...
 
pixelkey_error_t pixelkey_keyframeproc_push (uint8_t index, keyframe_base_t *p_keyframe)
 Pushes a keyframe into the queue for a given NeoPixel index. More...
 
void pixelkey_keyframeproc_framerate_set (framerate_t framerate)
 Sets the framerate used to render keyframes. More...
 
uint32_t pixelkey_keyframeproc_framecount_get (void)
 Gets the total numbered of rendered frames. More...
 
void pixelkey_frameproc_init (framerate_t framerate)
 Initializes the keyframe processor. More...
 

Variables

static color_rgb_t current_color [PIXELKEY_NEOPIXEL_COUNT] = {0}
 
keyframe_base_t * keyframe_queue_buffer [PIXELKEY_NEOPIXEL_COUNT][PIXELKEY_KEYFRAME_QUEUE_LENGTH]
 
ring_buffer_t keyframe_queue [PIXELKEY_NEOPIXEL_COUNT] = {0}
 
static keyframe_base_t * current_keyframe [PIXELKEY_NEOPIXEL_COUNT] = {0}
 
static timestep_t current_framecount [PIXELKEY_NEOPIXEL_COUNT] = {0}
 
static framerate_t current_framerate = 0
 
static uint32_t framecount = 0
 

Detailed Description

Function Documentation

◆ init_keyframe()

static void init_keyframe ( keyframe_base_t *  p_keyframe,
color_rgb_t p_color 
)
static

Initialize a keyframe or keyframe group.

Parameters
[in]p_keyframePointer to the keyframe to initialize.
[in]p_colorPointer to the current rendered color.

◆ pixelkey_frameproc_init()

void pixelkey_frameproc_init ( framerate_t  framerate)

Initializes the keyframe processor.

Parameters
framerateThe initial framerate to use.

◆ pixelkey_keyframeproc_framecount_get()

uint32_t pixelkey_keyframeproc_framecount_get ( void  )

Gets the total numbered of rendered frames.

Returns
The framecount.
Note
This value can overflow and wrap back to zero.

◆ pixelkey_keyframeproc_framerate_set()

void pixelkey_keyframeproc_framerate_set ( framerate_t  framerate)

Sets the framerate used to render keyframes.

Parameters
framerateThe framerate to use.

◆ pixelkey_keyframeproc_push()

pixelkey_error_t pixelkey_keyframeproc_push ( uint8_t  index,
keyframe_base_t *  p_keyframe 
)

Pushes a keyframe into the queue for a given NeoPixel index.

Parameters
indexIndex of NeoPixel.
[in]p_keyframePointer to keyframe to push.
Return values
PIXELKEY_ERROR_NONEPush was successful
PIXELKEY_ERROR_INDEX_OUT_OF_RANGEIndex is higher than maximum available NeoPixel.
PIXELKEY_ERROR_BUFFER_FULLBuffer if full for the given NeoPixel queue.

◆ pixelkey_keyframeproc_render_frame()

pixelkey_error_t pixelkey_keyframeproc_render_frame ( color_rgb_t p_frame_buffer)

Performs a render of the current keyframes.

Return values
PIXELKEY_ERROR_NONEFrame render was successful.
Todo:
Add support for scheduled keyframes.