I meant this as a comparison of functionality
. Having AV UPnP in OH is huge… people just don’t realize it yet!
Save it for a rainy day! For me it’s very low in priority and I do not think many people will even notice it or care. Building out a queue though… that would be some effort but really put some icing on this as a control point. Did you look at the AudioNet app? You can enable/disable shuffle, build out a queue, play from the queue, remove things from the queue, etc. And you can select another renderer and manipulate its queue too. When we have people over, I set up multiple genres on a few renderers throughout the house.
It sounds like you have not implemented Shuffle but Random. Random plays a random song in the list, so there can be repeats before all songs in the list have played. Shuffle plays all songs in a list in a random order. If you add repeat to shuffle, it would be neat to have it start in a random order, which is what I have implemented in my scripts.
Go back to the original order and continue from where the current track is located in the list.
If repeat is ON, go to first. If not, stop.
Definitely only when repeat is on!
Search is now unpredictable and I’m still trying to understand what it’s doing. Search is also buggered. If you stop, browse, play, browse, play… nothing happens… upnp testing.log (145.2 KB). If you stop, browse, play, stop, browse, play… everything is OK.
No, not yet. But even with the bugs fixed, considering how slow the maintainers are, you may want to get in some more stuff in before submitting. There will be less reviews that way, but definitely try to get a PR in within the next week or two so that it can be approved for 2.5.9, which is the last of 2.5.x except bug fixes.
How about Channels on the media server to select the behavior of the Search? I could see two switches… one for whether or not to play the result after a Seach, and another for whether to always start the search from the root. Or these could be different types of Search Criteria Channels (I think I like this option best). You could also do this with a single Channel with a selection for…
- Search
- Search from root
- Search and play
- Search from root and play
The ability to Search from the root and play afterward the search would save a LOT of headaches in getting aomething to play after a search. For example, you could search for a playlist of spooky Halloween sounds and randomly play one of them, all by setting the renderer and sending a string to the search criteria. Motion in another room… set the renderer and set the criteria. I currently do this with a lot of Python and API calls to Twonky.
Nice! It seems to work perfectly and you now have implemented true Shuffle! With Repeat turned on though, it played the same random order the second and third time through. IMO, this should be random each time. If you were really serious about it, remove the last played track too, in order to remove the possibility of repeating the last track played. With two tracks, you end up playing the original random order, but who cares! If there is only one track in the playlist, ignore Shuffle.
So, you have a source_list and a working_list. When browsing, populate both the source_list and working_list. If Shuffle it ON and len(source_list) > 1, working_list should be shuffled. When playing, pop the tracks out of the working_list. When it is empty, repopulate it from source_list. If Shuffle is ON and len(source_list) > 1, pop the last track played and then shuffle.