[Weekly Report] Week 9: Rhythmbox iPod/MTP Syncing
- From: Paul A Bellamy <paul a bellamy gmail com>
- To: "gnome-soc-list gnome org" <gnome-soc-list gnome org>, rhythmbox-devel gnome org
- Subject: [Weekly Report] Week 9: Rhythmbox iPod/MTP Syncing
- Date: Mon, 27 Jul 2009 16:14:28 -0700
This last week I was beginning work on the MTP plugin. I had
previously done the prototyping in the iPod plugin, so was moving the
code from there. Earlier in the project I had created two classes
(RBMediaPlayerSource and RBMediaPlayerPrefs). RBMediaPlayerSource is
the superclass of RBiPodSource and RBMtpSource. So the class chain now
goes ...->RBRemovableMediaSource->RBMediaPlayerSource->RBiPodSource (or
RBMtpSource). This RBMediaPlayerSource is non-instantiable, but
provides the syncing capabilities for the devices. RBMediaPlayerPrefs
tracks the preferences for the device. It handles saving them to
"media-player-prefs.conf", and loading them from there. It is used to
show the Properties dialog, and when syncing. Additionally it
calculates the lists of what needs syncing, and what needs removal.
Now, the RBiPodSource and RBMtpSource will be mostly just implementing
the player-specific virtual methods that RBMediaPlayerSource needs
(get_capacity, add_track, etc). This limits duplicate code. It took me
basically the entire week to get the prototype iPod code moved into
RBMediaPlayerSource, tested, and running smoothly again.
When writing my project proposal, I factored in for unforseen
problems by allowing myself two weeks at the end of the project (now),
to 'catch up'. So this next week I will be continuing on the MTP
Plugin, implementing it as a child of RBMediaPlayerSource, so that it
will inherit 'sync-ability'. The week after that I will, hopefully, be
adding the capability to sync playlists. Syncing playlists is a bit
tricky, because it is a many-to-many relationship between playlists and
tracks, so I had left it to the end to revisit.
By the end of this week (or shortly thereafter) I am hoping to have
the MTP plugin syncing.
] [Thread Prev