MediaPortal.Player.Subtitles.SubtitleSelector.CheckForPreferedLanguage C# (CSharp) Method

CheckForPreferedLanguage() private method

Attempts to auto choose a subtitle option based on the prefered languages
private CheckForPreferedLanguage ( ) : SubtitleOption
return SubtitleOption
    private SubtitleOption CheckForPreferedLanguage()
    {
      Log.Debug("SubtitleSelector: CheckForPreferedLanguage");
      List<SubtitleOption> options = CollectOptions();
      Log.Debug("Has {0} options", options.Count);

      SubtitleOption prefered = null;
      int priority = int.MaxValue;
      int prefOptIndex = -1;
      int prefPage = 0;
      try
      {
        using (MPSettings xmlreader = new MPSettings())
        {
          // get the currently found active subtitle page set by TeletextReceiver
          string defSub = xmlreader.GetValueAsString("tvservice", "dvbdefttxtsubtitles", "999;999");
          prefPage = Convert.ToInt16(defSub.Split(';')[0]);
        }
      }
      catch { }
      for (int optIndex = 1; optIndex < options.Count; optIndex++)
      {
        SubtitleOption opt = options[optIndex];
        int index = preferedLanguages.IndexOf(opt.language);
        Log.Debug(opt + " Pref index " + index);

        bool pref = false;
        if (opt.type == SubtitleType.Bitmap)
        {
          if (index >= 0 && index < priority) pref = true;
        }
        else
        {
          if (prefPage == opt.entry.page) pref = true;
        }
        if (pref)
        {
          Log.Debug("Setting as pref");
          prefered = opt;
          priority = index;
          prefOptIndex = optIndex;
        }
      }
      return prefered;
    }