private void SetAsPlaybackSourceUnlessPlaying ()
{
if (current_track != null && ServiceManager.PlaybackController.Source != this) {
bool set_source = !ServiceManager.PlayerEngine.IsPlaying ();
if (!set_source) {
long view_order = ServiceManager.DbConnection.Query<long> (@"
SELECT ViewOrder
FROM CorePlaylistEntries
WHERE PlaylistID = ? AND EntryID = ?",
DbId, Convert.ToInt64 (current_track.CacheEntryId));
long nongenerated = ServiceManager.DbConnection.Query<long> (@"
SELECT COUNT(*)
FROM CorePlaylistEntries
WHERE PlaylistID = ? AND ViewOrder >= ? AND Generated = 0",
DbId, view_order);
set_source = nongenerated > 0;
}
if (set_source) {
PriorSource = ServiceManager.PlaybackController.Source;
ServiceManager.PlaybackController.NextSource = this;
}
}
}