Inititalize member pointer m_track to NULL in constructor.
memset to 0 the sp_config struct to avoid bogus behavior from libspotify.
Work to make spotify element loading more robust. Added multiple debug statements for tracing. Spotify framework is lagging constantly, incresingly.
Adding ticking storage for pending elements like playlists and tracks.
Deferred insertion of elements into cache. Shared_ptr SEGFAULTS now...
Bad for loop corrected.
The ticking store was just overkill, going back to old model. Will have to battle the poor libspotify documentation relevant to callbacks and loading.
Finally playlists loading reliably after fixing the boost::shared_ptr<XplodifyPlaylist> mess. Deferred loading was killing us, driving shared_ptrs out of scope.
Track loading now deferred when loading in case metadata ain't ready. However destructor still getting called unexpectedly.
Track loading much better now, keeping reference count for shared_ptr kosher in playlist_metadata_updated. I still see some XplodifyTracks unexpectedly being destroyed, just a few now.
temporary directory takes spotifyd-PID form.
XplodifyHandler handles the temporary directory structure. Defining get_tmpdir method to retrieve location.
Adding a refresh button to client.
Now creating tmp dir from argument retrieved from XplodifyHandler.
Playback finally working. Was not returning number of consumed frames in playback. Might have memory leak, verify that.
Memleak fix in audio subsystem. We can free afd when it's time is due.
Implementing play modes. Random, linear a WIP. Added some supporting methods to ease the pain. ;-)
Working on the linear playmode, next track now selected correctly, but fails to start playback after. Added iterators to XplodifyPlaylist to keep track of current track loaded.
Continuous playback now working. Buffer underrun's unresolved though. Moved some debug statements.

We can probably get rid of playback_done within the handler, not really doing anything.
Response to underruns lacking severely, possible deadlock(?) - basically the queue never
get the new samples.
Adding a mechanism to reset the FIFO, this helps us recover from underruns,
recover from pausing, etc...

Now we have to detect the underruns on the fly...