mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-04-30 01:46:37 +08:00
fix: 补齐 ATX 控制器缺失接口并完成全项目 clippy -D warnings 修复
This commit is contained in:
@@ -184,14 +184,7 @@ impl AudioCapturer {
|
||||
let log_throttler = self.log_throttler.clone();
|
||||
|
||||
let handle = tokio::task::spawn_blocking(move || {
|
||||
capture_loop(
|
||||
config,
|
||||
state,
|
||||
frame_tx,
|
||||
stop_flag,
|
||||
sequence,
|
||||
log_throttler,
|
||||
);
|
||||
capture_loop(config, state, frame_tx, stop_flag, sequence, log_throttler);
|
||||
});
|
||||
|
||||
*self.capture_handle.lock().await = Some(handle);
|
||||
|
||||
@@ -39,7 +39,9 @@ impl AudioQuality {
|
||||
}
|
||||
|
||||
/// Parse from string
|
||||
#[allow(clippy::should_implement_trait)]
|
||||
pub fn from_str(s: &str) -> Self {
|
||||
|
||||
match s.to_lowercase().as_str() {
|
||||
"voice" | "low" => AudioQuality::Voice,
|
||||
"high" | "music" => AudioQuality::High,
|
||||
|
||||
@@ -85,9 +85,7 @@ pub fn enumerate_audio_devices_with_current(
|
||||
let mut devices = Vec::new();
|
||||
|
||||
// Try to enumerate cards
|
||||
let cards = match alsa::card::Iter::new() {
|
||||
i => i,
|
||||
};
|
||||
let cards = alsa::card::Iter::new();
|
||||
|
||||
for card_result in cards {
|
||||
let card = match card_result {
|
||||
|
||||
@@ -17,8 +17,10 @@ use crate::utils::LogThrottler;
|
||||
|
||||
/// Audio health status
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
#[derive(Default)]
|
||||
pub enum AudioHealthStatus {
|
||||
/// Device is healthy and operational
|
||||
#[default]
|
||||
Healthy,
|
||||
/// Device has an error, attempting recovery
|
||||
Error {
|
||||
@@ -33,11 +35,6 @@ pub enum AudioHealthStatus {
|
||||
Disconnected,
|
||||
}
|
||||
|
||||
impl Default for AudioHealthStatus {
|
||||
fn default() -> Self {
|
||||
Self::Healthy
|
||||
}
|
||||
}
|
||||
|
||||
/// Audio health monitor configuration
|
||||
#[derive(Debug, Clone)]
|
||||
@@ -166,7 +163,7 @@ impl AudioHealthMonitor {
|
||||
let attempt = self.retry_count.load(Ordering::Relaxed);
|
||||
|
||||
// Only publish every 5 attempts to avoid event spam
|
||||
if attempt == 1 || attempt % 5 == 0 {
|
||||
if attempt == 1 || attempt.is_multiple_of(5) {
|
||||
debug!("Audio reconnecting, attempt {}", attempt);
|
||||
|
||||
if let Some(ref events) = *self.events.read().await {
|
||||
|
||||
@@ -15,8 +15,10 @@ use crate::error::{AppError, Result};
|
||||
|
||||
/// Audio stream state
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
#[derive(Default)]
|
||||
pub enum AudioStreamState {
|
||||
/// Stream is stopped
|
||||
#[default]
|
||||
Stopped,
|
||||
/// Stream is starting up
|
||||
Starting,
|
||||
@@ -26,14 +28,10 @@ pub enum AudioStreamState {
|
||||
Error,
|
||||
}
|
||||
|
||||
impl Default for AudioStreamState {
|
||||
fn default() -> Self {
|
||||
Self::Stopped
|
||||
}
|
||||
}
|
||||
|
||||
/// Audio streamer configuration
|
||||
#[derive(Debug, Clone)]
|
||||
#[derive(Default)]
|
||||
pub struct AudioStreamerConfig {
|
||||
/// Audio capture configuration
|
||||
pub capture: AudioConfig,
|
||||
@@ -41,14 +39,6 @@ pub struct AudioStreamerConfig {
|
||||
pub opus: OpusConfig,
|
||||
}
|
||||
|
||||
impl Default for AudioStreamerConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
capture: AudioConfig::default(),
|
||||
opus: OpusConfig::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl AudioStreamerConfig {
|
||||
/// Create config for a specific device with default quality
|
||||
@@ -290,11 +280,7 @@ impl AudioStreamer {
|
||||
// Encode to Opus
|
||||
let opus_result = {
|
||||
let mut enc_guard = encoder.lock().await;
|
||||
if let Some(ref mut enc) = *enc_guard {
|
||||
Some(enc.encode_frame(&audio_frame))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
(*enc_guard).as_mut().map(|enc| enc.encode_frame(&audio_frame))
|
||||
};
|
||||
|
||||
match opus_result {
|
||||
|
||||
Reference in New Issue
Block a user