usbredir: add free channels stream

TODO: watch for chardev ownership changes instead

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
Marc-André Lureau committed 2021-08-20 23:14:47 +04:00
1 parent 36d9aa07ab
commit b1fff9263e
5 files changed
+93 -12

No files matched your search

+13 -1
View File
@@ -42,12 +42,24 @@ impl Handler {
if state {
item.set_property("active", false).unwrap();
}
widget.emit_by_name("show-error",&[&e.to_string()]).unwrap();
widget.emit_by_name("show-error", &[&e.to_string()]).unwrap();
},
}
}));
});
let usbredir = self.usbredir.clone();
MainContext::default().spawn_local(clone!(@weak widget => async move {
use futures::stream::StreamExt; // for `next`
widget
.set_property("free-channels", usbredir.n_free_channels().await)
.unwrap();
let mut n = usbredir.receive_n_free_channels();
while let Some(n) = n.next().await {
widget.set_property("free-channels", n).unwrap();
}
}));
widget
}
}