This is becoming a little bit off-topic, but that might be helpful for people who have read the last replies about PyGI.
I have (kind of) successfully ported my application to PyGI.
The main issues that I had to face are:
1) I used to save the current selection in a TreeView with TreeIter object. It seems to be unsafe - I suppose it was already when I used it with PyGTK - because the reference is lost.
I had to use TreePath instead, and convert it to TreeIter when necessary
2) GStreamer 0.10 is not fully compliant with PyGI.
It is not possible to subscribe to EOS and stream-changed events!...
See http://stackoverflow.com/questions/7005 ... ne-message
I managed to make it work, because I have a thread that display the progression of time (every 0.2 second). I used this thread to monitor the current time when 'about-to-finish' event has been received (this one works!).
- If the current time decreases, I suppose the track has changed => stream-changed
- If the current time remains the same, I suppose we have reached the end of file => EOS
When GStreamer 1.0 is old enough to be available on most desktops, I will use it!...
3) I also had some UTF-8 encoding errors with minidom. I don't understand why it appeared with the porting to pyGI, but I solved it by using codecs module (codecs.open) and by applying .decode('utf8') on filenames.
4) I have many "assertion `GST_IS_ELEMENT (element)' failed" errors from GStreamer, but... I just ignore them and it works...
(I just had to close stderr in the "terminal mode" version of my audio player.)
Now everything is back to normal :)