jack 0.13.5

Real time audio and midi with JACK.
Documentation
use std::{thread::sleep, time::Duration};

use crate::{Client, TransportPosition, TransportState};

#[test]
fn new_transport_is_not_valid() {
    assert!(!TransportPosition::default().valid_bbt());
    assert!(!TransportPosition::default().valid_bbt_frame_offset());
    assert_eq!(TransportPosition::default().frame(), 0);
    assert_eq!(TransportPosition::default().bbt(), None);
    assert_eq!(TransportPosition::default().bbt_offset(), None);
    assert_eq!(TransportPosition::default().frame_rate(), None);
    assert_eq!(TransportPosition::default().usecs(), None);
}

#[test]
fn starting_transport_sets_state_to_started() {
    let (client, _) = Client::new("", Default::default()).unwrap();
    let transport = client.transport();

    transport.stop().unwrap();
    sleep(Duration::from_millis(50));
    assert_eq!(transport.query().unwrap().state, TransportState::Stopped);

    transport.start().unwrap();
    sleep(Duration::from_millis(50));
    assert_eq!(transport.query().unwrap().state, TransportState::Rolling);

    transport.stop().unwrap();
}