aboutsummaryrefslogtreecommitdiffstats
path: root/solo-tool-project/test/midi_launchpad_mini_integrationtest.py
diff options
context:
space:
mode:
authorEddy Pedroni <epedroni@pm.me>2024-11-10 12:23:21 +0100
committerEddy Pedroni <epedroni@pm.me>2024-11-10 12:23:21 +0100
commitb015f93a58f8c0d4bc36b504a55b88468640b141 (patch)
treef3f76e510d5a3fc892b5f9c3a874653cbc80c93c /solo-tool-project/test/midi_launchpad_mini_integrationtest.py
parent85b0116f80515c71e0250e4910c721b9e4fabca1 (diff)
MIDI controller interface seeking
Diffstat (limited to 'solo-tool-project/test/midi_launchpad_mini_integrationtest.py')
-rw-r--r--solo-tool-project/test/midi_launchpad_mini_integrationtest.py58
1 files changed, 50 insertions, 8 deletions
diff --git a/solo-tool-project/test/midi_launchpad_mini_integrationtest.py b/solo-tool-project/test/midi_launchpad_mini_integrationtest.py
index e7c1315..8fd09bb 100644
--- a/solo-tool-project/test/midi_launchpad_mini_integrationtest.py
+++ b/solo-tool-project/test/midi_launchpad_mini_integrationtest.py
@@ -1,4 +1,5 @@
import pytest
+from mido import Message
from solo_tool.midi_controller_launchpad_mini import MidiController
from solo_tool.solo_tool import SoloTool
@@ -10,12 +11,12 @@ LED_GREEN = 124
LED_OFF = 0
nextSongButton = 55
-plus1MinuteButton = 54
-plus30SecondsButton = 53
-plus5SecondsButton = 52
-minus5SecondsButton = 51
-minus30SecondsButton = 50
-minus1MinuteButton = 49
+fwd25PcButton = 54
+fwd5PcButton = 53
+fwd1PcButton = 52
+rwd1PcButton = 51
+rwd5PcButton = 50
+rwd25PcButton = 49
previousSongButton = 48
playPauseButton = 112
@@ -46,7 +47,6 @@ class MidiWrapperMock:
def simulateInput(self, note, velocity=127, channel=0):
if self.callback is not None:
- from mido import Message
msg = Message("note_on", note=note, velocity=velocity, channel=channel)
self.callback(msg)
@@ -365,7 +365,13 @@ def test_connectDisconnect(uut, midiWrapperMock):
(setAButton, LED_YELLOW, 0),
(setBButton, LED_YELLOW, 0),
(previousSongButton, LED_RED, 0),
- (nextSongButton, LED_GREEN, 0)
+ (rwd1PcButton, LED_RED, 0),
+ (rwd5PcButton, LED_RED, 0),
+ (rwd25PcButton, LED_RED, 0),
+ (nextSongButton, LED_GREEN, 0),
+ (fwd1PcButton, LED_GREEN, 0),
+ (fwd5PcButton, LED_GREEN, 0),
+ (fwd25PcButton, LED_GREEN, 0),
])
teardownMessages = [(int(i / 8) * 16 + (i % 8), LED_OFF, 0) for i in range(0, 64)] # clear all
@@ -436,3 +442,39 @@ def test_setAbButtons(uut, midiWrapperMock, soloTool, playerMock):
midiWrapperMock.simulateInput(nextLimitButton)
checkLimit(abLimits[0], abLimits[1])
+def test_seekButtons(uut, midiWrapperMock, soloTool, playerMock):
+ song = "test.flac"
+ soloTool.addSong(song)
+ soloTool.setSong(0)
+
+ uut.connect()
+
+ assert playerMock.position == 0.0
+
+ midiWrapperMock.simulateInput(fwd25PcButton)
+ assert playerMock.position == 0.25
+
+ midiWrapperMock.simulateInput(fwd5PcButton)
+ assert playerMock.position == 0.30
+
+ midiWrapperMock.simulateInput(fwd1PcButton)
+ assert playerMock.position == 0.31
+
+ midiWrapperMock.simulateInput(fwd25PcButton)
+ midiWrapperMock.simulateInput(fwd25PcButton)
+ midiWrapperMock.simulateInput(fwd25PcButton)
+ assert playerMock.position == 1.0
+
+ midiWrapperMock.simulateInput(rwd25PcButton)
+ assert playerMock.position == 0.75
+
+ midiWrapperMock.simulateInput(rwd5PcButton)
+ assert playerMock.position == 0.70
+
+ midiWrapperMock.simulateInput(rwd1PcButton)
+ assert playerMock.position == 0.69
+
+ midiWrapperMock.simulateInput(rwd25PcButton)
+ midiWrapperMock.simulateInput(rwd25PcButton)
+ midiWrapperMock.simulateInput(rwd25PcButton)
+ assert playerMock.position == 0.0