use crate::sequence::RgbSequence;
use crate::time::TimeDuration;
#[derive(Debug, Clone)]
pub enum SequencerAction<D: TimeDuration, const N: usize> {
Load(RgbSequence<D, N>),
Start,
Stop,
Pause,
Resume,
Restart,
Clear,
SetBrightness(f32),
}
#[derive(Debug, Clone)]
pub struct SequencerCommand<Id, D: TimeDuration, const N: usize> {
pub led_id: Id,
pub action: SequencerAction<D, N>,
}
impl<Id, D: TimeDuration, const N: usize> SequencerCommand<Id, D, N> {
pub fn new(led_id: Id, action: SequencerAction<D, N>) -> Self {
Self { led_id, action }
}
}