+package tim.prune.data;
+
+import java.util.ArrayList;
+
+/**
+ * Class to hold a list of audio clips, using the MediaList superclass
+ */
+public class AudioList extends MediaList
+{
+ /**
+ * Empty constructor
+ */
+ public AudioList() {
+ this(null);
+ }
+
+ /**
+ * Constructor
+ * @param inList ArrayList containing audio clip objects
+ */
+ private AudioList(ArrayList<MediaObject> inList) {
+ super(inList);
+ }
+
+ /**
+ * @return clone of list contents
+ */
+ public AudioList cloneList()
+ {
+ if (getNumMedia() == 0) return this;
+ ArrayList<MediaObject> listCopy = new ArrayList<MediaObject>();
+ listCopy.addAll(_media);
+ return new AudioList(listCopy);
+ }
+
+ /**
+ * @return the number of audio clips in the list
+ */
+ public int getNumAudios() {
+ return getNumMedia();
+ }
+
+ /**
+ * Add an audio clip to the list
+ * @param inAudio object to add
+ */
+ public void addAudio(AudioClip inAudio) {
+ addMedia(inAudio);
+ }
+
+ /**
+ * Add an audio clip to the list
+ * @param inAudio object to add
+ * @param inIndex index at which to add
+ */
+ public void addAudio(AudioClip inAudio, int inIndex) {
+ addMedia(inAudio, inIndex);
+ }
+
+ /**
+ * Remove the selected audio clip from the list
+ * @param inIndex index number to remove
+ */
+ public void deleteAudio(int inIndex) {
+ deleteMedia(inIndex);
+ }
+
+ /**
+ * Get the index of the given audio clip
+ * @param inAudio object to check
+ * @return index of this object in the list, or -1 if not found
+ */
+ public int getAudioIndex(AudioClip inAudio) {
+ return getMediaIndex(inAudio);
+ }
+
+ /**
+ * Get the Audio object at the given index
+ * @param inIndex index number, starting at 0
+ * @return specified object
+ */
+ public AudioClip getAudio(int inIndex) {
+ return (AudioClip) getMedia(inIndex);
+ }
+
+ /**
+ * @return true if list contains correlated objects
+ */
+ public boolean hasCorrelatedAudios() {
+ return hasCorrelatedMedia();
+ }
+
+ /**
+ * Remove all correlated media from the list
+ */
+ public void removeCorrelatedAudios() {
+ removeCorrelatedMedia();
+ }
+}