mardi 25 novembre 2008

Autumn update

Rhythmbox

In the last weeks, I finally landed a few patches for Rhythmbox iPod plugins that had been waiting for too long.

The first one adds a dialog to setup new (empty) ipods, courtesy of gtkpod. This was bug #358029 and the initial patch was made by James Doc Livingston.

The second patch was written by Ed Catmur and Paul Drain. Its purpose is to avoid copying duplicate tracks to the ipod. It's currently a bit simplistic, 2 songs are considered duplicates if they have the same title/album/artist. And the code doing that is factored in a generic function in the RBRemovableMediaSource class so other DAP sources can easily get the same behaviour. The fact that the duplicate check is made in a single function also means that we can easily replace this check with a more elaborated one (using audio fingerprints for example) in the future.

The 3rd (and last) patch has been made by John Daiker and adds a property dialog to the iPod source to see how much space is available on the ipod, to see the ipod serial number, device name, ... This code is specific to the iPod source for now, but seeing bug #561955 which asks for the same feature for MTP devices, there is probably some factoring to be done...

And, more or less related to this last bug, in the last days I worked on porting the Banshee SegmentedBar widget to C to be able to reuse it in Rhythmbox. After writing the GObject boilerplate for a new GtkWidget, the porting was pretty straightforward since Cairo/Pango mono bindings are really close to their C counterparts. The end result can be seen on this screenshot :



The code can be found in bug #561955 as a patch to Rhythmbox source. However, the widget code doesn't depend on any Rhythmbox code which means it should be easy to reuse in any GTK+/C project if you need such a widget. If you do so, please let me know about any bug or API issues you encounter since the code is really young and hasn't been tested much :)


Libgpod

On the libgpod front, not too many news. svn trunk is in a satisfying state and is probably releasable as is. The lastest ipod nanos and ipod classic are supported (with artwork and photos). As always, any testing with the latest ipods is welcome. We are also missing a few serial numbers for the new 16GB nanos, so if you own one, it would be great if you could send us the last 3 digits of its serial number (printed on the back) as well as its color.

The iphone 3g and the ipod touch with 2.x firmwares are not supported at this time, the song database needs to be checksummed to be valid, and noone has reverse engineered the hashing scheme yet. Moreover, Apple is making things difficult through code obfuscation and legal hurdles.

UPDATE: the EFF published this really interesting analysis of the issue

On a brighter side, the iFuse guys have made great progress to make USB communication to non jail-broken devices to work. Before their work, one had to jailbreak his phone and to talk to it through wifi to do anything with it. Now that's no longer necessary thanks to those guys.


Personal life

After a few years working as a team leader on Anevia's Video-on-Demand server, it's time for me to move on and to look for new exciting job opportunities. So if you are looking for an experienced C/C++ Linux developper, you are very welcome to contact me. My resume is available here.