[Weekly Report] Week 5: 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 5: Rhythmbox iPod/MTP Syncing
- Date: Mon, 29 Jun 2009 09:00:41 -0700
This last week I have been working on the Syncing function for the
iPod. I am using the iPod plugin as a way to prototype the syncing
function before moving the appropriate code up to the
RBMediaPlayerSource, and into the MTP plugin.
I after the previous week getting preferences saving, I was focusing
on the hashing and comparison this week, in an effort to get syncing
functional. For syncing we need to build two lists, one of things
needing to be added to the iPod and one of things needing removal.
Initially I was having some trouble building these lists. To build
these lists I set up two hash tables (one for iPod, one for Library),
then do a comparison between them. Primarily my problem was in
populating the hash of the library contents. In the process of sorting
out the hashing problems I learned a lot about the way GHashTables
work. I initially thought that they were supposed to have no collisions
(so I was freaking out, when it gave me tons of collisions).
Eventually, I figured out that I was getting collisions because I had
duplicates on my iPod. There were a few curse words.
The other part I was having trouble with was getting a list of
RhythmDBEntry(s) for each playlist. I eventually discovered
rb_playlist_source_get_query_model() which is super-helpful, as that is
exactly what it returns.
I also added a function rb_ipod_source_add_entries(RBiPodSource *,
GList *), which mirrors rb_ipod_source_trash_entries, as a way to add
and remove multiple entries. When I finally got it to start syncing and
transferring files, I discovered a few bugs:
- Undownloaded Podcasts Hang-up the Process
- I initially thought this was a bug in my code, but
copying/pasting undownloaded podcasts to the iPod causes it to hang also.
- I put in a kludge to fix this in syncing for now, but should
probably be fixed in the track transfer code somewhere.
- There is a set of 803 songs (for me) that it wants to always re-sync.
- I think it is a bug in the hashing functions, so that it
thinks it has not transferred them correctly.
This week I will be working on the UI, so that it can be used to further
test the syncing mechanism. Part of that will be working on the
tree-view for selection of what to sync.
Paul
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]