rename TrackInfo to Track
This commit is contained in:
parent
b278a6aa52
commit
0448b3eced
4 changed files with 16 additions and 16 deletions
|
|
@ -1,11 +1,11 @@
|
||||||
use std::{path::Path, process::Command};
|
use std::{path::Path, process::Command};
|
||||||
|
|
||||||
use crate::track::TrackInfo;
|
use crate::track::Track;
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
pub struct DownloadError;
|
pub struct DownloadError;
|
||||||
|
|
||||||
pub fn download_from_youtube(url: &str) -> Result<TrackInfo, DownloadError> {
|
pub fn download_from_youtube(url: &str) -> Result<Track, DownloadError> {
|
||||||
let output = Command::new("yt-dlp")
|
let output = Command::new("yt-dlp")
|
||||||
.args([
|
.args([
|
||||||
"-o",
|
"-o",
|
||||||
|
|
@ -32,5 +32,5 @@ pub fn download_from_youtube(url: &str) -> Result<TrackInfo, DownloadError> {
|
||||||
.replace('\n', "")
|
.replace('\n', "")
|
||||||
+ ".mp3";
|
+ ".mp3";
|
||||||
|
|
||||||
Ok(TrackInfo::new(Path::new(filename.as_str())))
|
Ok(Track::new(Path::new(filename.as_str())))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,4 @@ pub mod player;
|
||||||
pub mod telegram;
|
pub mod telegram;
|
||||||
mod track;
|
mod track;
|
||||||
|
|
||||||
pub use track::TrackInfo;
|
pub use track::Track;
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,11 @@ use rodio::{Decoder, OutputStream, OutputStreamHandle, Sink};
|
||||||
use std::{collections::VecDeque, fs::File, io::BufReader, thread, thread::JoinHandle};
|
use std::{collections::VecDeque, fs::File, io::BufReader, thread, thread::JoinHandle};
|
||||||
|
|
||||||
use crate::channel::{self, Requester, Responder, TryRecvError};
|
use crate::channel::{self, Requester, Responder, TryRecvError};
|
||||||
use crate::track::TrackInfo;
|
use crate::track::Track;
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
enum WorkerRequest {
|
enum WorkerRequest {
|
||||||
AddTrack(TrackInfo),
|
AddTrack(Track),
|
||||||
Pause,
|
Pause,
|
||||||
Play,
|
Play,
|
||||||
Stop,
|
Stop,
|
||||||
|
|
@ -16,7 +16,7 @@ enum WorkerRequest {
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
enum WorkerResponse {
|
enum WorkerResponse {
|
||||||
TrackList(VecDeque<TrackInfo>),
|
TrackList(VecDeque<Track>),
|
||||||
None,
|
None,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -32,11 +32,11 @@ struct Worker {
|
||||||
_stream: OutputStream,
|
_stream: OutputStream,
|
||||||
_handle: OutputStreamHandle,
|
_handle: OutputStreamHandle,
|
||||||
sink: Sink,
|
sink: Sink,
|
||||||
queue: VecDeque<TrackInfo>,
|
queue: VecDeque<Track>,
|
||||||
responder: Responder<WorkerRequest, WorkerResponse>,
|
responder: Responder<WorkerRequest, WorkerResponse>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_source(track: TrackInfo) -> Decoder<BufReader<File>> {
|
fn get_source(track: Track) -> Decoder<BufReader<File>> {
|
||||||
let file = BufReader::new(File::open(track.path).unwrap());
|
let file = BufReader::new(File::open(track.path).unwrap());
|
||||||
Decoder::new(file).unwrap()
|
Decoder::new(file).unwrap()
|
||||||
}
|
}
|
||||||
|
|
@ -88,7 +88,7 @@ impl Worker {
|
||||||
pub fn build(responder: Responder<WorkerRequest, WorkerResponse>) -> Worker {
|
pub fn build(responder: Responder<WorkerRequest, WorkerResponse>) -> Worker {
|
||||||
let (_stream, _handle) = OutputStream::try_default().unwrap();
|
let (_stream, _handle) = OutputStream::try_default().unwrap();
|
||||||
let sink = Sink::try_new(&_handle).unwrap();
|
let sink = Sink::try_new(&_handle).unwrap();
|
||||||
let queue: VecDeque<TrackInfo> = VecDeque::new();
|
let queue: VecDeque<Track> = VecDeque::new();
|
||||||
Worker {
|
Worker {
|
||||||
_stream,
|
_stream,
|
||||||
_handle,
|
_handle,
|
||||||
|
|
@ -106,7 +106,7 @@ impl MusicPlayer {
|
||||||
MusicPlayer { requester, _worker }
|
MusicPlayer { requester, _worker }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn enqueue(&mut self, track: TrackInfo) {
|
pub fn enqueue(&mut self, track: Track) {
|
||||||
self.requester.send(AddTrack(track)).unwrap();
|
self.requester.send(AddTrack(track)).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,7 +126,7 @@ impl MusicPlayer {
|
||||||
self.requester.send(Stop).unwrap();
|
self.requester.send(Stop).unwrap();
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn list_tracks(&self) -> VecDeque<TrackInfo> {
|
pub fn list_tracks(&self) -> VecDeque<Track> {
|
||||||
let response = self.requester.send(ListTracks).unwrap();
|
let response = self.requester.send(ListTracks).unwrap();
|
||||||
match response.recv().unwrap() {
|
match response.recv().unwrap() {
|
||||||
TrackList(tracks) => tracks,
|
TrackList(tracks) => tracks,
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct TrackInfo {
|
pub struct Track {
|
||||||
pub path: PathBuf,
|
pub path: PathBuf,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TrackInfo {
|
impl Track {
|
||||||
pub fn new(path: &Path) -> TrackInfo {
|
pub fn new(path: &Path) -> Track {
|
||||||
TrackInfo {
|
Track {
|
||||||
path: PathBuf::from(path),
|
path: PathBuf::from(path),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue