Banshee.PlayQueue.PlayQueueSource.IterateTrackModelUntilEndMatch C# (CSharp) Method

IterateTrackModelUntilEndMatch() private method

private IterateTrackModelUntilEndMatch ( long &viewOrder, bool checkAlbum ) : void
viewOrder long
checkAlbum bool
return void
        private void IterateTrackModelUntilEndMatch (out long viewOrder, bool checkAlbum)
        {
            var t = TrackModel;
            bool in_match = false;
            long current_view_order = CurrentTrackViewOrder;
            int index = Math.Max (0, TrackModel.IndexOf (current_track));

            string current_album = ServiceManager.PlayerEngine.CurrentTrack.AlbumTitle;
            string current_artist = ServiceManager.PlayerEngine.CurrentTrack.AlbumArtist;

            // view order will point to the last track that has the same album and artist of the
            // currently playing track.
            viewOrder = current_view_order;
            for (int i = index; i < t.Count; i++) {
                var track = t[i];
                if (current_artist == track.AlbumArtist && (!checkAlbum || current_album == track.AlbumTitle)) {
                    in_match = true;
                    viewOrder++;
                } else if (!in_match) {
                    continue;
                } else {
                    viewOrder--;
                    break;
                }
            }
        }