private void OnPlayerEnginePlayWhenIdleRequest (object o, EventArgs args)
{
ITrackModelSource next_source = NextSource;
if (next_source != null && next_source.TrackModel.Selection.Count > 0) {
Source = NextSource;
CancelErrorTransition ();
CurrentTrack = next_source.TrackModel[next_source.TrackModel.Selection.FirstIndex];
QueuePlayTrack ();
} else {
Next ();
}
}