code: throwing out mp3mini, fixing cargo issues on windows with ksni
This commit is contained in:
parent
543ea46ad0
commit
61ed1afe9f
5946
Cargo.lock
generated
Normal file
5946
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -14,7 +14,6 @@ dotenvy = "0.15.7"
|
|||||||
enigo = "0.2.1"
|
enigo = "0.2.1"
|
||||||
log = "0.4.20"
|
log = "0.4.20"
|
||||||
minijinja = { version = "2.0.1", features = ["loader"] }
|
minijinja = { version = "2.0.1", features = ["loader"] }
|
||||||
minimp3 = "0.5.1"
|
|
||||||
mp3-duration = "0.1.10"
|
mp3-duration = "0.1.10"
|
||||||
regex = "1.9.0"
|
regex = "1.9.0"
|
||||||
rodio = "0.18.1"
|
rodio = "0.18.1"
|
||||||
@ -22,11 +21,14 @@ serde = { version = "1.0.171", features = ["derive"] }
|
|||||||
tokio = { version = "1.29.1", features = ["full"] }
|
tokio = { version = "1.29.1", features = ["full"] }
|
||||||
xxhash-rust = { version = "0.8.6", features = ["xxh3", "const_xxh3"] }
|
xxhash-rust = { version = "0.8.6", features = ["xxh3", "const_xxh3"] }
|
||||||
eframe = "0.27.2"
|
eframe = "0.27.2"
|
||||||
tray-item = { version = "0.10", features = ["ksni"] }
|
tray-item = { version = "0.10" }
|
||||||
once_cell = "1.19.0"
|
once_cell = "1.19.0"
|
||||||
raw-window-handle = "0.6.2"
|
raw-window-handle = "0.6.2"
|
||||||
image = "0.25.1"
|
image = "0.25.1"
|
||||||
|
|
||||||
|
[target.'cfg(target_os = "linux")'.dependencies]
|
||||||
|
tray-item = { version = "0.10", features = ["ksni"] }
|
||||||
|
|
||||||
[target.'cfg(windows)'.dependencies]
|
[target.'cfg(windows)'.dependencies]
|
||||||
winit = "0.30"
|
winit = "0.30"
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
use cpal::traits::{DeviceTrait, HostTrait};
|
use cpal::traits::{DeviceTrait, HostTrait};
|
||||||
use cpal::{Device, Host};
|
use cpal::{Device, Host};
|
||||||
use log::{debug, error, info};
|
use log::{debug, error, info};
|
||||||
use minimp3::{Decoder, Error};
|
|
||||||
use regex::Regex;
|
use regex::Regex;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
@ -17,7 +16,6 @@ use std::thread;
|
|||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub enum SoundDecoder {
|
pub enum SoundDecoder {
|
||||||
Detect,
|
Detect,
|
||||||
Mp3Mini,
|
|
||||||
Rodio,
|
Rodio,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,39 +248,6 @@ fn detect_decoder(_file_name: &str, sound_decoder: &SoundDecoder) -> SoundDecode
|
|||||||
|
|
||||||
fn play_file(sink: &rodio::Sink, file_name: String, sound_decoder: &SoundDecoder) {
|
fn play_file(sink: &rodio::Sink, file_name: String, sound_decoder: &SoundDecoder) {
|
||||||
match detect_decoder(&file_name, sound_decoder) {
|
match detect_decoder(&file_name, sound_decoder) {
|
||||||
SoundDecoder::Mp3Mini => {
|
|
||||||
// MP3 Mini provides low latency playback
|
|
||||||
let mut sound_file = File::open(file_name).expect("Failed opening sound file.");
|
|
||||||
let mut file_data = Vec::new();
|
|
||||||
sound_file
|
|
||||||
.read_to_end(&mut file_data)
|
|
||||||
.expect("Failed reading sound file.");
|
|
||||||
// Iterate over the MP3 frames and play them
|
|
||||||
let mut decoder = Decoder::new(Cursor::new(file_data));
|
|
||||||
loop {
|
|
||||||
match decoder.next_frame() {
|
|
||||||
Ok(frame) => {
|
|
||||||
let source = rodio::buffer::SamplesBuffer::new(
|
|
||||||
2,
|
|
||||||
frame
|
|
||||||
.sample_rate
|
|
||||||
.try_into()
|
|
||||||
.expect("Sample Rate unlocking failed"),
|
|
||||||
&*frame.data,
|
|
||||||
);
|
|
||||||
sink.append(source);
|
|
||||||
}
|
|
||||||
Err(Error::Eof) => {
|
|
||||||
debug!("EOF");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Err(e) => {
|
|
||||||
error!("{:?}", e);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SoundDecoder::Rodio => {
|
SoundDecoder::Rodio => {
|
||||||
// Rodio currently supports Ogg, Mp3, WAV and Flac
|
// Rodio currently supports Ogg, Mp3, WAV and Flac
|
||||||
let file = File::open(&file_name).unwrap();
|
let file = File::open(&file_name).unwrap();
|
||||||
|
Loading…
Reference in New Issue
Block a user