lasprs 0.14.0

Library for Acoustic Signal Processing (Rust edition, with optional Python bindings via pyo3)
use super::{Flt, streammgr::SharedInQueue};
use crate::siggen::*;
use std::sync::Arc;

/// Commands that can be sent to a running inputstream
#[derive(Debug, Clone)]
pub enum InputStreamCommand {
    /// Add a new queue to a running input stream
    AddInQueue(SharedInQueue),

    /// Stop the thread, do not listen for data anymore.
    StopThread,
}

/// Commands that can be sent to a running output stream
#[derive(Debug, Clone)]
pub enum OutputStreamCommand {
    /// Add a queue for monitoring the output signal from the signal generator
    AddMonitorQueue(SharedInQueue),

    /// Apply command to the signal generator.
    SiggenCommand(SiggenCommand),

    /// Stop the thread, do not listen for data anymore.
    StopThread,
}

/// Commands that can be sent to a running stream, both input and output
#[derive(Debug, Clone)]
pub enum StreamCommand {
    /// Command for the input stream
    InputStreamCommand(InputStreamCommand),
    /// Command for the output stream
    OutputStreamCommand(OutputStreamCommand),

    /// Stop the thread, do not listen for data anymore.
    StopThread,
}