feat: 初步增加 Windows 支持

This commit is contained in:
mofeng-git
2026-05-18 22:43:28 +08:00
parent 0b9d94f53f
commit 935fa823f2
163 changed files with 11419 additions and 7581 deletions

View File

@@ -1,29 +1,38 @@
use axum::Json;
#[cfg(unix)]
use serde::Deserialize;
use crate::atx::{discover_devices, AtxDevices};
#[cfg(unix)]
use crate::error::{AppError, Result};
use crate::video::usb_reset;
#[cfg(unix)]
use crate::platform::usb_reset;
pub async fn list_atx_devices() -> Json<AtxDevices> {
Json(discover_devices())
}
#[cfg(unix)]
pub async fn list_usb_devices() -> Json<Vec<usb_reset::UsbDeviceInfo>> {
Json(usb_reset::list_usb_devices())
}
#[cfg(unix)]
#[derive(Deserialize)]
pub struct UsbResetRequest {
pub bus_num: u32,
pub dev_num: u32,
}
#[cfg(unix)]
pub async fn reset_usb_device(Json(req): Json<UsbResetRequest>) -> Result<Json<serde_json::Value>> {
usb_reset::reset_usb_device(req.bus_num, req.dev_num).map_err(|e| {
AppError::VideoError(format!(
"USB reset failed for device {}-{}: {}",
req.bus_num, req.dev_num, e
AppError::Io(std::io::Error::new(
e.kind(),
format!(
"USB reset failed for device {}-{}: {}",
req.bus_num, req.dev_num, e
),
))
})?;
Ok(Json(serde_json::json!({