static void rb_ipod_db_add_to_playlist_internal (RbIpodDb* ipod_db, Itdb_Playlist *playlist, Itdb_Track *track) { itdb_playlist_add_track (playlist, track, -1); rb_ipod_db_save_async (ipod_db); }
static void rb_ipod_db_add_track_internal (RbIpodDb *ipod_db, Itdb_Track *track) { RbIpodDbPrivate *priv = IPOD_DB_GET_PRIVATE (ipod_db); itdb_track_add (priv->itdb, track, -1); itdb_playlist_add_track (itdb_playlist_mpl (priv->itdb), track, -1); rb_ipod_db_save_async (ipod_db); }
Itdb_Track* GPodDevice::AddTrackToITunesDb(const Song& metadata) { // Create the track Itdb_Track* track = itdb_track_new(); metadata.ToItdb(track); // Add it to the DB and the master playlist // The DB takes ownership of the track itdb_track_add(db_, track, -1); Itdb_Playlist* mpl = itdb_playlist_mpl(db_); itdb_playlist_add_track(mpl, track, -1); return track; }
Itdb_Track* GpodDb::AddTrack (const QString& path, const QString& filename, const UnmountableFileInfo& info) { auto dup = [] (const QString& str) { return strdup (str.toUtf8 ().constData ()); }; const auto track = itdb_track_new (); track->track_nr = info.TrackNumber_; track->title = dup (info.TrackTitle_); track->artist = dup (info.Artist_); track->album = dup (info.Album_); track->year = info.AlbumYear_; track->genre = dup (info.Genres_.join (" / ")); track->size = QFileInfo { path }.size (); track->transferred = 1; track->filetype = strdup ("mp3"); const auto& suffix = filename.section ('.', -1, -1).toUpper (); track->filetype_marker = 0; for (int i = 0; i < 4; ++i) { track->filetype_marker <<= 8; track->filetype_marker |= (i >= suffix.length () ? ' ' : suffix [i].toLatin1 ()); } track->ipod_path = strdup (filename.toUtf8 ().mid (1)); itdb_filename_fs2ipod (track->ipod_path); itdb_track_add (DB_, track, -1); itdb_playlist_add_track (itdb_playlist_mpl (DB_), track, -1); return track; }