* examples/gtkcrc.py:

* morituri/common/task.py:
	  Don't block the main loop by infinitely scheduling
	  set_state.
This commit is contained in:
Thomas Vander Stichele
2009-04-11 14:58:42 +00:00
parent 8486ee782b
commit 1a02c32fc1
3 changed files with 20 additions and 9 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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')