49 lines
1.2 KiB
Rust
49 lines
1.2 KiB
Rust
use atem_connection_rs::atem_lib::{atem_field::PrgI, atem_socket_two::tokio::TokioBackend};
|
|
use clap::Parser;
|
|
use color_eyre::Report;
|
|
|
|
/// ATEM Rust Library Test App
|
|
#[derive(Parser, Debug)]
|
|
#[command(author, version, about, long_about = None)]
|
|
struct Args {
|
|
/// IP of the ATEM to connect to
|
|
#[arg(short, long)]
|
|
ip: String,
|
|
}
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let args = Args::parse();
|
|
|
|
setup_logging().unwrap();
|
|
|
|
let mut s = TokioBackend::new(args.ip.parse().unwrap()).await.unwrap();
|
|
s.connect().await.expect("aa");
|
|
let mut buf = [0u8; 2048];
|
|
loop {
|
|
let p = s.recv(&mut buf).await.unwrap();
|
|
let prg: Vec<PrgI> = p.fields::<PrgI>().collect::<Result<_, _>>().unwrap();
|
|
if !prg.is_empty() {
|
|
println!("{:?}", prg);
|
|
}
|
|
}
|
|
}
|
|
|
|
fn setup_logging() -> Result<(), Report> {
|
|
if std::env::var("RUST_LIB_BACKTRACE").is_err() {
|
|
unsafe {
|
|
std::env::set_var("RUST_LIB_BACKTRACE", "1");
|
|
}
|
|
}
|
|
color_eyre::install()?;
|
|
|
|
if std::env::var("RUST_LOG").is_err() {
|
|
unsafe {
|
|
std::env::set_var("RUST_LOG", "debug");
|
|
}
|
|
}
|
|
env_logger::init();
|
|
|
|
Ok(())
|
|
}
|