feat: 支持设置音量。

This commit is contained in:
2023-05-07 18:18:34 +08:00
parent 9109518822
commit 2c5ac11579
8 changed files with 238 additions and 9 deletions

View File

@@ -45,6 +45,8 @@ impl Board {
let display_setting_request_sender = board_message_channels
.display_setting_request_sender
.clone();
let volume_setting_request_sender =
board_message_channels.volume_setting_request_sender.clone();
loop {
match socket.try_recv(&mut buf) {
@@ -60,6 +62,8 @@ impl Board {
if let Err(err) = result {
error!("send display setting request to channel failed: {:?}", err);
}
} else if buf[0] == 4 {
let result = volume_setting_request_sender.send(buf[1] as f32 / 100.0);
}
}
Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => {

View File

@@ -6,6 +6,7 @@ use super::DisplaySettingRequest;
pub struct BoardMessageChannels {
pub display_setting_request_sender: Arc<broadcast::Sender<DisplaySettingRequest>>,
pub volume_setting_request_sender: Arc<broadcast::Sender<f32>>,
}
impl BoardMessageChannels {
@@ -19,8 +20,12 @@ impl BoardMessageChannels {
let (display_setting_request_sender, _) = broadcast::channel(16);
let display_setting_request_sender = Arc::new(display_setting_request_sender);
let (volume_setting_request_sender, _) = broadcast::channel(16);
let volume_setting_request_sender = Arc::new(volume_setting_request_sender);
Self {
display_setting_request_sender,
volume_setting_request_sender,
}
}
}

View File

@@ -3,9 +3,9 @@ use std::{collections::HashMap, sync::Arc, time::Duration};
use futures::future::join_all;
use mdns_sd::{ServiceDaemon, ServiceEvent};
use paris::{error, info, warn};
use tokio::sync::{watch, OnceCell, RwLock, broadcast};
use tokio::sync::{watch, OnceCell, RwLock};
use super::{Board, BoardInfo, DisplaySettingRequest};
use super::{Board, BoardInfo};
#[derive(Debug, Clone)]
pub struct UdpRpc {