Class Section¶
Defined in File section.h
Nested Relationships¶
Class Documentation¶
-
class
Section
¶ Public Functions
-
Section
(uint16_t x, uint16_t y, Section *parent = nullptr)¶ Constructor. Initializes the Pixel array.
-
~Section
()¶
-
Section::Mirror *
get_mirror
() const¶ Returns whether mirroring is enabled across each axis.
- Return
Mirror configuration.
-
Section *
get_parent_section
() const¶ Returns this Section’s parent (if this is an Layer).
- Return
Parent Section.
-
Colors::RGB
get_pixel_color
(uint16_t x, uint16_t y, Colors::RGB *base_color = nullptr)¶ Returns the final color of the specified Pixel.
-
Section::Scroll *
get_scroll
() const¶ Returns the Section’s scrolling behavior.
- Return
Scrolling behavior.
-
bool
get_wrap
() const¶ Returns whether to wrap Pixels on an offset Section.
- Return
If true, Pixels wrap.
-
void
remove_animation
(bool clear_pixels)¶ Deletes the current Animation.
- Parameters
clear_pixels
: If true, Pixels are cleared.
-
Animation &
set_animation
(AnimationType animation_type, bool preserve_settings = true)¶ Sets a new Animation.
-
void
set_brightness
(uint8_t brightness)¶ Sets the overall brightness of the Section. 255 is full brightness, and 0 is completely dark.
- Parameters
brightness
: Brightness level (0 - 255).
-
Canvas &
set_canvas
(uint16_t num_frames = 1)¶ Sets a new Canvas of the specified type. This will overwrite the existing Canvas.
-
void
set_dimensions
(uint16_t x, uint16_t y)¶ Sets the size of the Section.
- Parameters
x
: Number of Pixels along the x-coordinate.y
: Number of Pixels along the y-coordinate.
-
Section::Layer &
set_layer
(Colors::MixMode mix_mode = Colors::MixMode::Alpha, uint8_t alpha = 128)¶ Sets a new Layer. If an Layer already exists, this updates the existing Layer.
-
void
set_maestro
(Maestro &maestro)¶ Sets the Section’s parent Maestro.
- Parameters
maestro
: Parent Maestro.
-
Section::Mirror *
set_mirror
(bool x, bool y)¶ Mirrors the Section across the axes. If both x and y are false, mirroring is disabled.
-
Point &
set_offset
(uint16_t x, uint16_t y)¶ Sets the Section’s offset, which shifts the Section’s output along the Pixel grid.
- Return
Offset.
- Parameters
x
: Offset along the x axis.y
: Offset along the y axis.
-
void
set_pixel_color
(uint16_t x, uint16_t y, const Colors::RGB &color)¶ Sets the specified Pixel to a new color.
-
Section::Scroll &
set_scroll
(uint16_t x, uint16_t y, bool reverse_x = false, bool reverse_y = false)¶ Sets the direction and rate that the Section will scroll. The values determine the amount of time until the Section completes a single scroll along the respective axis. Using a negative value reverses the scrolling direction. Setting either axis to 0 disables scrolling on that axis.
- Parameters
x
: Scrolling interval along the x axis.y
: Scrolling interval along the y axis.reverse_x
: If true, reverses the scrolling direction along the x axis.reverse_y
: If true, reverses the scrolling direction along the y axis.
-
void
set_step_count
(uint8_t step_count)¶ Sets the number of steps for fading Pixels.
- Parameters
step_count
: When > 0, gradually fades Pixels from their current color to their next color.
-
void
set_wrap
(bool wrap)¶ Sets whether to wrap Pixels across an offset Section.
- Parameters
wrap
: If true, Pixels wrap. If not, Pixels display black.
-
void
sync
(const uint32_t &new_time)¶ Sets the last update time of each component’s timer.
- Parameters
new_time
: New last refresh time.
-
void
update
(const uint32_t ¤t_time)¶ Main update routine.
- Parameters
current_time
: Program runtime.
-
struct
Layer
¶ Layers a second Section on top of the current one. When getting color output, use get_pixel_color(). This returns RGB values after blending the two Sections together.
-
struct
Mirror
¶ Controls mirroring across the x and y axes.
-
struct
Scroll
¶ Sets the Section’s scrolling behavior.
Public Functions
-
void
remove_timer_x
()¶ Removes the x axis timer.
-
void
remove_timer_y
()¶ Removes the y axis timer.
-
void
set
(uint16_t refresh_interval, Point *dimensions, uint16_t interval_x, uint16_t interval_y, bool reverse_x = false, bool reverse_y = false)¶ Sets the scrolling behavior. The step count is calculated by factoring in the Pixel grid size and Maestro refresh rate.
- Parameters
refresh_interval
: Amount of time between Maestro refreshes.dimensions
: The dimensions of the parent Section.interval_x
: The amount of time to complete a scroll along the x axis.interval_y
: The amount of time to complete a scroll along the y axis.reverse_x
: If true, reverses the scrolling direction along the x axis.reverse_y
: If true, reverses the scrolling direction along the y axis.
-
~Scroll
()¶
Public Members
-
uint16_t
interval_x
= 0¶ The original x interval. This is really just storage for use in Cues.
-
uint16_t
interval_y
= 0¶ The original y interval.
-
bool
reverse_x
= false¶ If true, reverses the scrolling direction along the x axis.
-
bool
reverse_y
= false¶ If true, reverses the scrolling direction along the y axis.
-
Timer *
timer_x
= nullptr¶ Sets the amount of time between a single x-axis step. Overrides step_x when step_x is less than 1.
-
Timer *
timer_y
= nullptr¶ Sets the amount of time between a single y-axis step. Overrides step_y when step_y is less than 1.
-
uint16_t
step_x
= 0¶ Sets the number of y-axis steps to take with each update. Overridden by timer_x when this is calculated to be less than 1.
-
uint16_t
step_y
= 0¶ Sets the number of y-axis steps to take with each update. Overridden by timer_y when this is calculated to be less than 1.
-
void
-