* examples/gtkcrc.py:
* morituri/common/task.py: Don't block the main loop by infinitely scheduling set_state.
This commit is contained in:
@@ -1,3 +1,10 @@
|
||||
2009-04-11 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* examples/gtkcrc.py:
|
||||
* morituri/common/task.py:
|
||||
Don't block the main loop by infinitely scheduling
|
||||
set_state.
|
||||
|
||||
2009-04-11 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||
|
||||
* examples/ARcue.py:
|
||||
|
||||
@@ -67,10 +67,7 @@ class TaskProgress(gtk.VBox, task.TaskRunner):
|
||||
def progressed(self, value):
|
||||
gst.info('progressed')
|
||||
# FIXME: why is this not painting the progress bar ?
|
||||
print 'progress', value
|
||||
self._progress.set_fraction(value)
|
||||
while gtk.events_pending():
|
||||
gtk.main_iteration()
|
||||
|
||||
|
||||
path = 'test.flac'
|
||||
@@ -94,7 +91,8 @@ except:
|
||||
|
||||
crctask = task.CRC32Task(path, start, end)
|
||||
|
||||
class DummTask(task.Task):
|
||||
# this is a Dummy task that can be used if this works at all
|
||||
class DummyTask(task.Task):
|
||||
def start(self):
|
||||
task.Task.start(self)
|
||||
gobject.timeout_add(1000L, self._wind)
|
||||
@@ -118,8 +116,6 @@ window.show_all()
|
||||
|
||||
progress.run(crctask)
|
||||
|
||||
print 'going main'
|
||||
|
||||
gtk.main()
|
||||
|
||||
print "CRC: %08X" % crctask.crc
|
||||
|
||||
@@ -47,10 +47,9 @@ class Task(object):
|
||||
_listeners = None
|
||||
|
||||
def debug(self, *args, **kwargs):
|
||||
#return
|
||||
return
|
||||
print args, kwargs
|
||||
sys.stdout.flush()
|
||||
pass
|
||||
|
||||
def start(self):
|
||||
self.running = True
|
||||
@@ -147,7 +146,16 @@ class CRCTask(Task):
|
||||
sink.connect('eos', self._eos_cb)
|
||||
|
||||
self.debug('scheduling setting to play')
|
||||
gobject.timeout_add(0L, self._pipeline.set_state, gst.STATE_PLAYING)
|
||||
# since set_state returns non-False, adding it as timeout_add
|
||||
# will repeatedly call it, and block the main loop; so
|
||||
# gobject.timeout_add(0L, self._pipeline.set_state, gst.STATE_PLAYING)
|
||||
# would not work.
|
||||
|
||||
def play():
|
||||
self._pipeline.set_state(gst.STATE_PLAYING)
|
||||
return False
|
||||
gobject.timeout_add(0L, play)
|
||||
|
||||
#self._pipeline.set_state(gst.STATE_PLAYING)
|
||||
self.debug('scheduled setting to play')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user