public static IEnumerable <int> GetStringsForDifficulty5(GuitarDifficulty diff)
        {
            var ret = new List <int>();

            if (diff.HasFlag(GuitarDifficulty.Easy))
            {
                ret.AddRange(EasyData1StringsG5);
            }
            if (diff.HasFlag(GuitarDifficulty.Medium))
            {
                ret.AddRange(MediumData1StringsG5);
            }
            if (diff.HasFlag(GuitarDifficulty.Hard))
            {
                ret.AddRange(HardData1StringsG5);
            }
            if (diff.HasFlag(GuitarDifficulty.Expert))
            {
                ret.AddRange(ExpertData1StringsG5);
            }
            return(ret);
        }
 public static IEnumerable<int> GetStringsForDifficulty6(GuitarDifficulty diff)
 {
     var ret = new List<int>();
     if (diff.HasFlag(GuitarDifficulty.Easy))
     {
         ret.AddRange(EasyData1Strings);
     }
     if (diff.HasFlag(GuitarDifficulty.Medium))
     {
         ret.AddRange(MediumData1Strings);
     }
     if (diff.HasFlag(GuitarDifficulty.Hard))
     {
         ret.AddRange(HardData1Strings);
     }
     if (diff.HasFlag(GuitarDifficulty.Expert))
     {
         ret.AddRange(ExpertData1Strings);
     }
     return ret;
 }
        public IEnumerable <GuitarMessage> GetByDifficulty(GuitarDifficulty diff)
        {
            var ret = new List <GuitarMessage>();

            foreach (var messageType in GetAllMessageTypes())
            {
                switch (messageType)
                {
                case GuitarMessageType.GuitarHandPosition:
                    ret.AddRange(HandPositions.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarChordName:
                    ret.AddRange(ChordNames.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarTextEvent:
                    ret.AddRange(TextEvents.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarTrainer:
                    ret.AddRange(Trainers.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarChordStrum:
                    ret.AddRange(ChordStrums.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarChord:
                    ret.AddRange(Chords.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarNote:
                    ret.AddRange(Notes.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarPowerup:
                    ret.AddRange(Powerups.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarSolo:
                    ret.AddRange(Solos.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarTempo:
                    ret.AddRange(Tempos.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarTimeSignature:
                    ret.AddRange(TimeSignatures.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarArpeggio:
                    ret.AddRange(Arpeggios.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarBigRockEnding:
                    ret.AddRange(BigRockEndings.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarBigRockEndingSubMessage:

                    break;

                case GuitarMessageType.GuitarSingleStringTremelo:
                    ret.AddRange(SingleStringTremelos.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarMultiStringTremelo:
                    ret.AddRange(MultiStringTremelos.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarSlide:
                    ret.AddRange(Slides.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                case GuitarMessageType.GuitarHammeron:
                    ret.AddRange(Hammerons.Where(x => diff.HasFlag(x.Difficulty)));
                    break;

                default:
                    ("unknown message: " + messageType).OutputDebug();
                    break;
                }
            }

            return(ret);
        }