private int CompareInternal(AudioProfilerGroupInfoWrapper a, AudioProfilerGroupInfoWrapper b, AudioProfilerGroupInfoHelper.ColumnIndices key)
            {
                int num = 0;

                switch (key)
                {
                case AudioProfilerGroupInfoHelper.ColumnIndices.ObjectName:
                    num = a.objectName.CompareTo(b.objectName);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.AssetName:
                    num = a.assetName.CompareTo(b.assetName);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Volume:
                    num = a.info.volume.CompareTo(b.info.volume);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Audibility:
                    num = a.info.audibility.CompareTo(b.info.audibility);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.PlayCount:
                    num = a.info.playCount.CompareTo(b.info.playCount);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Is3D:
                {
                    int introduced15 = (a.info.flags & 1).CompareTo((int)(b.info.flags & 1));
                    int num3         = a.info.flags & 2;
                    num = introduced15 + (num3.CompareTo((int)(b.info.flags & 2)) * 2);
                    break;
                }

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsPaused:
                    num = (a.info.flags & 4).CompareTo((int)(b.info.flags & 4));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsMuted:
                    num = (a.info.flags & 8).CompareTo((int)(b.info.flags & 8));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsVirtual:
                    num = (a.info.flags & 0x10).CompareTo((int)(b.info.flags & 0x10));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOneShot:
                    num = (a.info.flags & 0x20).CompareTo((int)(b.info.flags & 0x20));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsLooped:
                    num = (a.info.flags & 0x200).CompareTo((int)(b.info.flags & 0x200));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.DistanceToListener:
                    num = a.info.distanceToListener.CompareTo(b.info.distanceToListener);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.MinDist:
                    num = a.info.minDist.CompareTo(b.info.minDist);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.MaxDist:
                    num = a.info.maxDist.CompareTo(b.info.maxDist);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Time:
                    num = a.info.time.CompareTo(b.info.time);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Duration:
                    num = a.info.duration.CompareTo(b.info.duration);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Frequency:
                    num = a.info.frequency.CompareTo(b.info.frequency);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsStream:
                    num = (a.info.flags & 0x80).CompareTo((int)(b.info.flags & 0x80));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsCompressed:
                    num = (a.info.flags & 0x100).CompareTo((int)(b.info.flags & 0x100));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsNonBlocking:
                    num = (a.info.flags & 0x2000).CompareTo((int)(b.info.flags & 0x2000));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenUser:
                    num = (a.info.flags & 0x1000).CompareTo((int)(b.info.flags & 0x1000));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenMemory:
                    num = (a.info.flags & 0x400).CompareTo((int)(b.info.flags & 0x400));
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenMemoryPoint:
                    num = (a.info.flags & 0x800).CompareTo((int)(b.info.flags & 0x800));
                    break;
                }
                return(!this.sortByDescendingOrder ? num : -num);
            }
            private int CompareInternal(AudioProfilerGroupInfoWrapper a, AudioProfilerGroupInfoWrapper b, AudioProfilerGroupInfoHelper.ColumnIndices key)
            {
                int num = 0;

                switch (key)
                {
                case AudioProfilerGroupInfoHelper.ColumnIndices.ObjectName:
                    num = a.objectName.CompareTo(b.objectName);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.AssetName:
                    num = a.assetName.CompareTo(b.assetName);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Volume:
                    num = a.info.volume.CompareTo(b.info.volume);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Audibility:
                    num = a.info.audibility.CompareTo(b.info.audibility);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.PlayCount:
                    num = a.info.playCount.CompareTo(b.info.playCount);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Is3D:
                    num = (a.info.flags & 1).CompareTo(b.info.flags & 1) + (a.info.flags & 2).CompareTo(b.info.flags & 2) * 2;
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsPaused:
                    num = (a.info.flags & 4).CompareTo(b.info.flags & 4);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsMuted:
                    num = (a.info.flags & 8).CompareTo(b.info.flags & 8);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsVirtual:
                    num = (a.info.flags & 16).CompareTo(b.info.flags & 16);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOneShot:
                    num = (a.info.flags & 32).CompareTo(b.info.flags & 32);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsLooped:
                    num = (a.info.flags & 512).CompareTo(b.info.flags & 512);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.DistanceToListener:
                    num = a.info.distanceToListener.CompareTo(b.info.distanceToListener);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.MinDist:
                    num = a.info.minDist.CompareTo(b.info.minDist);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.MaxDist:
                    num = a.info.maxDist.CompareTo(b.info.maxDist);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Time:
                    num = a.info.time.CompareTo(b.info.time);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Duration:
                    num = a.info.duration.CompareTo(b.info.duration);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.Frequency:
                    num = a.info.frequency.CompareTo(b.info.frequency);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsStream:
                    num = (a.info.flags & 128).CompareTo(b.info.flags & 128);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsCompressed:
                    num = (a.info.flags & 256).CompareTo(b.info.flags & 256);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsNonBlocking:
                    num = (a.info.flags & 8192).CompareTo(b.info.flags & 8192);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenUser:
                    num = (a.info.flags & 4096).CompareTo(b.info.flags & 4096);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenMemory:
                    num = (a.info.flags & 1024).CompareTo(b.info.flags & 1024);
                    break;

                case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenMemoryPoint:
                    num = (a.info.flags & 2048).CompareTo(b.info.flags & 2048);
                    break;
                }
                return((!this.sortByDescendingOrder) ? num : (-num));
            }
 public AudioProfilerGroupInfoComparer(AudioProfilerGroupInfoHelper.ColumnIndices primarySortKey, AudioProfilerGroupInfoHelper.ColumnIndices secondarySortKey, bool sortByDescendingOrder)
 {
     this.primarySortKey        = primarySortKey;
     this.secondarySortKey      = secondarySortKey;
     this.sortByDescendingOrder = sortByDescendingOrder;
 }
        public static string GetColumnString(AudioProfilerGroupInfoWrapper info, AudioProfilerGroupInfoHelper.ColumnIndices index)
        {
            bool   flag  = (info.info.flags & 1) != 0;
            bool   flag2 = (info.info.flags & 64) != 0;
            string result;

            switch (index)
            {
            case AudioProfilerGroupInfoHelper.ColumnIndices.ObjectName:
                result = info.objectName;
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.AssetName:
                result = info.assetName;
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.Volume:
                result = AudioProfilerGroupInfoHelper.FormatDb(info.info.volume);
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.Audibility:
                result = ((!flag2) ? AudioProfilerGroupInfoHelper.FormatDb(info.info.audibility) : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.PlayCount:
                result = ((!flag2) ? info.info.playCount.ToString() : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.Is3D:
                result = ((!flag2) ? ((!flag) ? "NO" : (((info.info.flags & 2) == 0) ? "YES" : "Spatial")) : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsPaused:
                result = ((!flag2) ? (((info.info.flags & 4) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsMuted:
                result = ((!flag2) ? (((info.info.flags & 8) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsVirtual:
                result = ((!flag2) ? (((info.info.flags & 16) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsOneShot:
                result = ((!flag2) ? (((info.info.flags & 32) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsLooped:
                result = ((!flag2) ? (((info.info.flags & 512) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.DistanceToListener:
                result = ((!flag2) ? (flag ? ((info.info.distanceToListener < 1000f) ? string.Format("{0:0.00} m", info.info.distanceToListener) : string.Format("{0:0.00} km", info.info.distanceToListener * 0.001f)) : "N/A") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.MinDist:
                result = ((!flag2) ? (flag ? ((info.info.minDist < 1000f) ? string.Format("{0:0.00} m", info.info.minDist) : string.Format("{0:0.00} km", info.info.minDist * 0.001f)) : "N/A") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.MaxDist:
                result = ((!flag2) ? (flag ? ((info.info.maxDist < 1000f) ? string.Format("{0:0.00} m", info.info.maxDist) : string.Format("{0:0.00} km", info.info.maxDist * 0.001f)) : "N/A") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.Time:
                result = ((!flag2) ? string.Format("{0:0.00} s", info.info.time) : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.Duration:
                result = ((!flag2) ? string.Format("{0:0.00} s", info.info.duration) : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.Frequency:
                result = ((!flag2) ? ((info.info.frequency < 1000f) ? string.Format("{0:0.00} Hz", info.info.frequency) : string.Format("{0:0.00} kHz", info.info.frequency * 0.001f)) : string.Format("{0:0.00} x", info.info.frequency));
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsStream:
                result = ((!flag2) ? (((info.info.flags & 128) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsCompressed:
                result = ((!flag2) ? (((info.info.flags & 256) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsNonBlocking:
                result = ((!flag2) ? (((info.info.flags & 8192) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenUser:
                result = ((!flag2) ? (((info.info.flags & 4096) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenMemory:
                result = ((!flag2) ? (((info.info.flags & 1024) == 0) ? "NO" : "YES") : "");
                break;

            case AudioProfilerGroupInfoHelper.ColumnIndices.IsOpenMemoryPoint:
                result = ((!flag2) ? (((info.info.flags & 2048) == 0) ? "NO" : "YES") : "");
                break;

            default:
                result = "Unknown";
                break;
            }
            return(result);
        }