aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--solo-tool-project/src/solo_tool/session_manager.py35
-rw-r--r--solo-tool-project/src/solo_tool/solo_tool.py1
-rw-r--r--solo-tool-project/test/session_manager_unittest.py9
-rw-r--r--solo-tool-project/test/test_session.json4
4 files changed, 24 insertions, 25 deletions
diff --git a/solo-tool-project/src/solo_tool/session_manager.py b/solo-tool-project/src/solo_tool/session_manager.py
index a4dabc0..9744b57 100644
--- a/solo-tool-project/src/solo_tool/session_manager.py
+++ b/solo-tool-project/src/solo_tool/session_manager.py
@@ -1,29 +1,30 @@
import json
+from . import SoloTool
-def loadSession(file, songList, abController):
- jsonStr = file.read()
- session = json.loads(jsonStr)
+def loadSession(file: str) -> SoloTool:
+ with open(file, "r") as f:
+ session = json.load(f)
- songList.clear()
- abController.clear()
+ st = SoloTool()
- for entry in session:
+ for i, entry in enumerate(session):
songPath = entry["path"]
- abLimits = entry["ab_limits"]
- songList.append(songPath)
+ keyPoints = entry["key_points"]
- if abLimits is not None:
- for l in abLimits:
- abController.storeLimits(l[0], l[1], songPath)
+ st.addSong(songPath)
+ st._keyPoints[i] = keyPoints
+
+ return st
-def saveSession(file, songList, abController):
- session = list()
+def saveSession(soloTool: SoloTool, file: str) -> None:
+ session = []
- for s in songList:
+ for i, song in enumerate(soloTool.songs):
entry = {
- "path": s,
- "ab_limits" : abController.getStoredLimits(s)
+ "path": song,
+ "key_points" : soloTool._keyPoints[i]
}
session.append(entry)
- file.write(json.dumps(session))
+ with open(file, "w") as f:
+ json.dump(session, f)
diff --git a/solo-tool-project/src/solo_tool/solo_tool.py b/solo-tool-project/src/solo_tool/solo_tool.py
index 97c3495..147a7b9 100644
--- a/solo-tool-project/src/solo_tool/solo_tool.py
+++ b/solo-tool-project/src/solo_tool/solo_tool.py
@@ -1,6 +1,5 @@
import os
-from .session_manager import loadSession, saveSession
from .notifier import Notifier
from .player_vlc import Player
diff --git a/solo-tool-project/test/session_manager_unittest.py b/solo-tool-project/test/session_manager_unittest.py
index 0edc252..8658032 100644
--- a/solo-tool-project/test/session_manager_unittest.py
+++ b/solo-tool-project/test/session_manager_unittest.py
@@ -3,8 +3,6 @@ from json import loads
import pathlib
import shutil
-pytestmark = pytest.mark.skip(reason="not yet implemented")
-
from solo_tool.session_manager import loadSession, saveSession
from solo_tool.solo_tool import SoloTool
@@ -25,16 +23,17 @@ def test_loadSession(prepared_tmp_path):
assert soloTool.songs == ["test.flac", "test.mp3"]
soloTool.song = 0
- assert soloTool.keyPositions == []
+ assert soloTool.keyPoints == []
soloTool.song = 1
- assert soloTool.keyPositions == [0.1, 0.3]
+ assert soloTool.keyPoints == [0.1, 0.3]
def test_saveSession(prepared_tmp_path):
soloTool = SoloTool()
soloTool.addSong("test.flac")
soloTool.addSong("test.mp3")
- soloTool.keyPositions = [0.1, 0.3]
+ soloTool.song = 1
+ soloTool.keyPoints = [0.1, 0.3]
testFile = prepared_tmp_path / "test_session_saved.json"
saveSession(soloTool, testFile)
diff --git a/solo-tool-project/test/test_session.json b/solo-tool-project/test/test_session.json
index aed1e11..49c2d42 100644
--- a/solo-tool-project/test/test_session.json
+++ b/solo-tool-project/test/test_session.json
@@ -1,10 +1,10 @@
[
{
"path" : "test.flac",
- "key_positions" : null
+ "key_points" : []
},
{
"path" : "test.mp3",
- "key_positions" : [0.1, 0.3]
+ "key_points" : [0.1, 0.3]
}
]