diff --git a/Aaru.Decoders/DVD/CSS&CPRM.cs b/Aaru.Decoders/DVD/CSS&CPRM.cs index 6521d8a5a..6b9f24ecf 100644 --- a/Aaru.Decoders/DVD/CSS&CPRM.cs +++ b/Aaru.Decoders/DVD/CSS&CPRM.cs @@ -103,43 +103,47 @@ public static class CSS_CPRM int userControlledChanges = decoded.TypeCode_VendorResetsAvailable_UserControlledChangesAvailable & 0x7; + sb.AppendLine($"[bold][blue]{Localization.Regional_Playback_Control_State}[/][/]"); + switch(typeCode) { case TypeCode.None: - sb.AppendLine(Localization.No_drive_region_setting); + sb.AppendLine($"\t[slateblue1]{Localization.No_drive_region_setting}[/]"); break; case TypeCode.Set: - sb.AppendLine(Localization.Drive_region_is_set); + sb.AppendLine($"\t[slateblue1]{Localization.Drive_region_is_set}[/]"); break; case TypeCode.LastChance: - sb.AppendLine(Localization.Drive_region_is_set_with_additional_restrictions_required_to_make_a_change); + sb.AppendLine($"\t[slateblue1]{Localization.Drive_region_is_set_with_additional_restrictions_required_to_make_a_change}[/]"); break; case TypeCode.Perm: - sb.AppendLine(Localization - .Drive_region_has_been_set_permanently_but_may_be_reset_by_the_vendor_if_necessary); + sb.AppendLine($"\t[slateblue1]{Localization.Drive_region_has_been_set_permanently_but_may_be_reset_by_the_vendor_if_necessary}[/]"); break; } - sb.AppendLine(string.Format(Localization.Drive_has_0_vendor_resets_available, vendorResets)); - sb.AppendLine(string.Format(Localization.Drive_has_0_user_controlled_changes_available, userControlledChanges)); + sb.AppendLine(string.Format($"\t[slateblue1]{Localization.Drive_has_0_vendor_resets_available}[/]", + $"[teal]{vendorResets}[/]")); + + sb.AppendLine(string.Format($"\t[slateblue1]{Localization.Drive_has_0_user_controlled_changes_available}[/]", + $"[teal]{userControlledChanges}[/]")); switch(decoded.RegionMask) { case 0xFF: - sb.AppendLine(Localization.Drive_has_no_region_set); + sb.AppendLine($"\t[slateblue1]{Localization.Drive_has_no_region_set}[/]"); break; case 0x00: - sb.AppendLine(Localization.Drive_is_region_free); + sb.AppendLine($"\t[slateblue1]{Localization.Drive_is_region_free}[/]"); break; default: { - sb.Append(Localization.Drive_has_the_following_regions_set); + sb.Append($"\t[slateblue1]{Localization.Drive_has_the_following_regions_set}[/][teal]"); if((decoded.RegionMask & 0x01) != 0x01) sb.Append(" 1"); @@ -161,21 +165,20 @@ public static class CSS_CPRM } } - sb.AppendLine(""); + sb.AppendLine("[/]"); switch(decoded.RPCScheme) { case 0x00: - sb.AppendLine(Localization.The_Logical_Unit_does_not_enforce_Region_Playback_Controls_RPC); + sb.AppendLine($"\t[slateblue1]{Localization.The_Logical_Unit_does_not_enforce_Region_Playback_Controls_RPC}[/]"); break; case 0x01: - sb.AppendLine(Localization - .The_Logical_Unit_shall_adhere_to_the_specification_and_all_requirements_of_the_CSS_license_agreement_concerning_RPC); + sb.AppendLine($"\t[slateblue1]{Localization.The_Logical_Unit_shall_adhere_to_the_specification_and_all_requirements_of_the_CSS_license_agreement_concerning_RPC}[/]"); break; default: - sb.AppendLine(Localization.The_Logical_Unit_uses_an_unknown_region_enforcement_scheme); + sb.AppendLine($"\t[slateblue1]{Localization.The_Logical_Unit_uses_an_unknown_region_enforcement_scheme}[/]"); break; } @@ -193,27 +196,29 @@ public static class CSS_CPRM LeadInCopyright decoded = cmi.Value; var sb = new StringBuilder(); + sb.AppendLine($"[bold][blue]{Localization.Lead_In_Copyright_Information}[/][/]"); + switch(decoded.CopyrightType) { case CopyrightType.NoProtection: - sb.AppendLine(Localization.Disc_has_no_encryption); + sb.AppendLine($"\t[slateblue1]{Localization.Disc_has_no_encryption}[/]"); break; case CopyrightType.CSS: - sb.AppendLine(Localization.Disc_is_encrypted_using_CSS_or_CPPM); + sb.AppendLine($"\t[slateblue1]{Localization.Disc_is_encrypted_using_CSS_or_CPPM}[/]"); break; case CopyrightType.CPRM: - sb.AppendLine(Localization.Disc_is_encrypted_using_CPRM); + sb.AppendLine($"\t[slateblue1]{Localization.Disc_is_encrypted_using_CPRM}[/]"); break; case CopyrightType.AACS: - sb.AppendLine(Localization.Disc_is_encrypted_using_AACS); + sb.AppendLine($"\t[slateblue1]{Localization.Disc_is_encrypted_using_AACS}[/]"); break; default: - sb.AppendFormat(Localization.Disc_is_encrypted_using_unknown_algorithm_with_ID_0, - decoded.CopyrightType); + sb.AppendFormat($"\t[slateblue1]{Localization.Disc_is_encrypted_using_unknown_algorithm_with_ID_0}[/]", + $"[teal]{decoded.CopyrightType}[/]"); break; } @@ -223,16 +228,16 @@ public static class CSS_CPRM switch(decoded.RegionInformation) { case 0xFF: - sb.AppendLine(Localization.Disc_cannot_be_played_in_any_region_at_all); + sb.AppendLine($"\t[slateblue1]{Localization.Disc_cannot_be_played_in_any_region_at_all}[/]"); break; case 0x00: - sb.AppendLine(Localization.Disc_can_be_played_in_any_region); + sb.AppendLine($"\t[slateblue1]{Localization.Disc_can_be_played_in_any_region}[/]"); break; default: { - sb.Append(Localization.Disc_can_be_played_in_the_following_regions); + sb.Append($"\t[slateblue1]{Localization.Disc_can_be_played_in_the_following_regions}[/][teal]"); if((decoded.RegionInformation & 0x01) != 0x01) sb.Append(" 1"); @@ -250,6 +255,8 @@ public static class CSS_CPRM if((decoded.RegionInformation & 0x80) != 0x80) sb.Append(" 8"); + sb.AppendLine("[/]"); + break; } } diff --git a/Aaru.Decoders/Localization/Localization.Designer.cs b/Aaru.Decoders/Localization/Localization.Designer.cs index 0f24fd3b2..ce39bc1b7 100644 --- a/Aaru.Decoders/Localization/Localization.Designer.cs +++ b/Aaru.Decoders/Localization/Localization.Designer.cs @@ -19459,5 +19459,17 @@ namespace Aaru.Decoders { return ResourceManager.GetString("Low_power_take_precedence_over_background", resourceCulture); } } + + internal static string Regional_Playback_Control_State { + get { + return ResourceManager.GetString("Regional_Playback_Control_State", resourceCulture); + } + } + + internal static string Lead_In_Copyright_Information { + get { + return ResourceManager.GetString("Lead_In_Copyright_Information", resourceCulture); + } + } } } diff --git a/Aaru.Decoders/Localization/Localization.resx b/Aaru.Decoders/Localization/Localization.resx index c788d8e3e..1447fbdb8 100644 --- a/Aaru.Decoders/Localization/Localization.resx +++ b/Aaru.Decoders/Localization/Localization.resx @@ -9787,4 +9787,10 @@ Maintaining low power conditions take precedence over performing background functions + + Regional Playback Control State: + + + Lead-In Copyright Information: + \ No newline at end of file