Warning, /multimedia/amarok/HACKING/architecture/PlaybackQueue.txt is written in an unsupported language. File is not indexed.

0001 Playback Queue Architecture
0002 ---------------------------
0003 
0004 Simple sequential list of upcoming tracks. The PlaybackController takes the first track on this list for playback. It does not include the currently playing track.
0005 There are no modes (random, repeat, etc) affecting the playback order. The behavior of these modes are implemented using Playlists and playlist-tracking who change the actual content of the queue to get the same result.
0006 
0007 A QAbstractItemModel for the PlaybackQueue is exposed as the main interface. It's possible to insert and remove rows using the default methods and drag/drop of mime-data containing meta types is supported. It's a flat QModelIndex containing only tracks. For purposes of display it can be used with proxy models such as QtGroupingProxy to group by album/artist/composer. Sorting of the queue is possible but is one undoable QAction. How the new order is determined does not matter, but use a proxy models such as QSortFilterProxyModel is suggested because of it's well known semantics and uses within Amarok.
0008 Using extra columns and data roles the PlaybackQueueModel gives info about certain queue-only information associated with a track. An example of this is whether a track is part of a tracked playlist or if a manual user interaction locked the track at it's current place.
0009 
0010 Playback history is not part of the PlaybackQueue. It has to be implemented separately using a PlaybackObserver.
0011 
0012 Old Playlist Queue Manager Behavior
0013 -----------------------------------
0014 Select in order and press Ctrl+U to move those tracks in selection order to the top of the queue.