private void SelectAndLoadScannedLineup(Lineup lineup)
        {
            scanned_lineup_ = lineup;
            Channel[] channels      = scanned_lineup_.GetChannels();
            int       channel_count = channels.Length;

            scanned_channels_ = new List <Channel>();
            scanned_channels_.AddRange(channels.Distinct());
            SortScannedChannels();
            ScannedLineupGridView.RowCount = scanned_channels_.Count;
            ScannedLineupGridView.Invalidate();
        }
        private void ScannedLineupGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            Comparison <Channel> old_sort = current_scanned_sort_;
            Comparison <Channel> new_sort = null;
            ScannedGridColumn    column   = ScannedColumnToEnum(e.ColumnIndex);

            switch (column)
            {
            case ScannedGridColumn.Number:
                new_sort = CompareChannelNumbers;
                break;

            case ScannedGridColumn.Listing:
                new_sort = CompareListing;
                break;

            case ScannedGridColumn.Type:
                new_sort = CompareChannelType;
                break;

            case ScannedGridColumn.TunerCount:
                new_sort = CompareTunerCount;
                break;

            case ScannedGridColumn.Encrypted:
                new_sort = CompareScannedEncrypted;
                break;

            case ScannedGridColumn.TuningParams:
                new_sort = CompareTuningParams;
                break;

            case ScannedGridColumn.Callsign:
                new_sort = CompareCallsigns;
                break;
            }
            if (new_sort == null)
            {
                return;
            }
            reverse_scanned_sort_ = (new_sort == old_sort) && !reverse_scanned_sort_;
            current_scanned_sort_ = new_sort;
            SortScannedChannels();
            ScannedLineupGridView.Invalidate();
        }