use glib::*;
use hinawa::{prelude::*, *};
const PATH: &str = "/dev/fw1";
const OFFSET: u64 = 0xfffff0000404;
fn main() {
let node = FwNode::new();
node.open(PATH, 0).unwrap();
let ctx = MainContext::new();
let src = node.create_source().unwrap();
src.attach(Some(&ctx));
let dispatcher = MainLoop::new(Some(&ctx), false);
let cntr = std::sync::Arc::new(dispatcher);
let d = cntr.clone();
let th = std::thread::spawn(move || {
d.run();
()
});
let req = hinawa::FwReq::new();
let mut frames = [0; 4];
let _ = req
.transaction_with_tstamp(
&node,
FwTcode::ReadQuadletRequest,
OFFSET,
4,
&mut frames,
100,
)
.unwrap();
assert_eq!(0x31333934, u32::from_be_bytes(frames));
cntr.quit();
th.join().unwrap();
}