/// <summary> /// Gets the font family from the user settings Font /// </summary> /// <param name="fontFamily">the font family</param> /// <returns>the Windows font family</returns> private Media.FontFamily GetFontFamily(Microsoft.PlayerFramework.CaptionSettings.Model.FontFamily fontFamily) { if (this.fontMap == null) { this.fontMap = new Dictionary <Microsoft.PlayerFramework.CaptionSettings.Model.FontFamily, Media.FontFamily>(); } Media.FontFamily mediaFontFamily; if (this.fontMap.TryGetValue(fontFamily, out mediaFontFamily)) { return(mediaFontFamily); } var fontName = CaptionSettingsPluginBase.GetFontFamilyName(fontFamily); if (fontName == null) { return(null); } mediaFontFamily = new Media.FontFamily(fontName); this.fontMap[fontFamily] = mediaFontFamily; return(mediaFontFamily); }
/// <summary> /// convert from a Caption Settings font family to the equivalent /// Windows installed font /// </summary> /// <param name="value">a Model.FontFamily</param> /// <param name="targetType">a Windows FontFamily</param> /// <param name="parameter">parameter not used</param> /// <param name="language">language not used</param> /// <returns>a <see cref="Windows.UI.Xaml.Media.FontFamily"/></returns> public object Convert(object value, Type targetType, object parameter, string language) { if (this.fontMap == null) { this.fontMap = new Dictionary <Model.FontFamily, FF.FontFamily>(); } var captionFontFamily = (Model.FontFamily)value; if (captionFontFamily == Model.FontFamily.Default) { return(DependencyProperty.UnsetValue); } // Setting font disables small caps if (captionFontFamily == Model.FontFamily.Smallcaps) { return(DependencyProperty.UnsetValue); } FF.FontFamily fontFamily; lock (this.fontMap) { if (this.fontMap.TryGetValue(captionFontFamily, out fontFamily)) { return(fontFamily); } var familyName = CaptionSettingsPluginBase.GetFontFamilyName(captionFontFamily); if (string.IsNullOrWhiteSpace(familyName)) { return(DependencyProperty.UnsetValue); } fontFamily = new FF.FontFamily(familyName); this.fontMap[captionFontFamily] = fontFamily; return(fontFamily); } }