mirror of
https://github.com/librespot-org/librespot.git
synced 2025-10-04 02:09:26 +02:00
Remove mixer from Player and add it to SpircManager
This commit is contained in:
parent
347bf05dbe
commit
59398b3cee
5 changed files with 48 additions and 80 deletions
12
src/main.rs
12
src/main.rs
|
@ -19,6 +19,8 @@ use librespot::cache::{Cache, DefaultCache, NoCache};
|
|||
use librespot::player::Player;
|
||||
use librespot::session::{Bitrate, Config, Session};
|
||||
use librespot::mixer::softmixer::SoftMixer;
|
||||
use librespot::mixer::Mixer;
|
||||
|
||||
use librespot::version;
|
||||
|
||||
fn usage(program: &str, opts: &getopts::Options) -> String {
|
||||
|
@ -60,7 +62,7 @@ fn list_backends() {
|
|||
}
|
||||
}
|
||||
|
||||
fn setup(args: &[String]) -> (Session, Player) {
|
||||
fn setup(args: &[String]) -> (Session, Player, Box<Mixer + Send>) {
|
||||
let mut opts = getopts::Options::new();
|
||||
opts.optopt("c", "cache", "Path to a directory where files will be cached.", "CACHE")
|
||||
.reqopt("n", "name", "Device name", "NAME")
|
||||
|
@ -124,18 +126,18 @@ fn setup(args: &[String]) -> (Session, Player) {
|
|||
let mixer = SoftMixer::new();
|
||||
|
||||
let device_name = matches.opt_str("device");
|
||||
let player = Player::new(session.clone(), Box::new(mixer), move || {
|
||||
let player = Player::new(session.clone(), move || {
|
||||
(backend)(device_name.as_ref().map(AsRef::as_ref))
|
||||
});
|
||||
|
||||
(session, player)
|
||||
(session, player, Box::new(mixer))
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
let (session, player) = setup(&args);
|
||||
let (session, player, mixer) = setup(&args);
|
||||
|
||||
let spirc = SpircManager::new(session.clone(), player);
|
||||
let spirc = SpircManager::new(session.clone(), player, mixer);
|
||||
let spirc_signal = spirc.clone();
|
||||
thread::spawn(move || spirc.run());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue