/// <inheritdoc/> public override int GetHashCode() { return(Lines.GetHashCode() ^ (Shadow.GetHashCode() + 16) ^ ShadowColor.GetHashCode() ^ (ShadowWidth.GetHashCode() + 32) ^ (LeftLine.GetHashCode() << 1) ^ (TopLine.GetHashCode() << 2) ^ (RightLine.GetHashCode() << 3) ^ (BottomLine.GetHashCode() << 4)); }
public string ToRawAss(string styleFormat = DefaultAssStyleFormat) { var sb = new StringBuilder(); sb.Append("Style: "); var format = styleFormat.ToLowerInvariant().Substring(8).Split(','); for (int i = 0; i < format.Length; i++) { string f = format[i].Trim(); if (f == "name") { sb.Append(Name); } else if (f == "fontname") { sb.Append(FontName); } else if (f == "fontsize") { sb.Append(FontSize.ToString(CultureInfo.InvariantCulture)); } else if (f == "primarycolour") { sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Primary)); } else if (f == "secondarycolour") { sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Secondary)); } else if (f == "outlinecolour") { sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Outline)); } else if (f == "backcolour") { sb.Append(AdvancedSubStationAlpha.GetSsaColorString(Background)); } else if (f == "bold") { sb.Append(BoolToRawSsa(Bold)); } else if (f == "italic") { sb.Append(BoolToRawSsa(Italic)); } else if (f == "underline") { sb.Append(BoolToRawSsa(Underline)); } else if (f == "strikeout") { sb.Append(BoolToRawSsa(Strikeout)); } else if (f == "outline") { sb.Append(OutlineWidth.ToString(CultureInfo.InvariantCulture)); } else if (f == "shadow") { sb.Append(ShadowWidth.ToString(CultureInfo.InvariantCulture)); } else if (f == "alignment") { sb.Append(Alignment); } else if (f == "marginl") { sb.Append(MarginLeft); } else if (f == "marginr") { sb.Append(MarginRight); } else if (f == "marginv") { sb.Append(MarginVertical); } else if (f == "borderstyle") { sb.Append(BorderStyle); } else if (f == "encoding") { sb.Append('1'); } else if (f == "strikeout") { sb.Append('0'); } else if (f == "scalex") { sb.Append(ScaleX.ToString(CultureInfo.InvariantCulture)); } else if (f == "scaley") { sb.Append(ScaleY.ToString(CultureInfo.InvariantCulture)); } else if (f == "spacing") { sb.Append(Spacing.ToString(CultureInfo.InvariantCulture)); } else if (f == "angle") { sb.Append(Angle.ToString(CultureInfo.InvariantCulture)); } sb.Append(','); } var s = sb.ToString().Trim(); return(s.Substring(0, s.Length - 1)); }