diff options
| author | bbb651 <bar.ye651@gmail.com> | 2024-12-10 01:58:26 +0200 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-01-02 08:50:48 +0300 |
| commit | 0113292cf6a77aea55739c7e779a891786aa35bd (patch) | |
| tree | 1ded074e286b46bf6a622f320e3a53d9cf81d4f9 /src/dbus | |
| parent | 4741ab2e0465275d58c36db426b169c742d964cf (diff) | |
| download | niri-0113292cf6a77aea55739c7e779a891786aa35bd.tar.gz niri-0113292cf6a77aea55739c7e779a891786aa35bd.tar.bz2 niri-0113292cf6a77aea55739c7e779a891786aa35bd.zip | |
Upgrade `zbus` and `async-io`
Diffstat (limited to 'src/dbus')
| -rw-r--r-- | src/dbus/freedesktop_screensaver.rs | 9 | ||||
| -rw-r--r-- | src/dbus/gnome_shell_introspect.rs | 9 | ||||
| -rw-r--r-- | src/dbus/gnome_shell_screenshot.rs | 4 | ||||
| -rw-r--r-- | src/dbus/mod.rs | 2 | ||||
| -rw-r--r-- | src/dbus/mutter_display_config.rs | 9 | ||||
| -rw-r--r-- | src/dbus/mutter_screen_cast.rs | 31 | ||||
| -rw-r--r-- | src/dbus/mutter_service_channel.rs | 13 |
7 files changed, 40 insertions, 37 deletions
diff --git a/src/dbus/freedesktop_screensaver.rs b/src/dbus/freedesktop_screensaver.rs index 19bb6bf0..2ed874aa 100644 --- a/src/dbus/freedesktop_screensaver.rs +++ b/src/dbus/freedesktop_screensaver.rs @@ -6,9 +6,10 @@ use std::sync::{Arc, Mutex, OnceLock}; use anyhow::Context; use futures_util::StreamExt; use zbus::fdo::{self, RequestNameFlags}; +use zbus::message::Header; use zbus::names::{OwnedUniqueName, UniqueName}; use zbus::zvariant::NoneValue; -use zbus::{dbus_interface, MessageHeader, Task}; +use zbus::{interface, Task}; use super::Start; @@ -20,11 +21,11 @@ pub struct ScreenSaver { monitor_task: Arc<OnceLock<Task<()>>>, } -#[dbus_interface(name = "org.freedesktop.ScreenSaver")] +#[interface(name = "org.freedesktop.ScreenSaver")] impl ScreenSaver { async fn inhibit( &mut self, - #[zbus(header)] hdr: MessageHeader<'_>, + #[zbus(header)] hdr: Header<'_>, application_name: &str, reason_for_inhibit: &str, ) -> fdo::Result<u32> { @@ -33,7 +34,7 @@ impl ScreenSaver { hdr.sender() ); - let Ok(Some(name)) = hdr.sender() else { + let Some(name) = hdr.sender() else { return Err(fdo::Error::Failed(String::from("no sender"))); }; let name = OwnedUniqueName::from(name.to_owned()); diff --git a/src/dbus/gnome_shell_introspect.rs b/src/dbus/gnome_shell_introspect.rs index d9485d81..5151351b 100644 --- a/src/dbus/gnome_shell_introspect.rs +++ b/src/dbus/gnome_shell_introspect.rs @@ -1,8 +1,9 @@ use std::collections::HashMap; use zbus::fdo::{self, RequestNameFlags}; +use zbus::interface; +use zbus::object_server::SignalEmitter; use zbus::zvariant::{SerializeDict, Type, Value}; -use zbus::{dbus_interface, SignalContext}; use super::Start; @@ -33,7 +34,7 @@ pub struct WindowProperties { pub app_id: String, } -#[dbus_interface(name = "org.gnome.Shell.Introspect")] +#[interface(name = "org.gnome.Shell.Introspect")] impl Introspect { async fn get_windows(&self) -> fdo::Result<HashMap<u64, WindowProperties>> { if let Err(err) = self.to_niri.send(IntrospectToNiri::GetWindows) { @@ -52,8 +53,8 @@ impl Introspect { // FIXME: call this upon window changes, once more of the infrastructure is there (will be // needed for the event stream IPC anyway). - #[dbus_interface(signal)] - pub async fn windows_changed(ctxt: &SignalContext<'_>) -> zbus::Result<()>; + #[zbus(signal)] + pub async fn windows_changed(ctxt: &SignalEmitter<'_>) -> zbus::Result<()>; } impl Introspect { diff --git a/src/dbus/gnome_shell_screenshot.rs b/src/dbus/gnome_shell_screenshot.rs index 61121990..742f72b2 100644 --- a/src/dbus/gnome_shell_screenshot.rs +++ b/src/dbus/gnome_shell_screenshot.rs @@ -1,7 +1,7 @@ use std::path::PathBuf; -use zbus::dbus_interface; use zbus::fdo::{self, RequestNameFlags}; +use zbus::interface; use super::Start; @@ -18,7 +18,7 @@ pub enum NiriToScreenshot { ScreenshotResult(Option<PathBuf>), } -#[dbus_interface(name = "org.gnome.Shell.Screenshot")] +#[interface(name = "org.gnome.Shell.Screenshot")] impl Screenshot { async fn screenshot( &self, diff --git a/src/dbus/mod.rs b/src/dbus/mod.rs index a231a1d1..347b16fd 100644 --- a/src/dbus/mod.rs +++ b/src/dbus/mod.rs @@ -1,5 +1,5 @@ use zbus::blocking::Connection; -use zbus::Interface; +use zbus::object_server::Interface; use crate::niri::State; diff --git a/src/dbus/mutter_display_config.rs b/src/dbus/mutter_display_config.rs index b6df149c..e535e583 100644 --- a/src/dbus/mutter_display_config.rs +++ b/src/dbus/mutter_display_config.rs @@ -3,8 +3,9 @@ use std::sync::{Arc, Mutex}; use serde::Serialize; use zbus::fdo::RequestNameFlags; +use zbus::object_server::SignalEmitter; use zbus::zvariant::{self, OwnedValue, Type}; -use zbus::{dbus_interface, fdo, SignalContext}; +use zbus::{fdo, interface}; use super::Start; use crate::backend::IpcOutputMap; @@ -43,7 +44,7 @@ pub struct LogicalMonitor { properties: HashMap<String, OwnedValue>, } -#[dbus_interface(name = "org.gnome.Mutter.DisplayConfig")] +#[interface(name = "org.gnome.Mutter.DisplayConfig")] impl DisplayConfig { async fn get_current_state( &self, @@ -156,8 +157,8 @@ impl DisplayConfig { Ok((0, monitors, logical_monitors, properties)) } - #[dbus_interface(signal)] - pub async fn monitors_changed(ctxt: &SignalContext<'_>) -> zbus::Result<()>; + #[zbus(signal)] + pub async fn monitors_changed(ctxt: &SignalEmitter<'_>) -> zbus::Result<()>; } impl DisplayConfig { diff --git a/src/dbus/mutter_screen_cast.rs b/src/dbus/mutter_screen_cast.rs index 0aba084e..a19535ae 100644 --- a/src/dbus/mutter_screen_cast.rs +++ b/src/dbus/mutter_screen_cast.rs @@ -5,8 +5,9 @@ use std::sync::{Arc, Mutex}; use serde::Deserialize; use zbus::fdo::RequestNameFlags; +use zbus::object_server::{InterfaceRef, SignalEmitter}; use zbus::zvariant::{DeserializeDict, OwnedObjectPath, SerializeDict, Type, Value}; -use zbus::{dbus_interface, fdo, InterfaceRef, ObjectServer, SignalContext}; +use zbus::{fdo, interface, ObjectServer}; use super::Start; use crate::backend::IpcOutputMap; @@ -94,14 +95,14 @@ pub enum ScreenCastToNiri { session_id: usize, target: StreamTargetId, cursor_mode: CursorMode, - signal_ctx: SignalContext<'static>, + signal_ctx: SignalEmitter<'static>, }, StopCast { session_id: usize, }, } -#[dbus_interface(name = "org.gnome.Mutter.ScreenCast")] +#[interface(name = "org.gnome.Mutter.ScreenCast")] impl ScreenCast { async fn create_session( &self, @@ -136,26 +137,26 @@ impl ScreenCast { Ok(path) } - #[dbus_interface(property)] + #[zbus(property)] async fn version(&self) -> i32 { 4 } } -#[dbus_interface(name = "org.gnome.Mutter.ScreenCast.Session")] +#[interface(name = "org.gnome.Mutter.ScreenCast.Session")] impl Session { async fn start(&self) { debug!("start"); for (stream, iface) in &*self.streams.lock().unwrap() { - stream.start(self.id, iface.signal_context().clone()); + stream.start(self.id, iface.signal_emitter().clone()); } } pub async fn stop( &self, #[zbus(object_server)] server: &ObjectServer, - #[zbus(signal_context)] ctxt: SignalContext<'_>, + #[zbus(signal_context)] ctxt: SignalEmitter<'_>, ) { debug!("stop"); @@ -175,7 +176,7 @@ impl Session { let streams = mem::take(&mut *self.streams.lock().unwrap()); for (_, iface) in streams.iter() { server - .remove::<Stream, _>(iface.signal_context().path()) + .remove::<Stream, _>(iface.signal_emitter().path()) .await .unwrap(); } @@ -264,17 +265,17 @@ impl Session { Ok(path) } - #[dbus_interface(signal)] - async fn closed(ctxt: &SignalContext<'_>) -> zbus::Result<()>; + #[zbus(signal)] + async fn closed(ctxt: &SignalEmitter<'_>) -> zbus::Result<()>; } -#[dbus_interface(name = "org.gnome.Mutter.ScreenCast.Stream")] +#[interface(name = "org.gnome.Mutter.ScreenCast.Stream")] impl Stream { - #[dbus_interface(signal)] - pub async fn pipe_wire_stream_added(ctxt: &SignalContext<'_>, node_id: u32) + #[zbus(signal)] + pub async fn pipe_wire_stream_added(ctxt: &SignalEmitter<'_>, node_id: u32) -> zbus::Result<()>; - #[dbus_interface(property)] + #[zbus(property)] async fn parameters(&self) -> StreamParameters { match &self.target { StreamTarget::Output(output) => { @@ -361,7 +362,7 @@ impl Stream { } } - fn start(&self, session_id: usize, ctxt: SignalContext<'static>) { + fn start(&self, session_id: usize, ctxt: SignalEmitter<'static>) { if self.was_started.load(Ordering::SeqCst) { return; } diff --git a/src/dbus/mutter_service_channel.rs b/src/dbus/mutter_service_channel.rs index c78dcbee..d2be1c5f 100644 --- a/src/dbus/mutter_service_channel.rs +++ b/src/dbus/mutter_service_channel.rs @@ -1,9 +1,8 @@ -use std::os::fd::{FromRawFd, IntoRawFd}; use std::os::unix::net::UnixStream; use std::sync::Arc; use smithay::reexports::wayland_server::DisplayHandle; -use zbus::dbus_interface; +use zbus::{fdo, interface, zvariant}; use super::Start; use crate::niri::ClientState; @@ -12,14 +11,14 @@ pub struct ServiceChannel { display: DisplayHandle, } -#[dbus_interface(name = "org.gnome.Mutter.ServiceChannel")] +#[interface(name = "org.gnome.Mutter.ServiceChannel")] impl ServiceChannel { async fn open_wayland_service_connection( &mut self, service_client_type: u32, - ) -> zbus::fdo::Result<zbus::zvariant::OwnedFd> { + ) -> fdo::Result<zvariant::OwnedFd> { if service_client_type != 1 { - return Err(zbus::fdo::Error::InvalidArgs( + return Err(fdo::Error::InvalidArgs( "Invalid service client type".to_owned(), )); } @@ -34,7 +33,7 @@ impl ServiceChannel { credentials_unknown: true, }); self.display.insert_client(sock2, data).unwrap(); - Ok(unsafe { zbus::zvariant::OwnedFd::from_raw_fd(sock1.into_raw_fd()) }) + Ok(zvariant::OwnedFd::from(std::os::fd::OwnedFd::from(sock1))) } } @@ -46,7 +45,7 @@ impl ServiceChannel { impl Start for ServiceChannel { fn start(self) -> anyhow::Result<zbus::blocking::Connection> { - let conn = zbus::blocking::ConnectionBuilder::session()? + let conn = zbus::blocking::connection::Builder::session()? .name("org.gnome.Mutter.ServiceChannel")? .serve_at("/org/gnome/Mutter/ServiceChannel", self)? .build()?; |
