Change time display to show chapter runtime not sentence runtime

This commit is contained in:
2020-03-05 10:48:51 +00:00
parent e22a1ce84a
commit b57c1b5753
2 changed files with 19 additions and 1 deletions

View File

@@ -86,7 +86,7 @@ public class BookTreeRenderer extends DefaultTreeCellRenderer {
} }
JLabel time = new JLabelFixedWidth(75, " " + Utils.secToTime(s.getLength(), "ss.SSS") + " "); JLabel time = new JLabelFixedWidth(75, " " + Utils.secToTime(s.getStartTime(), "mm.ss.SSS") + " ");
time.setHorizontalAlignment(SwingConstants.RIGHT); time.setHorizontalAlignment(SwingConstants.RIGHT);
ctx.gridx = 0; ctx.gridx = 0;

View File

@@ -35,6 +35,7 @@ import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.AudioFileFormat; import javax.sound.sampled.AudioFileFormat;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode; import javax.swing.tree.TreeNode;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.InputStream; import java.io.InputStream;
@@ -819,6 +820,23 @@ public class Sentence extends BookTreeNode implements Cacheable {
return pos; return pos;
} }
public double getStartTime() {
double time = 0;
DefaultMutableTreeNode prev = getPreviousSibling();
while (prev != null) {
if (prev instanceof Sentence) {
Sentence ps = (Sentence)prev;
time += ps.getLength();
time += ps.getPostGap() / 1000d;
prev = prev.getPreviousSibling();
} else {
break;
}
}
return time;
}
/* Get the length of the sample in seconds */ /* Get the length of the sample in seconds */
@Override @Override
public double getLength() { public double getLength() {