]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/data/TrackInfo.java
Version 14, October 2012
[GpsPrune.git] / tim / prune / data / TrackInfo.java
index 3df964b2652643624352a72b4e0c2be93114ed14..7bcbc641e75fcae730f07178d5ad93637486145c 100644 (file)
@@ -92,10 +92,10 @@ public class TrackInfo
        }
 
        /**
-        * Get the currently selected audio file, if any
-        * @return AudioFile if selected, otherwise null
+        * Get the currently selected audio clip, if any
+        * @return AudioClip if selected, otherwise null
         */
-       public AudioFile getCurrentAudio() {
+       public AudioClip getCurrentAudio() {
                return _audioList.getAudio(_selection.getCurrentAudioIndex());
        }
 
@@ -165,12 +165,12 @@ public class TrackInfo
         * @param inSet Set containing Audio objects
         * @return number of audio objects added
         */
-       public int addAudios(Set<AudioFile> inSet)
+       public int addAudios(Set<AudioClip> inSet)
        {
                int numAudiosAdded = 0;
                if (inSet != null && !inSet.isEmpty())
                {
-                       for (AudioFile audio : inSet)
+                       for (AudioClip audio : inSet)
                        {
                                if (audio != null && !_audioList.contains(audio))
                                {
@@ -184,21 +184,6 @@ public class TrackInfo
                return numAudiosAdded;
        }
 
-       /**
-        * Delete the currently selected range of points
-        * @return true if successful
-        */
-       public boolean deleteRange()
-       {
-               int startSel = _selection.getStart();
-               int endSel = _selection.getEnd();
-               boolean answer = _track.deleteRange(startSel, endSel);
-               // clear range selection
-               _selection.modifyRangeDeleted();
-               return answer;
-       }
-
-
        /**
         * Delete the currently selected point
         * @return true if point deleted
@@ -208,7 +193,6 @@ public class TrackInfo
                if (_track.deletePoint(_selection.getCurrentPointIndex()))
                {
                        _selection.modifyPointDeleted();
-                       UpdateMessageBroker.informSubscribers();
                        return true;
                }
                return false;
@@ -260,7 +244,7 @@ public class TrackInfo
                int audioIndex = _selection.getCurrentAudioIndex();
                if (audioIndex >= 0)
                {
-                       AudioFile audio = _audioList.getAudio(audioIndex);
+                       AudioClip audio = _audioList.getAudio(audioIndex);
                        _audioList.deleteAudio(audioIndex);
                        // has it got a point?
                        if (audio.getDataPoint() != null)
@@ -336,20 +320,6 @@ public class TrackInfo
                return true;
        }
 
-       /**
-        * Interpolate extra points between two selected ones
-        * @param inNumPoints num points to insert
-        * @return true if successful
-        */
-       public boolean interpolate(int inNumPoints)
-       {
-               boolean success = _track.interpolate(_selection.getStart(), inNumPoints);
-               if (success) {
-                       _selection.selectRangeEnd(_selection.getEnd() + inNumPoints);
-               }
-               return success;
-       }
-
 
        /**
         * Average selected points to create a new one
@@ -374,6 +344,18 @@ public class TrackInfo
                selectPoint(_track.getPointIndex(inPoint));
        }
 
+       /**
+        * Increment the selected point index by the given increment
+        * @param inPointIncrement +1 for next point, -1 for previous etc
+        */
+       public void incrementPointIndex(int inPointIncrement)
+       {
+               int index = _selection.getCurrentPointIndex() + inPointIncrement;
+               if (index < 0) index = 0;
+               else if (index >= _track.getNumPoints()) index = _track.getNumPoints()-1;
+               selectPoint(index);
+       }
+
        /**
         * Select the data point with the given index
         * @param inPointIndex index of DataPoint to select, or -1 for none
@@ -400,7 +382,7 @@ public class TrackInfo
                        audioIndex = _audioList.getAudioIndex(selectedPoint.getAudio());
                }
                else if (audioIndex < 0 || _audioList.getAudio(audioIndex).isConnected()) {
-                       // deselect current audio file
+                       // deselect current audio clip
                        audioIndex = -1;
                }
                // give to selection
@@ -439,14 +421,16 @@ public class TrackInfo
                                pointIndex = -1;
                        }
                }
-               // Has the new point got an audio file?
+               // Has the new point got an audio clip?
                DataPoint selectedPoint = _track.getPoint(pointIndex);
                int audioIndex = _selection.getCurrentAudioIndex();
-               if (selectedPoint != null) {
-                       if (selectedPoint.getAudio() != null) audioIndex = _audioList.getAudioIndex(selectedPoint.getAudio());
+               if (selectedPoint != null && selectedPoint.getAudio() != null) {
+                       // New point has an audio, so select it
+                       audioIndex = _audioList.getAudioIndex(selectedPoint.getAudio());
                }
-               else {
-                       if (selectedPoint != currPoint && currPoint.getAudio() != null) {audioIndex = -1;}
+               else if (currPoint != null && selectedPoint != currPoint && currPoint.getAudio() != null) {
+                       // Old point had an audio, so deselect it
+                       audioIndex = -1;
                }
                // give to selection object
                _selection.selectPointPhotoAudio(pointIndex, inPhotoIndex, audioIndex);
@@ -460,7 +444,7 @@ public class TrackInfo
        {
                if (_selection.getCurrentAudioIndex() == inAudioIndex) {return;}
                // Audio selection takes priority, deselecting point if necessary
-               AudioFile audio = _audioList.getAudio(inAudioIndex);
+               AudioClip audio = _audioList.getAudio(inAudioIndex);
                int pointIndex = _selection.getCurrentPointIndex();
                DataPoint currPoint = getCurrentPoint();
                if (audio != null)
@@ -485,11 +469,13 @@ public class TrackInfo
                // Has the new point got a photo?
                DataPoint selectedPoint = _track.getPoint(pointIndex);
                int photoIndex = _selection.getCurrentPhotoIndex();
-               if (selectedPoint != null) {
-                       if (selectedPoint.getPhoto() != null) photoIndex = _photoList.getPhotoIndex(selectedPoint.getPhoto());
+               if (selectedPoint != null && selectedPoint.getPhoto() != null) {
+                       // New point has a photo, so select it
+                       photoIndex = _photoList.getPhotoIndex(selectedPoint.getPhoto());
                }
-               else {
-                       if (selectedPoint != currPoint && currPoint.getPhoto() != null) {photoIndex = -1;}
+               else if (currPoint != null && selectedPoint != currPoint && currPoint.getPhoto() != null) {
+                       // Old point had a photo, so deselect it
+                       photoIndex = -1;
                }
                // give to selection object
                _selection.selectPointPhotoAudio(pointIndex, photoIndex, inAudioIndex);