feat: allow specifying strand subset

This commit is contained in:
Xiretza 2022-06-17 21:03:44 +02:00
parent 031245496e
commit 0d8f11c712
3 changed files with 21 additions and 3 deletions

View file

@ -33,6 +33,9 @@ pub struct Layout {
pub num_panels_h: u32, pub num_panels_h: u32,
pub num_panels_v: u32, pub num_panels_v: u32,
pub total_strands: u32,
pub first_strand_index: u32,
} }
impl Layout { impl Layout {

View file

@ -154,6 +154,9 @@ fn main() -> anyhow::Result<()> {
num_panels_h: 6, num_panels_h: 6,
num_panels_v: 1, num_panels_v: 1,
total_strands: 24,
first_strand_index: 8,
}; };
match args.action { match args.action {

View file

@ -64,9 +64,21 @@ pub fn send_frame(
frame_num: u32, frame_num: u32,
image: &RgbImage, image: &RgbImage,
) -> Result<(), SenderError> { ) -> Result<(), SenderError> {
for strand_num in 0..layout.num_strands() { for strand_num in 0..layout.total_strands {
let data = Strandifier::make_strand(layout, image, strand_num)?; if strand_num >= layout.first_strand_index
send_strand(socket, strand_num, frame_num, data)?; && strand_num < layout.num_strands() + layout.first_strand_index
{
let data =
Strandifier::make_strand(layout, image, strand_num - layout.first_strand_index)?;
send_strand(socket, strand_num as u32, frame_num, data)?;
} else {
send_strand(
socket,
strand_num as u32,
frame_num,
vec![Rgb([0, 0, 0]); layout.strand_len() as usize],
)?;
}
} }
let mut buf = vec![0; 100]; let mut buf = vec![0; 100];