Separate the metadata gathering so it can be called for any track
Added the return type of all methods
Added methods to control the play mode
Only parse meta data if it is available
The fix from 8a0a3a43f1aebdc37401b3333316a30e16fa18c6 was lost as part of 0d72187c19b2fbdc0c29d750128a85ff86f2b4ff
Added a method to get the queue contents