diff options
| -rw-r--r-- | abcontroller.py | 8 | ||||
| -rw-r--r-- | abcontroller_unittest.py | 12 | 
2 files changed, 19 insertions, 1 deletions
| diff --git a/abcontroller.py b/abcontroller.py index c04b8db..e4088b4 100644 --- a/abcontroller.py +++ b/abcontroller.py @@ -7,7 +7,8 @@ class ABController:          self._setPositionCallback = callback          self._limits = dict() # dictionary of all songs          self._songLimits = None # list of limits for selected song -        self._currentLimits = _AB(0.0, 0.0) # a/b positions of selected limit +        self._currentLimits = _AB(0.0, 0.0) # a/b positions of active limit +        self._loadedIndex = None          self._enabled = enabled      def _ensureSongExists(self, path): @@ -37,9 +38,11 @@ class ABController:          if index >= 0 and index < len(self._songLimits):              self._currentLimits = self._songLimits[index] +            self._loadedIndex = index      def setLimits(self, aLimit, bLimit):          self._currentLimits = _AB(aLimit, bLimit) +        self._loadedIndex = None      def positionChanged(self, position):          if position > self._currentLimits.b and self._setPositionCallback and self._enabled: @@ -54,5 +57,8 @@ class ABController:      def getCurrentLimits(self):          return self._currentLimits +    def getLoadedIndex(self): +        return self._loadedIndex +      def clear(self):          self.__init__(enabled=self._enabled, callback=self._setPositionCallback) diff --git a/abcontroller_unittest.py b/abcontroller_unittest.py index b2b2a67..4f79fd9 100644 --- a/abcontroller_unittest.py +++ b/abcontroller_unittest.py @@ -48,6 +48,7 @@ def test_oneSetOfLimits():      uut.setCurrentSong(song)      uut.storeLimits(abLimits.a, abLimits.b)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == 0      checkLimits(uut, abLimits.a, abLimits.b)      assert uut.getStoredLimits(song) == [abLimits] @@ -67,6 +68,7 @@ def test_multipleSetsOfLimits():      for i, l in enumerate(abLimits):          uut.loadLimits(i) +        assert uut.getLoadedIndex() == i          checkLimits(uut, l.a, l.b)      assert uut.getStoredLimits(song) == abLimits @@ -87,6 +89,7 @@ def test_multipleSongs():      for i, s in enumerate(songs):          uut.setCurrentSong(s)          uut.loadLimits(0) +        assert uut.getLoadedIndex() == 0          checkLimits(uut, abLimits[i].a, abLimits[i].b)          assert uut.getStoredLimits(s) == [abLimits[i]] @@ -98,6 +101,7 @@ def test_disableAbRepeat():      uut.setCurrentSong(song)      uut.storeLimits(abLimits.a, abLimits.b)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == 0      uut.setEnable(False)      checkLimits(uut, abLimits.a, abLimits.b, fail=True) @@ -112,6 +116,7 @@ def test_storeLimitsToSpecificSong():      uut.storeLimits(abLimits.a, abLimits.b, song)      uut.setCurrentSong(song)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == 0      checkLimits(uut, abLimits.a, abLimits.b) @@ -119,6 +124,7 @@ def test_storeLimitsWithoutCurrentSong():      uut = ABController()      uut.storeLimits(abLimits.a, abLimits.b)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == None      checkDefaultLimits(uut) @@ -127,6 +133,7 @@ def test_storeLimitsToSongWithoutCurrentSong():      uut = ABController()      uut.storeLimits(abLimits.a, abLimits.b, song)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == None      checkDefaultLimits(uut) @@ -135,6 +142,7 @@ def test_storeLimitsToSongWithoutCurrentSong():      checkDefaultLimits(uut)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == 0      checkLimits(uut, abLimits.a, abLimits.b) @@ -143,10 +151,12 @@ def test_storeLimitsToCurrentSongButDoNotSetCurrentLimits():      uut = ABController()      uut.setCurrentSong(song)      uut.storeLimits(abLimits.a, abLimits.b) +    assert uut.getLoadedIndex() == None      checkDefaultLimits(uut)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == 0      checkLimits(uut, abLimits.a, abLimits.b) @@ -183,6 +193,7 @@ def test_setTemporaryLimits():      for l in abLimits:          uut.setLimits(l.a, l.b) +        assert uut.getLoadedIndex() == None          checkLimits(uut, l.a, l.b)  def test_setTemporaryLimitsWithCurrentSong(): @@ -197,6 +208,7 @@ def test_setTemporaryLimitsWithCurrentSong():      uut.setCurrentSong(song)      uut.storeLimits(songLimits.a, songLimits.b)      uut.loadLimits(0) +    assert uut.getLoadedIndex() == 0      for l in abLimits:          uut.setLimits(l.a, l.b) | 
