import json class SessionManager: def __init__(self, playlist, abController): self._playlist = playlist self._abController = abController def addSong(self, path): self._playlist.addSong(path) def storeLimits(self, aLimit, bLimit): self._abController.storeLimits(aLimit, bLimit) def loadSession(self, file): jsonStr = file.read() session = json.loads(jsonStr) self._playlist.clear() self._abController.clear() for entry in session: songPath = entry["path"] abLimits = entry["ab_limits"] self._playlist.addSong(songPath) if abLimits is not None: for l in abLimits: self._abController.storeLimits(l[0], l[1], songPath) def saveSession(self, file): songs = self._playlist.getSongs() session = list() for s in songs: entry = { "path": s, "ab_limits" : self._abController.getLimits(s) } session.append(entry) file.write(json.dumps(session))