|
| From: | James Cooley |
| Subject: | [Discuss-gnuradio] Stopping Flow Graph, Re-connecting Audio |
| Date: | Tue, 12 Jul 2005 19:25:26 -0400 |
| User-agent: | Mozilla Thunderbird 1.0.2 (X11/20050317) |
Hi all,Does anyone know how to successfully change audio in the middle of execution? I've swapped out other blocks before, so I'm familiar with that.
Actually, I'm changing the guts connected to the audio, using the usual flow graph stop, disconnect, connect blocks. I tried changing the guts without deleting the audio sink and I also tried changing the guts deleting the audio sink like this:
def swap_sound(self):
print "test sound change"
fg.stop()
fg.disconnect(self.demod_guts_block, self.audio_sink)
# either don't do this, or delete/re-create.. both don't seem to
work
del(self.audio_sink)
print "Re-Create Audio Sink"
self.audio_sink = audio.sink(int(self.demod_guts_block.audio_rate))
print "Audio sink created"
fg.connect(self.demod_guts_block, self.audio_sink)
fg.start()
What happens, I believe, is that the deconstructor for the alsa audio sink isn't actually releasing the device. When I go to create a "new" audio sink, the creation function hangs there, I assume because it's waiting for the device to finish.
In the case where I do not delete the audio sink and re-create it, it does not allow me to make the connection:
ValueError: <gr_block audio_alsa_sink (6)>::check_topology (1, 0) failed -jamie
| [Prev in Thread] | Current Thread | [Next in Thread] |