diff options
Diffstat (limited to 'solo-tool-project')
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 | 
