Added support for finding songs within nested heos source trees #22
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added support for finding songs within nested heos source trees - usful when using local dlna music servers.
Added the ability to browse container sources.
Containers now inherit the source_id of the parent source.
Songs now inherit the source_id and container_id of the parent source, allowing them to be queued.
Added support for saving the queue as a playlist.
Added support for getting the current queue.
Description:
When using a local dlna server with heos, the heos sources can be deeply nested and the server often does not support search directly. These changes allow the user to efficiently explore the heos source tree, finding songs and adding them to the queue.
The code works by using the browse commands to build an index for each source. By default, this is done lazily, but an index_all command gives the user the option to recursively build the full index up front.
I have also added support for saving the queue as a playlist.
I developed these chages to allow me to import XSPF playlists (exported from Sonos using soco) into my heos system.
Checklist:
tox
. Your PR cannot be merged unless tests pass.coveragerc
permitted.README.MD
updated (if necessary)