Post Songbird 1.1.0, Now Playing List will probably change dramatically in a way that hasn't been possible before. This will be due to a bug fix that didn't make it into 1.0, as well as a patch that I wrote and got accepted, which will most likely appear in the next major release. What this means is that I'll be able to completely rewrite the add-on to avoid all those crashes and bugs, and also eliminate the need to have those confusing modes. I thought I'd share with you the new user interaction model I hope to implement and get your feedback
As you can see, no where have I mentioned the work 'queue' or talked about having to switch modes. The changes that are going into Songbird 1.1.0 should hopefully enable these things to happen naturally like they should. It still makes a distinction between 'Now Playing' and 'Custom Playlist', but this happens automatically and merely indicates whether the now playing list is still in sync with the main window, or has been altered "on the fly".
You should also be aware that when I say "Add tracks to the now playing list" I haven't said how, so this could be via drag and drop, via pressing 'Q' on the keyboard, via a right-click menu with 'Queue Next' or 'Queue Last' etc. Also this should be possible from any playlist, not just the library.
The last time I released a version of Now Playing List was about 3 months ago, and in that time I've received lots of feedback. I haven't responded to much of it - I know, but I've combed every comment, every get satisfaction forum, every bug report, and in the next release of the extension for Songbird 1.0 I've tried to address as many things as possible.
However there are many things that are just not possible to do in Songbird from an extension due to the way Songbird is design.
The design of Songbird
Songbird organises your library in three 'layers': libraries, medialists and views.
Why Now Playing List is the way it is
If shuffle is not on, Songbird will play a view in order from first to last. If shuffle is on, Songbird will play a view in a random order. Whether or not shuffle is on, the order that a view is played in is predetermined before the first track has even started playing. Furthermore once the view has started playing it is impossible to change the order mid-sequence.
For this reason Now Playing List has two modes (I know older version had 3 - more on this later). Since it is called "Now Playing" List, one mode is there to actually show what is 'now playing'. It's really so you can see what's playing and browse a web page at the same time. Queuing involves changing the order that a view gets played in, which is impossible, but I can change the order of an underlying medialist, which is why queuing is implemented as a separate playlist in its own mode.
I know that this isn't the behaviour of say Winamp (which I have never actually used, but this is the impression I get from the feedback I've received). It is the best I can do from an extension without a major rewrite on the part of Songbird itself.
Changes/Improvements
I understand that previous versions of the extension haven't been that usable, so I've made some changes based on the feedback I've got.
First of all the bugs where it would think it's playing the second track in the queue when it's not is gone (I hope?). Also it doesn't jump to the queue and play that if you double click on a track in the main area. Instead it now adds that track to the top of the queue and plays the one you clicked.
An idea that I thought was nice was the ability to tell something to play as the last song in the queue or as the next song coming up. If you right-click you'll now see 'Queue Next' and 'Queue Last'. I've tried adding shortcut keys for these but it didn't work, I don't know why.
Regarding the different modes, there used to be three and you had to cycle through them all - I never liked this. Custom and Queue mode are essentially the exact same thing just with different playback behaviour. So I've consolidated these two modes into one, so now there's no three-way toggle (there is still a two-way toggle now but it should be less cumbersome). Changing the behaviour of this mode is now done by a button. Since it really toggles whether to turn queuing on or off -- or the order of playback -- I put it next to the other buttons that control the order of playback, i.e. shuffle and repeat.
What this also implies is that even when the display pane is closed, queuing will still work as normal. This is true.
A design quirk I'm not sure is correct, but is what I've settled on is that if you are in the 'now playing' mode and you click this queue button, it will not switch modes, you'll still be in 'now playing' mode. The queue mode only takes effect once you explicitly go to the non-now playing mode.
So there you go. This isn't the end though, I'm not going to wait another three months before I release another version this time. I'm aware that I haven't addressed everything, but hopefully it'll all come together eventually.