aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project
diff options
context:
space:
mode:
Diffstat (limited to 'solo-tool-project')
-rw-r--r--solo-tool-project/src/solo_tool/handlers.py13
-rw-r--r--solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py2
-rw-r--r--solo-tool-project/src/solo_tool/solo_tool.py5
-rw-r--r--solo-tool-project/test/solo_tool_integrationtest.py8
4 files changed, 20 insertions, 8 deletions
diff --git a/solo-tool-project/src/solo_tool/handlers.py b/solo-tool-project/src/solo_tool/handlers.py
index 040928c..1e0e22c 100644
--- a/solo-tool-project/src/solo_tool/handlers.py
+++ b/solo-tool-project/src/solo_tool/handlers.py
@@ -4,7 +4,7 @@ from solo_tool.solo_tool import SoloTool
def playPause(st: SoloTool) -> Callable[[], None]:
def f():
- if st.isPlaying():
+ if st.playing:
st.pause()
else:
st.play()
@@ -28,6 +28,11 @@ def positionToKeyPoint(st: SoloTool) -> Callable[[], None]:
st.keyPoint = st.position
return f
+def setKeyPoint(st: SoloTool, kp: float) -> Callable[[], None]:
+ def f():
+ st.keyPoint = kp
+ return f
+
def changeKeyPoint(st: SoloTool, delta: int) -> Callable[[], None]:
from bisect import bisect_right, bisect_left
def f():
@@ -46,7 +51,13 @@ def rateAbsolute(st: SoloTool, value: float) -> Callable[[], None]:
st.rate = value
return f
+def rateRelative(st: SoloTool, delta: float) -> Callable[[], None]:
+ def f():
+ st.rate += delta
+ return f
+
def volumeAbsolute(st: SoloTool, value: float) -> Callable[[], None]:
def f():
st.volume = value
return f
+
diff --git a/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py b/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py
index 9582a88..38b7cce 100644
--- a/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py
+++ b/solo-tool-project/src/solo_tool/midi_controller_launchpad_mini.py
@@ -113,7 +113,7 @@ class MidiController:
# playback control
self._setButtonLED(6, 0, MidiController.LED_RED)
- self._updatePlayPauseButton(self._soloTool.isPlaying())
+ self._updatePlayPauseButton(self._soloTool.playing)
# Key point control
self._setButtonLED(7, 2, MidiController.LED_YELLOW)
diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py
index 13e3c03..0f47aef 100644
--- a/solo-tool-project/src/solo_tool/solo_tool.py
+++ b/solo-tool-project/src/solo_tool/solo_tool.py
@@ -29,7 +29,7 @@ class SoloTool:
def addSong(self, path: str) -> None:
if not os.path.isfile(path):
- raise FileNotFoundError()
+ raise FileNotFoundError(path)
self._songs.append(path)
self._keyPoints.append([])
@@ -76,7 +76,8 @@ class SoloTool:
def stop(self):
self._player.stop()
- def isPlaying(self):
+ @property
+ def playing(self) -> bool:
return self._player.isPlaying()
def jump(self):
diff --git a/solo-tool-project/test/solo_tool_integrationtest.py b/solo-tool-project/test/solo_tool_integrationtest.py
index 2a818ed..2a55df9 100644
--- a/solo-tool-project/test/solo_tool_integrationtest.py
+++ b/solo-tool-project/test/solo_tool_integrationtest.py
@@ -27,16 +27,16 @@ def prepared_tmp_path(tmp_path):
def test_playerControls(uut, mockPlayer):
assert mockPlayer.state == MockPlayer.STOPPED
- assert uut.isPlaying() == False
+ assert uut.playing == False
uut.play()
assert mockPlayer.state == MockPlayer.PLAYING
- assert uut.isPlaying() == True
+ assert uut.playing == True
uut.pause()
assert mockPlayer.state == MockPlayer.PAUSED
- assert uut.isPlaying() == False
+ assert uut.playing == False
uut.stop()
assert mockPlayer.state == MockPlayer.STOPPED
- assert uut.isPlaying() == False
+ assert uut.playing == False
assert mockPlayer.rate == 1.0
uut.rate = 0.5