mirror of
https://gitlab.steamos.cloud/holo/steamos-manager.git
synced 2025-07-10 00:20:29 -04:00
hardware: Refactor device detection to be more future-proof
This commit is contained in:
parent
7d8bd602a7
commit
f31d76ea53
1 changed files with 16 additions and 11 deletions
|
@ -77,17 +77,20 @@ pub(crate) async fn steam_deck_variant() -> Result<SteamDeckVariant> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) async fn device_type() -> Result<DeviceType> {
|
pub(crate) async fn device_type() -> Result<DeviceType> {
|
||||||
if variant().await? != SteamDeckVariant::Unknown {
|
let sys_vendor = fs::read_to_string(path(SYS_VENDOR_PATH)).await?;
|
||||||
return Ok(DeviceType::SteamDeck);
|
let product_name = fs::read_to_string(path(PRODUCT_NAME_PATH)).await?;
|
||||||
}
|
let board_name = fs::read_to_string(path(BOARD_NAME_PATH)).await?;
|
||||||
let board_vendor = fs::read_to_string(path(SYS_VENDOR_PATH)).await?;
|
Ok(
|
||||||
if board_vendor.trim_end() == "LENOVO" {
|
match (
|
||||||
let product_name = fs::read_to_string(path(PRODUCT_NAME_PATH)).await?;
|
sys_vendor.trim_end(),
|
||||||
if ["83L3", "83N6", "83Q2", "83Q3"].contains(&product_name.trim_end()) {
|
product_name.trim_end(),
|
||||||
return Ok(DeviceType::LegionGoS);
|
board_name.trim_end(),
|
||||||
}
|
) {
|
||||||
}
|
("LENOVO", "83L3" | "83N6" | "83Q2" | "83Q3", _) => DeviceType::LegionGoS,
|
||||||
Ok(DeviceType::Unknown)
|
("Valve", _, "Jupiter" | "Galileo") => DeviceType::SteamDeck,
|
||||||
|
_ => DeviceType::Unknown,
|
||||||
|
},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) struct FanControl {
|
pub(crate) struct FanControl {
|
||||||
|
@ -175,10 +178,12 @@ pub mod test {
|
||||||
SteamDeckVariant::Jupiter => {
|
SteamDeckVariant::Jupiter => {
|
||||||
write(crate::path(SYS_VENDOR_PATH), "Valve\n").await?;
|
write(crate::path(SYS_VENDOR_PATH), "Valve\n").await?;
|
||||||
write(crate::path(BOARD_NAME_PATH), "Jupiter\n").await?;
|
write(crate::path(BOARD_NAME_PATH), "Jupiter\n").await?;
|
||||||
|
write(crate::path(PRODUCT_NAME_PATH), "Jupiter\n").await?;
|
||||||
}
|
}
|
||||||
SteamDeckVariant::Galileo => {
|
SteamDeckVariant::Galileo => {
|
||||||
write(crate::path(SYS_VENDOR_PATH), "Valve\n").await?;
|
write(crate::path(SYS_VENDOR_PATH), "Valve\n").await?;
|
||||||
write(crate::path(BOARD_NAME_PATH), "Galileo\n").await?;
|
write(crate::path(BOARD_NAME_PATH), "Galileo\n").await?;
|
||||||
|
write(crate::path(PRODUCT_NAME_PATH), "Galileo\n").await?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue