예제 #1
0
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);
}
예제 #2
0
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);
}
예제 #3
0
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;
}
예제 #4
0
	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;
	}