Merge branch 'update' into 'master'

Update to latest crates

See merge request marcandre.lureau/qemu-display!2
This commit is contained in:
Marc-André Lureau 2023-08-28 10:14:28 +00:00
commit 39bf79d2c0
12 changed files with 41 additions and 35 deletions

View File

@ -7,9 +7,11 @@ members = [
"qemu-vte",
"xtask",
]
default-members = ["qemu-rdw"]
resolver = "2"
[patch.crates-io]
zbus = { git = "https://github.com/dbus2/zbus.git" }
zvariant = { git = "https://github.com/dbus2/zbus.git" }
vnc = { git = "https://github.com/elmarco/rust-vnc", branch = "server" }
rdw4 = { git = "https://gitlab.gnome.org/malureau/rdw.git" }
rdw4 = { path = "../rdw/rdw4" }

View File

@ -13,8 +13,8 @@ qmp = ["dep:qapi", "dep:base64"]
cfg-if = "1.0"
log = "0.4"
derivative = "2.2.0"
zbus = { version = "3.11", features = ["xml"] }
zvariant = { version = "3.0", features = ["serde_bytes"] }
zbus = { version = "4", features = ["xml"] }
zvariant = { version = "4", features = ["serde_bytes"] }
libc = "0.2.86"
enumflags2 = { version = "0.7", features = ["serde"] }
serde = { version = "1.0.27", features = ["derive"] }

View File

@ -1,7 +1,9 @@
use serde_repr::{Deserialize_repr, Serialize_repr};
use std::convert::TryFrom;
use zbus::{dbus_interface, dbus_proxy, zvariant::ObjectPath};
use zvariant::Type;
use zbus::{
dbus_interface, dbus_proxy,
zvariant::{ObjectPath, Type},
};
use crate::Result;

View File

@ -8,9 +8,9 @@ use zbus::{
fdo,
fdo::ManagedObjects,
names::{BusName, OwnedUniqueName, UniqueName, WellKnownName},
zvariant::OwnedObjectPath,
Connection, OwnerChangedStream,
};
use zvariant::OwnedObjectPath;
#[cfg(unix)]
use crate::UsbRedir;

View File

