![]() | ![]() | ![]() | libitunesdb Reference Manual |
---|
Examples — Examples of libitunesdb use.
#include <libitunesdb/ipoddb.h> #include <libitunesdb/ipod-detect.h> static void dump_songs (iPodDB *db) { GList *songs; GList *it; songs = ipod_db_get_songs (db); for (it = songs; it != NULL; it = it->next) { ipod_dump_song (it->data); } g_list_foreach (songs, (GFunc)ipod_song_unref, NULL); g_list_free (songs); } static void dump_playlists (iPodDB *db) { GList *playlists; GList *it; playlists = ipod_db_get_playlists (db); for (it = playlists; it != NULL; it = it->next) { ipod_playlist_dump (it->data); } g_list_foreach (playlists, (GFunc)ipod_playlist_unref, NULL); g_list_free (playlists); } int main (int argc, char **argv) { iPodDB *db; GList *ipods; GList *ipod; ipods = ipod_enumerate (); for (ipod = ipods; ipod != NULL; ipod = ipod->next) { g_print ("Content of iPod mounted at %s:\n\n\n", (char *)ipod->data); db = ipod_db_load (ipod->data); if (db == NULL) { g_print ("Error reading iPod database\n"); continue; } dump_songs (db); dump_playlists (db); ipod_db_destroy (db); } g_list_foreach (ipods, (GFunc)g_free, NULL); g_list_free (ipods); return 0; }
#include <libitunesdb/ipoddb.h> #include <libitunesdb/ipod-detect.h> #include <libitunesdb/ipod-transfer.h> static iPodSong * get_song_info (iPodDB *db, const char *uri) { iPodSong *song; char *mount_point; /* This function must fill the metadata for the song that will then be * displayed in the iPod UI */ song = ipod_song_new (); song->artist = "Me"; song->album = "You"; song->title = "Them"; mount_point = ipod_db_get_mount_point (db); song->ipod_path = ipod_path_from_unix_path (mount_point, uri); g_free (mount_point); return song; } static int copy_uri (iPodDB *db, const char *uri) { int res; char *mount_point; char *dest; iPodSong *song; mount_point = ipod_db_get_mount_point (db); res = ipod_transfer_uri (mount_point, uri, &dest); g_free (mount_point); if (res != 0) { return -1; } song = get_song_info (db, dest); ipod_db_add_song (db, song); ipod_song_unref (song); return 0; } int main (int argc, char **argv) { iPodDB *db; GList *ipods; if (argc != 2) { g_print ("Usage: %s URI\n", argv[0]); return -1; } ipods = ipod_enumerate (); if (ipods == NULL) { return -1; } db = ipod_db_load (ipods->data); g_list_foreach (ipods, (GFunc)g_free, NULL); if (db == NULL) { g_print ("Error loading iPod database\n"); return -1; } if (copy_uri (db, argv[1]) != 0) { g_print ("Error copying %s to the iPod\n", argv[1]); } ipod_db_save (db); ipod_db_destroy (db); return 0; }
<< Usage examples |