public static int GetSoloData1_G5(GuitarDifficulty difficulty)
 {
     if (difficulty.IsUnknown() || difficulty.IsAll() || difficulty.IsExpert())
     {
         return(ExpertSoloData1_G5);
     }
     if (difficulty.IsHard())
     {
         return(HardSoloData1_G5);
     }
     else if (difficulty.IsMedium())
     {
         return(MediumSoloData1_G5);
     }
     else if (difficulty.IsEasy())
     {
         return(EasySoloData1_G5);
     }
     return(ExpertSoloData1_G5);
 }
 public static int GetSoloData1_G5(GuitarDifficulty difficulty)
 {
     if (difficulty.IsUnknown() || difficulty.IsAll() || difficulty.IsExpert())
         return ExpertSoloData1_G5;
     if (difficulty.IsHard())
         return HardSoloData1_G5;
     else if (difficulty.IsMedium())
         return MediumSoloData1_G5;
     else if (difficulty.IsEasy())
         return EasySoloData1_G5;
     return ExpertSoloData1_G5;
 }
        public static int GetModifierData1ForDifficulty(
            int sourceData1,
            GuitarDifficulty sourceDifficulty,
            GuitarDifficulty targetDifficulty)
        {
            if (targetDifficulty.IsUnknown())
                targetDifficulty = sourceDifficulty;

            if (AllHammeronData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return ExpertHammeronData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return HardHammeronData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Medium)
                {
                    return MediumHammeronData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Easy)
                {
                    return EasyHammeronData1;
                }
                else
                {
                    return Int32.MinValue;
                }
            }
            else if (AllSlideData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return ExpertSlideData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return HardSlideData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Medium)
                {
                    return MediumSlideData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Easy)
                {
                    return EasySlideData1;
                }
                else
                {
                    return Int32.MinValue;
                }
            }
            else if (AllArpeggioData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return ExpertArpeggioData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return HardArpeggioData1;
                }
                else
                {
                    return Int32.MinValue;
                }
            }
            else if (AllStrumData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return ExpertStrumData1;
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return HardStrumData1;
                }
                else
                {
                    return Int32.MinValue;
                }
            }

            else
            {
                return Int32.MinValue;
            }
        }
        public static int GetModifierData1ForDifficulty(
            int sourceData1,
            GuitarDifficulty sourceDifficulty,
            GuitarDifficulty targetDifficulty)
        {
            if (targetDifficulty.IsUnknown())
            {
                targetDifficulty = sourceDifficulty;
            }

            if (AllHammeronData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return(ExpertHammeronData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return(HardHammeronData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Medium)
                {
                    return(MediumHammeronData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Easy)
                {
                    return(EasyHammeronData1);
                }
                else
                {
                    return(Int32.MinValue);
                }
            }
            else if (AllSlideData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return(ExpertSlideData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return(HardSlideData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Medium)
                {
                    return(MediumSlideData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Easy)
                {
                    return(EasySlideData1);
                }
                else
                {
                    return(Int32.MinValue);
                }
            }
            else if (AllArpeggioData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return(ExpertArpeggioData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return(HardArpeggioData1);
                }
                else
                {
                    return(Int32.MinValue);
                }
            }
            else if (AllStrumData1.Contains(sourceData1))
            {
                if (targetDifficulty == GuitarDifficulty.Expert)
                {
                    return(ExpertStrumData1);
                }
                else if (targetDifficulty == GuitarDifficulty.Hard)
                {
                    return(HardStrumData1);
                }
                else
                {
                    return(Int32.MinValue);
                }
            }

            else
            {
                return(Int32.MinValue);
            }
        }
        public bool SetTrack(Track track, GuitarDifficulty difficulty = GuitarDifficulty.Unknown)
        {
            var ret = false;
            if (difficulty.IsUnknown())
                difficulty = this.CurrentDifficulty;

            if (track.IsFileTypePro())
            {
                ret = SetTrack6(track, difficulty);
            }
            else
            {
                ret = SetTrack5(track, difficulty);
            }
            return ret;
        }
 public bool SetTrack(string name, GuitarDifficulty difficulty = GuitarDifficulty.Unknown)
 {
     var ret = false;
     if (difficulty.IsUnknown())
         difficulty = this.CurrentDifficulty;
     var track = GetTrack(name);
     if (track != null)
     {
         ret = SetTrack(track, difficulty);
     }
     return ret;
 }