use openrgb2::{Color, DeviceType, OpenRgbClient, OpenRgbResult};
#[tokio::main]
async fn main() -> OpenRgbResult<()> {
let client = OpenRgbClient::connect().await?;
let group = client
.get_controllers_of_type(DeviceType::Motherboard)
.await?;
let controller = group.into_first().expect("No motherboard controller found");
println!("Controller: {}", controller.name());
let zone = controller.get_zone(1)?;
println!("Zone: {}", zone.name());
let segment = zone.get_segment(0)?;
println!("Segment: {}", segment.name());
segment.set_all_leds(Color::new(0, 255, 0)).await?;
let mut cmd = segment.cmd();
cmd.set_zone_leds(zone.id(), vec![Color::new(255, 0, 0); zone.num_leds()])?;
cmd.set_segment_leds(
zone.id(),
segment.segment_id(),
vec![Color::new(0, 255, 0); segment.num_leds()], )?;
cmd.execute().await?;
Ok(())
}