file = reader.read(referencedFile);
}
int size = fileData.getTrackData().size();
for (int i = 0; i < size; i++) {
TrackData trackData = fileData.getTrackData().get(i);
Track track = file.copy();
track.getTrackData().setCueEmbedded(embedded);
if (!embedded)
track.getTrackData().setCueLocation(cueLocation);
String album = trackData.getMetaData(CueSheet.MetaDataField.ALBUMTITLE);
if (album.length() > 0)
track.getTrackData().setTagFieldValues(FieldKey.ALBUM, album);
String artist = trackData.getPerformer();
track.getTrackData().setTagFieldValues(FieldKey.ARTIST, artist != null && artist.length() > 0 ? artist : cueSheet.getPerformer());
track.getTrackData().setTagFieldValues(FieldKey.ALBUM_ARTIST, cueSheet.getPerformer());
track.getTrackData().setTagFieldValues(FieldKey.COMMENT, cueSheet.getComment());
track.getTrackData().setTagFieldValues(FieldKey.TITLE, trackData.getTitle());
String year = trackData.getMetaData(CueSheet.MetaDataField.YEAR);
if (year.length() > 0)
track.getTrackData().setTagFieldValues(FieldKey.YEAR, year);
track.getTrackData().setTagFieldValues(FieldKey.TRACK, String.valueOf(trackData.getNumber()));
String genre = trackData.getMetaData(CueSheet.MetaDataField.GENRE);
if (genre.length() > 0)
track.getTrackData().setTagFieldValues(FieldKey.GENRE, genre);
int sampleRate = track.getTrackData().getSampleRate();
long startPosition = indexToSample(trackData.getIndex(1), sampleRate);
// System.out.println(song.getFile().getName() + " " + startPosition);
long endPosition;
if (i >= size - 1) {
endPosition = track.getTrackData().getTotalSamples();
} else {
TrackData nextTrack = fileData.getTrackData().get(i + 1);
endPosition = indexToSample(nextTrack.getIndex(1), sampleRate);
}
track.getTrackData().setTotalSamples(endPosition - startPosition);
track.getTrackData().setSubsongIndex(i + 1);
track.getTrackData().setStartPosition(startPosition);
list.add(track);