Nothing makes sense.
This commit is contained in:
parent
73f7bfa64b
commit
4b8fceaa7d
@ -56,6 +56,7 @@ pub struct EpisodeWidget {
|
|||||||
local_size: gtk::Label,
|
local_size: gtk::Label,
|
||||||
separator2: gtk::Label,
|
separator2: gtk::Label,
|
||||||
prog_separator: gtk::Label,
|
prog_separator: gtk::Label,
|
||||||
|
media: Arc<Mutex<MediaMachine>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for EpisodeWidget {
|
impl Default for EpisodeWidget {
|
||||||
@ -82,6 +83,17 @@ impl Default for EpisodeWidget {
|
|||||||
let title_machine = Arc::new(Mutex::new(TitleMachine::new(title, false)));
|
let title_machine = Arc::new(Mutex::new(TitleMachine::new(title, false)));
|
||||||
let dur = DurationMachine::new(duration, separator1, None);
|
let dur = DurationMachine::new(duration, separator1, None);
|
||||||
let duration_machine = Arc::new(Mutex::new(dur));
|
let duration_machine = Arc::new(Mutex::new(dur));
|
||||||
|
let _media = MediaMachine::new(
|
||||||
|
play.clone(),
|
||||||
|
download.clone(),
|
||||||
|
progress.clone(),
|
||||||
|
cancel.clone(),
|
||||||
|
total_size.clone(),
|
||||||
|
local_size.clone(),
|
||||||
|
separator2.clone(),
|
||||||
|
prog_separator.clone(),
|
||||||
|
);
|
||||||
|
let media_machine = Arc::new(Mutex::new(_media));
|
||||||
|
|
||||||
EpisodeWidget {
|
EpisodeWidget {
|
||||||
container,
|
container,
|
||||||
@ -96,6 +108,7 @@ impl Default for EpisodeWidget {
|
|||||||
local_size,
|
local_size,
|
||||||
separator2,
|
separator2,
|
||||||
prog_separator,
|
prog_separator,
|
||||||
|
media: media_machine,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,8 +9,6 @@ use chrono;
|
|||||||
use gtk;
|
use gtk;
|
||||||
use gtk::prelude::*;
|
use gtk::prelude::*;
|
||||||
|
|
||||||
pub trait Visibility {}
|
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct UnItialized;
|
pub struct UnItialized;
|
||||||
|
|
||||||
@ -19,9 +17,23 @@ pub struct Shown;
|
|||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Hidden;
|
pub struct Hidden;
|
||||||
|
|
||||||
|
pub trait Visibility {}
|
||||||
|
|
||||||
impl Visibility for Shown {}
|
impl Visibility for Shown {}
|
||||||
impl Visibility for Hidden {}
|
impl Visibility for Hidden {}
|
||||||
|
|
||||||
|
impl From<Hidden> for Shown {
|
||||||
|
fn from(_: Hidden) -> Self {
|
||||||
|
Shown {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<Shown> for Hidden {
|
||||||
|
fn from(_: Shown) -> Self {
|
||||||
|
Hidden {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Normal;
|
pub struct Normal;
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
@ -542,29 +554,29 @@ impl From<Progress<UnItialized>> for Progress<Hidden> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Media<X, Z, Y> {
|
pub struct Media<X, Y, Z> {
|
||||||
dl: DownloadPlay<X>,
|
dl: DownloadPlay<X>,
|
||||||
total_size: Size<Z>,
|
size: Size<Y>,
|
||||||
progress: Progress<Y>,
|
progress: Progress<Z>,
|
||||||
}
|
}
|
||||||
|
|
||||||
// From New fro InProgress
|
// From New from InProgress
|
||||||
impl From<Media<Download, Shown, Hidden>> for Media<Hidden, Shown, Shown> {
|
impl From<Media<Download, Hidden, Shown>> for Media<Hidden, Shown, Shown> {
|
||||||
fn from(f: Media<Download, Shown, Hidden>) -> Self {
|
fn from(f: Media<Download, Hidden, Shown>) -> Self {
|
||||||
Media {
|
Media {
|
||||||
dl: f.dl.into(),
|
dl: f.dl.into(),
|
||||||
total_size: f.total_size.into(),
|
size: f.size.into(),
|
||||||
progress: f.progress.into(),
|
progress: f.progress.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From NewWithoutSize fro InProgress
|
// From NewWithoutSize from InProgress
|
||||||
impl From<Media<Download, Hidden, Hidden>> for Media<Hidden, Shown, Shown> {
|
impl From<Media<Download, Hidden, Hidden>> for Media<Hidden, Shown, Shown> {
|
||||||
fn from(f: Media<Download, Hidden, Hidden>) -> Self {
|
fn from(f: Media<Download, Hidden, Hidden>) -> Self {
|
||||||
Media {
|
Media {
|
||||||
dl: f.dl.into(),
|
dl: f.dl.into(),
|
||||||
total_size: f.total_size.into(),
|
size: f.size.into(),
|
||||||
progress: f.progress.into(),
|
progress: f.progress.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -575,7 +587,7 @@ impl Into<Media<Download, Hidden, Shown>> for Media<UnItialized, UnItialized, Un
|
|||||||
fn into(self) -> Media<Download, Hidden, Shown> {
|
fn into(self) -> Media<Download, Hidden, Shown> {
|
||||||
Media {
|
Media {
|
||||||
dl: self.dl.into(),
|
dl: self.dl.into(),
|
||||||
total_size: self.total_size.into(),
|
size: self.size.into(),
|
||||||
progress: self.progress.into(),
|
progress: self.progress.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -586,7 +598,7 @@ impl Into<Media<Download, Hidden, Hidden>> for Media<UnItialized, UnItialized, U
|
|||||||
fn into(self) -> Media<Download, Hidden, Hidden> {
|
fn into(self) -> Media<Download, Hidden, Hidden> {
|
||||||
Media {
|
Media {
|
||||||
dl: self.dl.into(),
|
dl: self.dl.into(),
|
||||||
total_size: self.total_size.into(),
|
size: self.size.into(),
|
||||||
progress: self.progress.into(),
|
progress: self.progress.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -597,7 +609,7 @@ impl Into<Media<Play, Hidden, Shown>> for Media<UnItialized, UnItialized, UnItia
|
|||||||
fn into(self) -> Media<Play, Hidden, Shown> {
|
fn into(self) -> Media<Play, Hidden, Shown> {
|
||||||
Media {
|
Media {
|
||||||
dl: self.dl.into(),
|
dl: self.dl.into(),
|
||||||
total_size: self.total_size.into(),
|
size: self.size.into(),
|
||||||
progress: self.progress.into(),
|
progress: self.progress.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -608,7 +620,7 @@ impl Into<Media<Play, Hidden, Hidden>> for Media<UnItialized, UnItialized, UnIti
|
|||||||
fn into(self) -> Media<Play, Hidden, Hidden> {
|
fn into(self) -> Media<Play, Hidden, Hidden> {
|
||||||
Media {
|
Media {
|
||||||
dl: self.dl.into(),
|
dl: self.dl.into(),
|
||||||
total_size: self.total_size.into(),
|
size: self.size.into(),
|
||||||
progress: self.progress.into(),
|
progress: self.progress.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -619,7 +631,7 @@ impl Into<Media<Hidden, Shown, Shown>> for Media<UnItialized, UnItialized, UnIti
|
|||||||
fn into(self) -> Media<Hidden, Shown, Shown> {
|
fn into(self) -> Media<Hidden, Shown, Shown> {
|
||||||
Media {
|
Media {
|
||||||
dl: self.dl.into(),
|
dl: self.dl.into(),
|
||||||
total_size: self.total_size.into(),
|
size: self.size.into(),
|
||||||
progress: self.progress.into(),
|
progress: self.progress.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -627,20 +639,15 @@ impl Into<Media<Hidden, Shown, Shown>> for Media<UnItialized, UnItialized, UnIti
|
|||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub enum MediaMachine {
|
pub enum MediaMachine {
|
||||||
New(Media<Download, Hidden, Shown>),
|
UnInitialized(Media<UnItialized, UnItialized, UnItialized>),
|
||||||
|
New(Media<Download, Shown, Hidden>),
|
||||||
NewWithoutSize(Media<Download, Hidden, Hidden>),
|
NewWithoutSize(Media<Download, Hidden, Hidden>),
|
||||||
Playable(Media<Play, Hidden, Shown>),
|
Playable(Media<Play, Shown, Hidden>),
|
||||||
PlayableWithoutSize(Media<Play, Hidden, Hidden>),
|
PlayableWithoutSize(Media<Play, Hidden, Hidden>),
|
||||||
InProgress(Media<Hidden, Shown, Shown>),
|
InProgress(Media<Hidden, Shown, Shown>),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
impl MediaMachine {
|
||||||
pub enum MediaMachineWrapper {
|
|
||||||
UnItialized(Media<UnItialized, UnItialized, UnItialized>),
|
|
||||||
Initialized(MediaMachine),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl MediaMachineWrapper {
|
|
||||||
pub fn new(
|
pub fn new(
|
||||||
play: gtk::Button,
|
play: gtk::Button,
|
||||||
download: gtk::Button,
|
download: gtk::Button,
|
||||||
@ -653,12 +660,14 @@ impl MediaMachineWrapper {
|
|||||||
) -> Self {
|
) -> Self {
|
||||||
let dl = DownloadPlay::<UnItialized>::new(play, download);
|
let dl = DownloadPlay::<UnItialized>::new(play, download);
|
||||||
let progress = Progress::<UnItialized>::new(bar, cancel, local_size, prog_separator);
|
let progress = Progress::<UnItialized>::new(bar, cancel, local_size, prog_separator);
|
||||||
let total_size = Size::<UnItialized>::new(total_size, separator);
|
let size = Size::<UnItialized>::new(total_size, separator);
|
||||||
|
|
||||||
MediaMachineWrapper::UnItialized(Media {
|
MediaMachine::UnInitialized(Media { dl, progress, size })
|
||||||
dl,
|
}
|
||||||
progress,
|
|
||||||
total_size,
|
pub fn determine_state(self, is_downloaded: bool, is_active: bool) -> Self {
|
||||||
})
|
// use self::MediaMachine::*;
|
||||||
|
|
||||||
|
unimplemented!()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user