set correct index when playlist got reloaded
This commit is contained in:
parent
4774b719e4
commit
737c108b27
@ -83,6 +83,9 @@ impl CurrentProgram {
|
|||||||
|
|
||||||
self.json_mod = json.modified;
|
self.json_mod = json.modified;
|
||||||
self.nodes = json.program;
|
self.nodes = json.program;
|
||||||
|
|
||||||
|
self.get_current_clip();
|
||||||
|
self.index += 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
error!(
|
error!(
|
||||||
@ -159,28 +162,43 @@ impl CurrentProgram {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_init_clip(&mut self) {
|
fn get_current_time(&mut self) -> f64 {
|
||||||
let mut time_sec = get_sec();
|
let mut time_sec = get_sec();
|
||||||
|
|
||||||
if time_sec < self.start_sec {
|
if time_sec < self.start_sec {
|
||||||
time_sec += self.config.playlist.length_sec.unwrap()
|
time_sec += self.config.playlist.length_sec.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
time_sec
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_current_clip(&mut self) {
|
||||||
|
let time_sec = self.get_current_time();
|
||||||
|
|
||||||
for (i, item) in self.nodes.iter_mut().enumerate() {
|
for (i, item) in self.nodes.iter_mut().enumerate() {
|
||||||
if item.begin.unwrap() + item.out - item.seek > time_sec {
|
if item.begin.unwrap() + item.out - item.seek > time_sec {
|
||||||
*self.init.lock().unwrap() = false;
|
*self.init.lock().unwrap() = false;
|
||||||
self.index = i + 1;
|
self.index = i;
|
||||||
|
|
||||||
// de-instance node to preserve original values in list
|
|
||||||
let mut node_clone = item.clone();
|
|
||||||
node_clone.seek = time_sec - node_clone.begin.unwrap();
|
|
||||||
|
|
||||||
self.current_node = handle_list_init(node_clone);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn init_clip(&mut self) {
|
||||||
|
self.get_current_clip();
|
||||||
|
|
||||||
|
if !*self.init.lock().unwrap() {
|
||||||
|
let time_sec = self.get_current_time();
|
||||||
|
|
||||||
|
// de-instance node to preserve original values in list
|
||||||
|
let mut node_clone = self.nodes[self.index].clone();
|
||||||
|
self.index += 1;
|
||||||
|
|
||||||
|
node_clone.seek = time_sec - node_clone.begin.unwrap();
|
||||||
|
self.current_node = handle_list_init(node_clone);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Iterator for CurrentProgram {
|
impl Iterator for CurrentProgram {
|
||||||
@ -192,7 +210,7 @@ impl Iterator for CurrentProgram {
|
|||||||
self.check_update(true);
|
self.check_update(true);
|
||||||
|
|
||||||
if self.json_path.is_some() {
|
if self.json_path.is_some() {
|
||||||
self.get_init_clip();
|
self.init_clip();
|
||||||
}
|
}
|
||||||
|
|
||||||
if *self.init.lock().unwrap() {
|
if *self.init.lock().unwrap() {
|
||||||
@ -209,7 +227,7 @@ impl Iterator for CurrentProgram {
|
|||||||
>= self.config.playlist.length_sec.unwrap()
|
>= self.config.playlist.length_sec.unwrap()
|
||||||
+ self.config.playlist.start_sec.unwrap()
|
+ self.config.playlist.start_sec.unwrap()
|
||||||
{
|
{
|
||||||
self.get_init_clip();
|
self.init_clip();
|
||||||
} else {
|
} else {
|
||||||
let mut current_time = get_sec();
|
let mut current_time = get_sec();
|
||||||
let (_, total_delta) = get_delta(¤t_time);
|
let (_, total_delta) = get_delta(¤t_time);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user