PodWorks 2.1.3 Released
Tuesday, May 13th, 2003The new release of PodWorks isn’t too exciting—even as bug fix releases go—but it was necessary nonetheless. Basically, it introduces a more fundamental solution to the “original” 1.3/2.0 iPod firmware compatibility issue—the one that prevented PodWorks from recognizing and displaying the iPod’s main song list. After 2.1.2 had been out for awhile, it became apparent that my previous (slightly hacky) fix didn’t work for a small subset of new firmware users, so I went back to the drawing board and came up with what I hope is a more solid solution.
For those who care, the bug was actually caused by a change in the way Apple distinguishes the main song list from the playlists in the iPod database. It used to be that the main song list had a type of “1”, while playlists had a type of “0.” Then, when Apple introduced smart playlists, it seemed that the main song list had a type of “1,” normal playlists had a type of “0,” and smart playlists could have any number of values. Now, with iTunes 4 and the new iPod firmware, it appears that the main song list itself can have unpredictable values—sometimes “1”, sometimes “257”, sometimes (and this is what prompted my 2.1.3 update) other things.
Rather than trying to decipher whatever scheme Apple now uses for those list types, I decided to make a fundamental change to my iPod DB parser: it now simply assumes that whichever list it encounters first is the main song list. I’m fairly sure that this is something I can rely on for two reasons:
- The main song list invariably is ordered first (at least in my experience with parsing iPod database files).
- The rest of the playlists appear in the database in alphabetical order, which suggests to me that their placement is not simply arbitrary, but rather is important to how they are displayed by the iPod itself.
Even if it turns out I can’t count on the main list being first, the worst case scenario of this solution is a lot better than trying to make sure I cover all the possible values the main song list type could have. At least this way PodWorks is always guaranteed to display all of the song and playlists—even if it makes a mistake as to which one is the main one.
