GTetrinet through tubes

During the GNOME Summit, I started to hack GTetrinet (based on the initial work of Alban) and Empathy to try to offer a better user experience using stream tubes. I finally found some time this afternoon to finish this work and I am now able to play GTetrinet through tubes!

GTetrinet was patched to add a new dialog. It uses libempathy and libempathy-gtk to display user's contact list. When you have chosen a contact, it launches tetrinet-server into another process and exports its socket through a stream tubes.

The rest of the work is done by Empathy which was modified to display incoming tubes and launch GTetrinet if the user accepts it.

Alban's diagram showing GTetrinet using tubes

Screencast showing GTetrinet initates the tubes with a contact

The other side where Empathy receives the tube and launchs GTetrinet

These 2 patches still need lots of polishing before being ready for merging and we still have to design how tubes will be integrated properly into Empathy and Mission Control but I think they are a good demonstration of how tubes will revolutionize the collaboration in GNOME.