]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - src/tim/prune/data/AudioList.java
Moved source into separate src directory due to popular request
[GpsPrune.git] / src / tim / prune / data / AudioList.java
diff --git a/src/tim/prune/data/AudioList.java b/src/tim/prune/data/AudioList.java
new file mode 100644 (file)
index 0000000..e42527f
--- /dev/null
@@ -0,0 +1,99 @@
+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();
+       }
+}