Commit Graph

18 Commits

Author SHA1 Message Date
Jens Luetjen
e56c39ee78 Add unit tests for export/restore core state
Fix issues shown by test code
2016-01-03 18:29:35 +01:00
Jens Luetjen
a5a9178b06 Use model(s) to save/restore current play state 2016-01-02 15:28:41 +01:00
Jens Luetjen
e9625e9feb core: Fix #310: Persist mopidy state between runs.
Persist following properties:
mopidy.core.tracklist
    _tl_tracks
    _next_tlid
    get_consume()
    get_random()
    get_repeat()
    get_single()
mopidy.core.history
    _history
mopidy.core.playlist
    get_current_tl_track()
    get_time_position()
mopidy.core.mixer
    get_volume()

Details:
- moved json export/import write_library()/load_library() from mopidy/local to mopidy/models
- new core methods save_state(), load_state()
- save_state(), load_state() accessible via rpc
- save state to disk at stop
- load state from disk at start
- new config: core.restore_state ("off", "load", "play")

TODO:
- seek to play position does not work. Timing issue.
- use extra thread to load state from disk at start?
2015-12-27 19:28:41 +01:00
Stein Magnus Jodal
9bb278f00e core: Make history controller traversable
Fixes mopidy/mopidy.js#6
2015-04-22 22:49:35 +02:00
Stein Magnus Jodal
861f60e6f1 core: Make history.add() private
Instead of changing the signature to add(uri, name) I opted for
renaming it to _add_track(track).

Since it's internal we may change it whenever we like to. Since you need
different logic for extracting an interesting name from a track and from
a ref or a stream title, it makes sense to add another method for adding
refs/stream titles to the history when that time comes.

Fixes #1056
2015-03-20 22:41:56 +01:00
Stein Magnus Jodal
496142c201 py3: Use absolute imports by default 2014-12-07 20:17:10 +01:00
Stein Magnus Jodal
130b1eb32a docs: Define timestamp type 2014-09-23 20:55:16 +02:00
Stein Magnus Jodal
5317834baf history: Change size property to get_length() method
For consistency with tracklist.get_length() and our goal of aligning Python
and JS APIs by using less properties in the core API.
2014-09-23 18:47:54 +02:00
Stein Magnus Jodal
177f91fb27 history: Tweaking formatting and variable names 2014-09-23 18:45:24 +02:00
Stein Magnus Jodal
1f1e86023b history: Cleanup docstrings 2014-09-23 18:44:17 +02:00
Stein Magnus Jodal
d30cf68efd history: Raise TypeError if non-Tracks are added 2014-09-23 18:42:41 +02:00
Stein Magnus Jodal
ded43039bf history: Keep history in private attribute
So it is not accessible directly from other actors.
2014-09-23 18:38:38 +02:00
Stein Magnus Jodal
f3a6c10188 history: Import entire modules
For concistency with other code.
2014-09-23 18:37:18 +02:00
Stein Magnus Jodal
1f9c5c609a history: Use time.time() to get time since epoch 2014-09-23 18:34:50 +02:00
Stein Magnus Jodal
718405421d history: Rename class to HistoryController
For consistency with other core controllers.
2014-09-23 18:32:37 +02:00
Arjun Naik
a6370b0a67 Switched track name and artist order in history object. 2014-09-23 18:09:12 +02:00
Arjun Naik
9006968f75 TrackHistory stores Ref instances. Timestamp as epoch in milliseconds also stored. 2014-09-23 18:09:12 +02:00
Arjun Naik
ed87ab8dd1 Added a playback history object to the core. 2014-09-23 18:09:11 +02:00