cycling_router/
cycling-router.rs1use ndi_sdk::{FindInstance, RouteInstance, Source};
3use std::{thread::sleep, time::Duration};
4
5fn main() {
6 let mut fi = FindInstance::create(None).unwrap();
7 let my_name = "Source Scanning Router";
8 let ri = RouteInstance::create(my_name, &vec!["Public"]).unwrap();
9
10 loop {
11 fi.wait_for_sources(1000).unwrap();
12 let some_sources: Vec<Source> = fi.get_current_sources().unwrap();
13 println!("Found {} sources", some_sources.len());
14 for source in some_sources {
15 let is_me =
16 source.ndi_name.contains(my_name) && source.url_address.starts_with("127.0.0.1");
17 if !is_me {
18 let source = source.clone();
19 println!("Name: {}\nURL: {}\n", source.ndi_name, source.url_address);
20 ri.change(&source).unwrap();
21 sleep(Duration::from_secs(5));
22 }
23 }
24 }
25}