Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
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);
}