rill-io 0.3.0

Audio I/O backends for Rill - CPAL, ALSA, PipeWire, JACK
Documentation
#![cfg(feature = "graph")]

use rill_core::time::SystemClock;
use rill_graph::GraphBuilder;
use rill_io::{
    backends::NullBackend, processor::GraphProcessor, AudioBackend, AudioConfig, AudioEngine,
    AudioProcessor,
};

const BUF_SIZE: usize = 256;

#[test]
fn test_graph_processor_creation() {
    let builder = GraphBuilder::<f32, BUF_SIZE>::new();
    let clock = Box::new(SystemClock::with_sample_rate(44100.0));
    let processor = GraphProcessor::from_builder(builder, clock).unwrap();

    let config = AudioConfig::default();
    let backend = NullBackend::new(config);
    let mut engine = AudioEngine::new(backend, processor);

    engine.start().unwrap();
    std::thread::sleep(std::time::Duration::from_millis(10));
    engine.stop().unwrap();
}

#[test]
fn test_graph_processor_empty_graph() {
    let builder = GraphBuilder::<f32, BUF_SIZE>::new();
    let clock = Box::new(SystemClock::with_sample_rate(44100.0));
    let processor = GraphProcessor::from_builder(builder, clock).unwrap();

    assert_eq!(processor.node_count(), 0);
    assert!(processor.topo_order().is_empty());
}