From b8af96fd3cd0294c0fcc0c27b7504d75cfd0b45c Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Mon, 2 Mar 2009 08:46:19 +0000 Subject: [PATCH] add example of crc'ing with gtk progress bar --- examples/gtkcrc.py | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 examples/gtkcrc.py diff --git a/examples/gtkcrc.py b/examples/gtkcrc.py new file mode 100644 index 0000000..e5d9e14 --- /dev/null +++ b/examples/gtkcrc.py @@ -0,0 +1,93 @@ +# -*- Mode: Python; test-case-name: morituri.test.test_header -*- +# vi:si:et:sw=4:sts=4:ts=4 + +# Morituri - for those about to RIP + +# Copyright (C) 2009 Thomas Vander Stichele + +# This file is part of morituri. +# +# morituri is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# morituri is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with morituri. If not, see . + +import sys + +import gst +import time + +import gobject +gobject.threads_init() + +import gtk + +from morituri.common import task + +class TaskProgress(gtk.VBox): + __gsignals__ = { + 'stop': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, ()) + } + + def __init__(self, task): + gtk.VBox.__init__(self) + self.set_border_width(6) + self.set_spacing(6) + + label = gtk.Label(task.description) + self.add(label) + + self._progress = gtk.ProgressBar() + self.add(self._progress) + + task.addListener(self) + + def start(self): + pass + + def stop(self): + self.emit('stop') + + def progress(self, value): + self._progress.set_fraction(value) + +path = 'test.flac' + +start = 0 +end = -1 +try: + path = sys.argv[1] +except IndexError: + pass + +try: + start = int(sys.argv[2]) +except: + pass + +try: + end = int(sys.argv[3]) +except: + pass + +crctask = task.CRCTask(path, start, end) + +window = gtk.Window() +progress = TaskProgress(crctask) +progress.connect('stop', lambda _: gtk.main_quit()) +window.add(progress) +window.show_all() + +crctask.start() + +gtk.main() + +print "CRC: %08X" % crctask.crc