@ -62,8 +62,8 @@ impl From<zbus::fdo::Error> for Error {
}
}
impl From<zvariant::Error> for Error {
fn from(e: zvariant::Error) -> Self {
impl From<zbus::zvariant::Error> for Error {
fn from(e: zbus::zvariant::Error) -> Self {
Error::Zbus(e.into())
}
}

View File

@ -1,7 +1,6 @@
use enumflags2::{bitflags, BitFlags};
use serde::{Deserialize, Serialize};
use zbus::dbus_proxy;
use zvariant::Type;
use zbus::{dbus_proxy, zvariant::Type};
#[bitflags]
#[repr(u32)]

View File

@ -1,6 +1,5 @@
use serde_repr::{Deserialize_repr, Serialize_repr};
use zbus::dbus_proxy;
use zvariant::Type;
use zbus::{dbus_proxy, zvariant::Type};
#[repr(u32)]
#[derive(Deserialize_repr, Serialize_repr, Type, Debug, Hash, PartialEq, Eq, Clone, Copy)]

View File

@ -28,7 +28,7 @@ use crate::{Chardev, Error, Result};
struct InnerHandler {
#[allow(unused)] // keep the device opened, as rusb doesn't take it
#[cfg(unix)]
device_fd: Option<zvariant::OwnedFd>,
device_fd: Option<zbus::zvariant::OwnedFd>,
stream: UnixStream,
ctxt: rusb::Context,
ctxt_thread: Option<JoinHandle<()>>,

View File

@ -12,15 +12,18 @@ qmp = ["qemu-display/qmp"]
log = "0.4"
pretty_env_logger = "0.4"
once_cell = "1.5"
zbus = { version = "3.11" }
zbus = { version = "4" }
qemu-display = { path = "../qemu-display" }
keycodemap = { path = "../keycodemap" }
rdw = { package = "rdw4", version = "0.1", features = ["bindings"] }
futures-util = "0.3"
futures = "0.3"
async-trait = "0.1"
tracing-subscriber = { version = "0.3.11", features = ["env-filter" , "fmt"], default-features = false }
[target.'cfg(target_os = "windows")'.dependencies]
[target.'cfg(unix)'.dependencies]
rdw = { package = "rdw4", version = "0.1", features = ["bindings"] }
[target.'cfg(windows)'.dependencies]
uds_windows = "1.0.2"
windows = { version = "0.43.0", features = ["Win32_System_Memory", "Win32_Foundation"] }
rdw = { package = "rdw4", version = "0.1", features = ["bindings"], default-features = false }

View File

@ -212,14 +212,14 @@ mod imp {
continue;
}
this.obj().set_display_size(Some((s.width as _, s.height as _)));
this.obj().update_area(0, 0, s.width as _, s.height as _, s.stride as _, &s.data);
this.obj().update_area(0, 0, s.width as _, s.height as _, s.stride as _, Some(&s.data));
}
Update(u) => {
if u.format != 0x20020888 {
log::warn!("Format not yet supported: {:X}", u.format);
continue;
}
this.obj().update_area(u.x as _, u.y as _, u.w as _, u.h as _, u.stride as _, &u.data);
this.obj().update_area(u.x as _, u.y as _, u.w as _, u.h as _, u.stride as _, Some(&u.data));
}
#[cfg(windows)]
ScanoutMap(s) => {
@ -242,7 +242,7 @@ mod imp {
let map = MemoryMap { ptr, handle, offset, size };
this.obj().set_display_size(Some((s.width as _, s.height as _)));
this.obj().update_area(0, 0, s.width as _, s.height as _, s.stride as _, map.as_bytes());
this.obj().update_area(0, 0, s.width as _, s.height as _, s.stride as _, Some(map.as_bytes()));
this.scanout_map.replace(Some((map, s.stride)));
}
#[cfg(windows)]
@ -255,7 +255,7 @@ mod imp {
};
let stride = *stride;
let bytes = map.as_bytes();
this.obj().update_area(u.x as _, u.y as _, u.w as _, u.h as _, stride as _, &bytes[u.y as usize * stride as usize + u.x as usize * 4..]);
this.obj().update_area(u.x as _, u.y as _, u.w as _, u.h as _, stride as _, Some(&bytes[u.y as usize * stride as usize + u.x as usize * 4..]));
}
#[cfg(windows)]
ScanoutD3dTexture2d(s) => {
@ -273,9 +273,9 @@ mod imp {
}));
}
#[cfg(windows)]
UpdateD3dTexture2d { wait_tx, .. } => {
UpdateD3dTexture2d { wait_tx, update } => {
this.obj().set_d3d11_texture2d_can_acquire(true);
this.obj().render();
this.obj().update_area(update.x, update.y, update.w, update.h, 0, None);
this.obj().set_d3d11_texture2d_can_acquire(false);
let _ = wait_tx.send(());
}
@ -294,8 +294,8 @@ mod imp {
});
}
#[cfg(unix)]
UpdateDMABUF { wait_tx, .. } => {
this.obj().render();
UpdateDMABUF { wait_tx, update } => {
this.obj().update_area(update.x, update.y, update.w, update.h, 0, None);
let _ = wait_tx.send(());
}
Disable => {
@ -372,14 +372,14 @@ enum ConsoleEvent {
ScanoutD3dTexture2d(qemu_display::ScanoutD3dTexture2d),
#[cfg(windows)]
UpdateD3dTexture2d {
_update: qemu_display::UpdateD3dTexture2d,
update: qemu_display::UpdateD3dTexture2d,
wait_tx: futures::channel::oneshot::Sender<()>,
},
#[cfg(unix)]
ScanoutDMABUF(qemu_display::ScanoutDMABUF),
#[cfg(unix)]
UpdateDMABUF {
_update: qemu_display::UpdateDMABUF,
update: qemu_display::UpdateDMABUF,
wait_tx: futures::channel::oneshot::Sender<()>,
},
Disable,
@ -424,9 +424,9 @@ impl ConsoleListenerD3d11Handler for ConsoleHandler {
}
#[cfg(windows)]
async fn update_texture2d(&mut self, _update: qemu_display::UpdateD3dTexture2d) {
async fn update_texture2d(&mut self, update: qemu_display::UpdateD3dTexture2d) {
let (wait_tx, wait_rx) = futures::channel::oneshot::channel();
self.send(ConsoleEvent::UpdateD3dTexture2d { _update, wait_tx });
self.send(ConsoleEvent::UpdateD3dTexture2d { update, wait_tx });
if let Err(e) = wait_rx.await {
log::warn!("wait update d3d texture2d failed: {}", e);
}
@ -449,9 +449,9 @@ impl ConsoleListenerHandler for ConsoleHandler {
}
#[cfg(unix)]
async fn update_dmabuf(&mut self, _update: qemu_display::UpdateDMABUF) {
async fn update_dmabuf(&mut self, update: qemu_display::UpdateDMABUF) {
let (wait_tx, wait_rx) = futures::channel::oneshot::channel();
self.send(ConsoleEvent::UpdateDMABUF { _update, wait_tx });
self.send(ConsoleEvent::UpdateDMABUF { update, wait_tx });
if let Err(e) = wait_rx.await {
log::warn!("wait update dmabuf failed: {}", e);
}

View File

@ -270,7 +270,7 @@ impl App {
}
}
window.show();
window.present();
});
});
@ -281,10 +281,10 @@ impl App {
action_usb.connect_activate(move |_, _| {
let usbredir = app_clone.inner.usbredir.borrow();
if let Some(usbredir) = usbredir.as_ref() {
let dialog = gtk::Dialog::new();
let dialog = gtk::Window::new();
dialog.set_transient_for(app_clone.inner.app.active_window().as_ref());
dialog.set_child(Some(&usbredir.widget()));
dialog.show();
dialog.present();
}
});
app.inner.app.add_action(&action_usb);

View File

@ -13,4 +13,5 @@ futures = "0.3.13"
[dependencies.vte]
package = "vte4"
version = "0.6"
version = "0.8"
git = "https://gitlab.gnome.org/World/Rust/vte4-rs"