AlphaTab.Importer.AlphaTexImporter.MetaData C# (CSharp) Method

MetaData() private method

private MetaData ( ) : void
return void
        private void MetaData()
        {
            var anyMeta = false;
            while (_sy == AlphaTexSymbols.MetaCommand)
            {
                var syData = _syData.ToString().ToLower();
                if (syData == "title")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.String)
                    {
                        _score.Title = _syData.ToString();
                    }
                    else
                    {
                        Error("title", AlphaTexSymbols.String);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "subtitle")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.String)
                    {
                        _score.SubTitle = _syData.ToString();
                    }
                    else
                    {
                        Error("subtitle", AlphaTexSymbols.String);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "artist")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.String)
                    {
                        _score.Artist = _syData.ToString();
                    }
                    else
                    {
                        Error("artist", AlphaTexSymbols.String);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "album")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.String)
                    {
                        _score.Album = _syData.ToString();
                    }
                    else
                    {
                        Error("album", AlphaTexSymbols.String);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "words")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.String)
                    {
                        _score.Words = _syData.ToString();
                    }
                    else
                    {
                        Error("words", AlphaTexSymbols.String);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "music")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.String)
                    {
                        _score.Music = _syData.ToString();
                    }
                    else
                    {
                        Error("music", AlphaTexSymbols.String);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "copyright")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.String)
                    {
                        _score.Copyright = _syData.ToString();
                    }
                    else
                    {
                        Error("copyright", AlphaTexSymbols.String);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "tempo")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.Number)
                    {
                        _score.Tempo = (int)_syData;
                    }
                    else
                    {
                        Error("tempo", AlphaTexSymbols.Number);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "capo")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.Number)
                    {
                        _track.Capo = (int)_syData;
                    }
                    else
                    {
                        Error("capo", AlphaTexSymbols.Number);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if (syData == "tuning")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.Tuning) // we require at least one tuning
                    {
                        var tuning = new FastList<int>();
                        do
                        {
                            tuning.Add(ParseTuning(_syData.ToString().ToLower()));
                            NewSy();
                        } while (_sy == AlphaTexSymbols.Tuning);
                        _track.Tuning = tuning.ToArray();
                    }
                    else
                    {
                        Error("tuning", AlphaTexSymbols.Tuning);
                    }
                    anyMeta = true;
                }
                else if (syData == "instrument")
                {
                    NewSy();
                    if (_sy == AlphaTexSymbols.Number)
                    {
                        var instrument = (int)(_syData);
                        if (instrument >= 0 && instrument <= 128)
                        {
                            _track.PlaybackInfo.Program = (int)_syData;
                        }
                        else
                        {
                            Error("instrument", AlphaTexSymbols.Number, false);
                        }
                    }
                    else if (_sy == AlphaTexSymbols.String) // Name
                    {
                        var instrumentName = _syData.ToString().ToLower();
                        _track.PlaybackInfo.Program = GeneralMidi.GetValue(instrumentName);
                    }
                    else
                    {
                        Error("instrument", AlphaTexSymbols.Number);
                    }
                    NewSy();
                    anyMeta = true;
                }
                else if(anyMeta)
                {
                    Error("metaDataTags", AlphaTexSymbols.String, false);
                }
                else
                {
                    // fall forward to bar meta if unknown score meta was found
                    break;
                }
            }

            if (anyMeta)
            {
                if (_sy != AlphaTexSymbols.Dot)
                {
                    Error("song", AlphaTexSymbols.Dot);
                }
                NewSy();
            }
            else if (_sy == AlphaTexSymbols.Dot)
            {
                NewSy();
            }
        }