mirror of
https://gitlab.steamos.cloud/holo/steamos-manager.git
synced 2025-07-12 01:12:30 -04:00
udev: Rename to UdevEvents1 and move to root manager
This commit is contained in:
parent
4b194774af
commit
36e88484a4
2 changed files with 38 additions and 7 deletions
|
@ -440,7 +440,7 @@
|
||||||
@short_description: Specific udev events that are monitored to be
|
@short_description: Specific udev events that are monitored to be
|
||||||
bubbled up to the desktop interface.
|
bubbled up to the desktop interface.
|
||||||
-->
|
-->
|
||||||
<interface name="com.steampowered.SteamOSManager1.UdevEvents">
|
<interface name="com.steampowered.SteamOSManager1.UdevEvents1">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
OverCurrent:
|
OverCurrent:
|
||||||
|
@ -452,7 +452,7 @@
|
||||||
@count: The number of times this devices has had an over-current
|
@count: The number of times this devices has had an over-current
|
||||||
event.
|
event.
|
||||||
-->
|
-->
|
||||||
<signal name="OverCurrent">
|
<signal name="UsbOverCurrent">
|
||||||
<arg type="s" name="devpath"/>
|
<arg type="s" name="devpath"/>
|
||||||
<arg type="s" name="port"/>
|
<arg type="s" name="port"/>
|
||||||
<arg type="t" name="count"/>
|
<arg type="t" name="count"/>
|
||||||
|
|
41
src/udev.rs
41
src/udev.rs
|
@ -18,7 +18,7 @@ use zbus::{self, interface, Connection, InterfaceRef, SignalContext};
|
||||||
use crate::thread::spawn;
|
use crate::thread::spawn;
|
||||||
use crate::Service;
|
use crate::Service;
|
||||||
|
|
||||||
const PATH: &str = "/com/steampowered/SteamOSManager1/UdevEvents";
|
const PATH: &str = "/com/steampowered/SteamOSManager1";
|
||||||
|
|
||||||
pub(crate) struct UdevMonitor
|
pub(crate) struct UdevMonitor
|
||||||
where
|
where
|
||||||
|
@ -65,7 +65,7 @@ impl Service for UdevMonitor {
|
||||||
port,
|
port,
|
||||||
count,
|
count,
|
||||||
} => {
|
} => {
|
||||||
UdevDbusObject::over_current(
|
UdevDbusObject::usb_over_current(
|
||||||
self.udev_object.signal_context(),
|
self.udev_object.signal_context(),
|
||||||
devpath.as_str(),
|
devpath.as_str(),
|
||||||
port.as_str(),
|
port.as_str(),
|
||||||
|
@ -88,7 +88,7 @@ impl UdevMonitor {
|
||||||
let object_server = connection.object_server();
|
let object_server = connection.object_server();
|
||||||
ensure!(
|
ensure!(
|
||||||
object_server.at(PATH, UdevDbusObject {}).await?,
|
object_server.at(PATH, UdevDbusObject {}).await?,
|
||||||
"Could not register UdevEvents"
|
"Could not register UdevEvents1"
|
||||||
);
|
);
|
||||||
let udev_object: InterfaceRef<UdevDbusObject> = object_server.interface(PATH).await?;
|
let udev_object: InterfaceRef<UdevDbusObject> = object_server.interface(PATH).await?;
|
||||||
let (shutdown_receiver, shutdown_sender) = pipe()?;
|
let (shutdown_receiver, shutdown_sender) = pipe()?;
|
||||||
|
@ -100,10 +100,10 @@ impl UdevMonitor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[interface(name = "com.steampowered.SteamOSManager1.UdevEvents")]
|
#[interface(name = "com.steampowered.SteamOSManager1.UdevEvents1")]
|
||||||
impl UdevDbusObject {
|
impl UdevDbusObject {
|
||||||
#[zbus(signal)]
|
#[zbus(signal)]
|
||||||
async fn over_current(
|
async fn usb_over_current(
|
||||||
signal_ctxt: &SignalContext<'_>,
|
signal_ctxt: &SignalContext<'_>,
|
||||||
devpath: &str,
|
devpath: &str,
|
||||||
port: &str,
|
port: &str,
|
||||||
|
@ -170,3 +170,34 @@ fn process_usb_event(ev: &Event, tx: &UnboundedSender<UdevEvent>) -> Result<()>
|
||||||
})?;
|
})?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod test {
|
||||||
|
use super::*;
|
||||||
|
use std::time::Duration;
|
||||||
|
use tokio::time::sleep;
|
||||||
|
use zbus::Interface;
|
||||||
|
|
||||||
|
use crate::testing;
|
||||||
|
|
||||||
|
#[tokio::test]
|
||||||
|
async fn test_interface_matches() {
|
||||||
|
let mut handle = testing::start();
|
||||||
|
let connection = handle.new_dbus().await.expect("new_dbus");
|
||||||
|
sleep(Duration::from_millis(1)).await;
|
||||||
|
let object_server = connection.object_server();
|
||||||
|
object_server.at(PATH, UdevDbusObject {}).await.expect("at");
|
||||||
|
|
||||||
|
let remote =
|
||||||
|
testing::InterfaceIntrospection::from_remote::<UdevDbusObject, _>(&connection, PATH)
|
||||||
|
.await
|
||||||
|
.expect("remove");
|
||||||
|
let local = testing::InterfaceIntrospection::from_local(
|
||||||
|
"com.steampowered.SteamOSManager1.xml",
|
||||||
|
UdevDbusObject::name().to_string(),
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.expect("local");
|
||||||
|
assert!(remote.compare(&local));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue