package com.googlecode.mp4parser.authoring;
import java.util.LinkedList;
import java.util.List;
/**
*
*/
public class Movie {
List<Track> tracks = new LinkedList<Track>();
MovieMetaData movieMetaData = new MovieMetaData();
public List<Track> getTracks() {
return tracks;
}
public void setTracks(List<Track> tracks) {
this.tracks = tracks;
}
public void addTrack(Track nuTrack) {
// do some checking
// perhaps the movie needs to get longer!
if (getTrackByTrackId(nuTrack.getTrackMetaData().getTrackId()) != null) {
// We already have a track with that trackId. Create a new one
nuTrack.getTrackMetaData().setTrackId(getNextTrackId());
}
tracks.add(nuTrack);
}
public MovieMetaData getMovieMetaData() {
return movieMetaData;
}
public void setMovieMetaData(MovieMetaData movieMetaData) {
this.movieMetaData = movieMetaData;
}
@Override
public String toString() {
String s = "Movie{ ";
for (Track track : tracks) {
s += "track_" + track.getTrackMetaData().getTrackId() + " (" + track.getType() + "), ";
}
s += ", movieMetaData=" + movieMetaData + '}';
return s;
}
public long getNextTrackId() {
long nextTrackId = 0;
for (Track track : tracks) {
nextTrackId = nextTrackId < track.getTrackMetaData().getTrackId() ? track.getTrackMetaData().getTrackId() : nextTrackId;
}
return ++nextTrackId;
}
public Track getTrackByTrackId(long trackId) {
for (Track track : tracks) {
if (track.getTrackMetaData().getTrackId() == trackId) {
return track;
}
}
return null;
}
}