aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEddy Pedroni <eddy@0xf7.com>2022-01-01 16:37:14 +0100
committerEddy Pedroni <eddy@0xf7.com>2022-01-01 16:37:14 +0100
commitd3be030dd3bc1e737870c676f9179e6fdd106a5d (patch)
treefaf9ffb6aa4a67b6fdcad762a52f9982952ed49f
parentb04c158210b816af3ad423a3a823c5a25591ac78 (diff)
Added current index getter to AB controller
-rw-r--r--abcontroller.py8
-rw-r--r--abcontroller_unittest.py12
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)