pub mod server;
pub mod config;
pub mod common;
pub mod client;
#[cfg(test)]
mod tests {
use crate::{server::{resonator::ResonatorServer, metadata::Metadata}, client::resonatorclient::ResonatorClient, common::audiobuffer::AudioBuffer};
#[test]
fn main() {
let server = ResonatorServer::new(8080, 8081);
server.begin();
let client1 = ResonatorClient::new(8080, 8081, 1, 2, None, None);
client1.begin();
let client2 = ResonatorClient::new(8080, 8081, 2, 1, None, None);
client2.begin();
let test_metadata = Metadata {
sample_rate: 22050,
buffer_size: 2048
};
let test_buffer = AudioBuffer {
samples: vec![0.0; 2048],
metadata: test_metadata.clone()
};
let test_buffer2 = AudioBuffer {
samples: vec![1.0; 2048],
metadata: test_metadata.clone()
};
client1.push_buffer(test_buffer.clone());
loop {
let buff = client2.process_buffer();
if buff.is_some() {
assert_eq!(test_buffer.clone(), *buff.as_ref().unwrap(), "Recieved audio data is not equal to sent audio data");
assert_ne!(test_buffer2.clone(), *buff.as_ref().unwrap(), "Recieved audio data matches audio data which was not sent");
break;
}
}
}
}