Skip to content

Commit d61899f

Browse files
committed
code cleaning
1 parent 6992b66 commit d61899f

File tree

1 file changed

+1
-153
lines changed

1 file changed

+1
-153
lines changed

src/audio_player.rs

Lines changed: 1 addition & 153 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
use std::fs::OpenOptions;
2-
use std::io::{Cursor, Write};
1+
use std::io::Cursor;
32
use std::sync::{Arc, LazyLock};
43
use std::thread::sleep;
54
use std::time::Duration;
@@ -19,7 +18,6 @@ use pulse::sample::{Format, Spec};
1918
use pulse::stream::Direction;
2019
use rodio::{Decoder, Source};
2120
use serde::{Deserialize, Serialize};
22-
use tokio::net::UdpSocket;
2321
use tokio::sync::RwLock;
2422

2523
use crate::CONFIG_DIR;
@@ -232,153 +230,3 @@ pub async fn play_on_kira(audio: Vec<u8>) -> Result<()> {
232230
TTS_AUDIO_CONTROL.set_status_ready().await;
233231
Ok(())
234232
}
235-
236-
// ############################
237-
// pub async fn play_on_pipe(audio: Vec<u8>, pipe: impl AsRef<str>) -> Result<()> {
238-
// // let cursor = Cursor::new(audio);
239-
// // let source = Decoder::new(cursor)?.convert_samples::<u16>();
240-
// // let sample_rate = source.sample_rate();
241-
// // let channels = source.channels() as u8;
242-
243-
// let mut pipe = OpenOptions::new().write(true).open("/tmp/audio_pipe.mp3")?;
244-
// // log_trace!("Sample rate: {}, channels {}.", sample_rate, channels);
245-
// // log_trace!("Playing on pipe: {:?}", pipe.metadata());
246-
247-
// // let audio_data = source.into_iter().collect::<Vec<_>>();
248-
249-
// log_debug!("Setting audio player to busy");
250-
// let audio_chunks = audio.chunks(1024);
251-
// TTS_AUDIO_CONTROL.set_status_busy().await;
252-
253-
// for chunk in audio_chunks {
254-
// match TTS_AUDIO_CONTROL.get_status().await {
255-
// PlayerCommands::Busy => {
256-
// pipe.write(&chunk)?;
257-
// sleep(Duration::from_millis(10));
258-
// }
259-
// PlayerCommands::Stop => {
260-
// log_debug!("Stopping audio playback");
261-
// TTS_AUDIO_CONTROL.set_status_ready().await;
262-
// log_debug!("Setting audio player ready");
263-
// break;
264-
// }
265-
// _ => {}
266-
// }
267-
// }
268-
// log_debug!("Audio playback finished");
269-
// TTS_AUDIO_CONTROL.set_status_ready().await;
270-
271-
// Ok(())
272-
// }
273-
274-
// pub async fn play_udp(audio: Vec<u8>, _sink: impl AsRef<str>) -> Result<()> {
275-
// let udp_socket = tokio::net::UdpSocket::bind("0.0.0.0:0").await?;
276-
// udp_socket.connect("127.0.0.1:12345").await?;
277-
278-
// let cursor = Cursor::new(audio);
279-
// let source = Decoder::new(cursor)?.convert_samples::<f32>();
280-
// let sample_rate = source.sample_rate();
281-
// let channels = source.channels() as u8;
282-
283-
// log_trace!("Sample rate: {}, channels {}.", sample_rate, channels);
284-
285-
// // let (_stream, stream_handle) = OutputStream::try_default().unwrap();
286-
287-
// let spec = Spec {
288-
// format: Format::FLOAT32NE,
289-
// channels,
290-
// rate: sample_rate,
291-
// };
292-
// assert!(spec.is_valid());
293-
// let audio_data = source.into_iter().collect::<Vec<_>>();
294-
// // let audio_chunks = source.chunks(1024);
295-
296-
// let audio_bytes = audio_data
297-
// .iter()
298-
// .flat_map(|&x| x.to_le_bytes().to_vec())
299-
// .collect::<Vec<_>>();
300-
301-
// let audio_chunks = audio_bytes.chunks(1024);
302-
// // Calculate delay for each chunk (based on sample rate, channels, and chunk size)
303-
// let chunk_size = 1024; // Size of each chunk in bytes
304-
// let samples_per_chunk = chunk_size / std::mem::size_of::<f32>();
305-
// let seconds_per_chunk = samples_per_chunk as f64 / (sample_rate as f64 * channels as f64);
306-
// let delay = Duration::from_secs_f64(seconds_per_chunk);
307-
308-
// TTS_AUDIO_CONTROL.set_status_busy().await;
309-
// log_debug!("Setting audio player to busy");
310-
// for chunk in audio_chunks {
311-
// match TTS_AUDIO_CONTROL.get_status().await {
312-
// PlayerCommands::Busy => {
313-
// tokio::time::sleep(delay).await;
314-
// }
315-
// PlayerCommands::Stop => {
316-
// log_debug!("Stopping audio playback");
317-
// TTS_AUDIO_CONTROL.set_status_ready().await;
318-
// log_debug!("Setting audio player ready");
319-
// break;
320-
// }
321-
// _ => {}
322-
// }
323-
// }
324-
// log_debug!("Audio playback finished");
325-
// TTS_AUDIO_CONTROL.set_status_ready().await;
326-
// Ok(())
327-
// }
328-
329-
// pub async fn play_udp(audio: Vec<u8>, _sink: impl AsRef<str>) -> Result<()> {
330-
// let udp_socket = tokio::net::UdpSocket::bind("0.0.0.0:0").await?;
331-
// udp_socket.connect("127.0.0.1:12345").await?;
332-
333-
// udp_socket.send(&audio).await?;
334-
335-
// return Ok(());
336-
// let cursor = Cursor::new(audio);
337-
// let source = Decoder::new(cursor)?.convert_samples::<i16>();
338-
339-
// let sample_rate = source.sample_rate();
340-
// let channels = source.channels() as u8;
341-
342-
// log_debug!("Audio chunks duration: {:?}", source.inner().total_duration());
343-
344-
// let audio_chunks = source.into_iter().collect::<Vec<_>>();
345-
// log_debug!("Sample rate: {}, channels {}.", sample_rate, channels);
346-
347-
// let audio_duration = audio_chunks.len() as u32 / (sample_rate * channels as u32);
348-
// println!("Total chunk count: {}", audio_chunks.len() / channels as usize);
349-
// println!("Audio duration: {:?}", audio_duration);
350-
// println!(
351-
// "duration of single chunk is {:?}",
352-
// audio_duration as f32 / audio_chunks.len() as f32
353-
// );
354-
355-
// let spec = Spec {
356-
// format: Format::F32le, // You can safely send this as f32le via `to_le_bytes()`
357-
// channels,
358-
// rate: sample_rate,
359-
// };
360-
361-
// TTS_AUDIO_CONTROL.set_status_busy().await;
362-
// for chunk in audio_chunks {
363-
// match TTS_AUDIO_CONTROL.get_status().await {
364-
// PlayerCommands::Busy => {
365-
// // TODO: send chunk (e.g. over UDP, to pipe, etc.)
366-
// // Convert f32 samples to bytes
367-
// let bytes = chunk.to_le_bytes();
368-
369-
// //Example: send via socket or write to pipe
370-
// udp_socket.send(&bytes).await?;
371-
372-
// // tokio::time::sleep(chunk_duration).await;
373-
// }
374-
// PlayerCommands::Stop => {
375-
// TTS_AUDIO_CONTROL.set_status_ready().await;
376-
// break;
377-
// }
378-
// _ => {}
379-
// }
380-
// }
381-
382-
// TTS_AUDIO_CONTROL.set_status_ready().await;
383-
// Ok(())
384-
// }

0 commit comments

Comments
 (0)