diff options
Diffstat (limited to 'cutter/splitter.py')
| -rw-r--r-- | cutter/splitter.py | 66 |
1 files changed, 5 insertions, 61 deletions
diff --git a/cutter/splitter.py b/cutter/splitter.py index 4446bcc..18bfecb 100644 --- a/cutter/splitter.py +++ b/cutter/splitter.py @@ -1,4 +1,5 @@ from . coding import to_unicode, to_bytes +from . progress import * from . tools import * from . import formats @@ -74,65 +75,6 @@ class StreamInfo: return stream.info() -class Progress: - def __init__(self, message): - self.progress_shown = False - self.message = message - - def erase(self, n): - if not self.progress_shown: - self.last_length = n - self.progress_shown = True - return 0 - - prev, self.last_length = self.last_length, n - return prev - - def show(self, msg): - printf("%s", "\b" * self.erase(len(msg)) + msg) - - def do_print(self): - if self.percent > self.last_percent: - self.show("%3d%% " % self.percent) - self.last_percent = self.percent - - def clear(self): - if self.last_length: - self.show(" " * self.last_length) - - def init(self, total): - self.total = total - self.current = 0 - self.percent = 0 - self.last_percent = -1 - self.last_length = 0 - - self.do_print() - - def update(self, value): - self.current += value - percent = 100 * self.current // self.total - self.percent = min(max(percent, 0), 100) - - self.do_print() - - def finish(self): - n = max(self.last_length - len(self.message), 0) - self.show(self.message + " " * n + "\n") - -class DummyProgress: - def __init__(self, message): - self.message = message - - def init(self, total): - pass - - def update(self, value): - pass - - def finish(self): - printf("%s\n", self.message) - class Splitter: EXT = ["ape", "flac", "wv"] @@ -387,10 +329,12 @@ class Splitter: return track.end - track.begin def progress(self, message): + func = lambda msg: printf("%s", msg) + if self.opt.show_progress: - return Progress(message) + return PercentProgress(func, message) - return DummyProgress(message) + return DummyProgress(func, message) def split_file(self, file): stream = self.open_decode(file.path) |
