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;
}