1use cec_linux::*;
8
9fn main() -> std::io::Result<()> {
10 let cec = CecDevice::open("/dev/cec0")?;
11 let capas = cec.get_capas();
12 println!("capas {:?}", capas);
13 cec.set_mode(CecModeInitiator::None, CecModeFollower::Monitor)?;
14
15 loop {
16 let f = cec.poll(
17 PollFlags::POLLIN | PollFlags::POLLRDNORM | PollFlags::POLLPRI,
18 PollTimeout::NONE,
19 )?;
20
21 if f.intersects(PollFlags::POLLPRI) {
22 let evt = cec.get_event()?;
23 println!("evt {:x?}", evt);
24 }
25 if f.contains(PollFlags::POLLIN | PollFlags::POLLRDNORM) {
26 let msg = cec.rec()?;
27
28 if msg.is_ok() {
29 match (msg.initiator(), msg.destination(), msg.opcode()) {
30 (i, d, Some(Ok(o))) => {
31 println!("msg {:?}->{:?} {:?} {:x?}", i, d, o, msg.parameters());
32 }
33 _ => println!("msg {:x?}", msg),
34 }
35 } else {
36 println!("msg {:x?}", msg);
37 }
38 }
39 }
40}