struct ipoddisk_node * ipoddisk_init_one_ipod (gchar *dbfile) { struct ipoddisk_node *node; Itdb_iTunesDB *the_itdb; the_itdb = itdb_parse_file(dbfile, &error); if (error != NULL) { fprintf(stderr, "itdb_parse_file() failed: %s!\n", error->message); g_error_free(error); error = NULL; return NULL; } if (the_itdb == NULL) return NULL; node = ipoddisk_new_node(NULL, NULL, IPODDISK_NODE_IPOD); node->nd_data.ipod.ipod_itdb = the_itdb; ipoddisk_build_ipod_node(node, the_itdb); open(dbfile, O_RDONLY); /* leave me not, babe */ return node; }
int main (int argc, char *argv[]) { GError *error=NULL; Itdb_iTunesDB *itdb; gchar *infile = NULL; gchar *outfile = NULL; if (argc >= 2) infile = argv[1]; if (argc >= 3) outfile = argv[2]; if (infile == 0) { printf ("Usage: %s <infile> [<outfile>]\n", g_basename(argv[0])); exit (0); } itdb = itdb_parse_file (infile, &error); printf ("%p\n", itdb); if (error) { if (error->message) puts (error->message); g_error_free (error); error = NULL; } if (itdb) { printf ("tracks: %d\n", g_list_length (itdb->tracks)); printf ("playlists: %d\n", g_list_length (itdb->playlists)); if (outfile) itdb_write_file (itdb, outfile, &error); if (error) { if (error->message) puts (error->message); g_error_free (error); error = NULL; } } itdb_free (itdb); return 0; }
void FetchITunesDB() { std::list <Itdb_Track*> *tracksList = new std::list<Itdb_Track*>; iPhone_CopyFileFromDevice(phone, "/private/var/mobile/Media/iTunes_Control/iTunes/iTunesCDB", "iTunesCDB"); ConvertiTunesCDB("iTunesCDB", "iTunesDB"); itunesdb = itdb_parse_file("iTunesDB", NULL); GList *tracks = itunesdb->tracks; Itdb_Track *track; while(tracks != NULL) { track = (Itdb_Track*)tracks->data; tracksList->push_back(track); //if(track->mediatype & ITDB_MEDIATYPE_AUDIO) SongList->AddRow(track->title, track->artist, track->album, track->genre); tracks = tracks->next; } SongList->SetTrackList(tracksList); }