diff --git a/.editorconfig b/.editorconfig
index 9181fe5..25aaa32 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,632 +1,216 @@
-root = true
-
[*]
charset = utf-8
-next_line = crlf
+end_of_line = lf
+trim_trailing_whitespace = false
insert_final_newline = false
indent_style = space
indent_size = 4
-# Generic non-language specific ones for Resharper and friends
-brace_style = next_line
-int_align = true
-keep_existing_arrangement = false
-place_simple_blocks_on_single_line = true
-place_simple_declaration_blocks_on_single_line = true
-place_attribute_on_same_line = false
-space_after_unary_operator = false
-space_after_comma = true
-space_around_ternary_operator = true
-space_around_binary_operator = true
-space_around_member_access_operator = false
-space_before_open_square_brackets = false
-space_after_keywords_in_control_flow_statements = true
-space_before_comma = false
-space_between_method_call_name_and_opening_parenthesis = false
-space_between_method_declaration_name_and_open_parenthesis = false
-space_between_square_brackets = false
-space_between_parentheses_of_control_flow_statements = false
-accessor_owner_declaration_braces = next_line
-accessor_declaration_braces = next_line
-case_block_braces = next_line
-initializer_braces = next_line
-other_braces = next_line
-allow_comment_after_lbrace = false
-empty_block_style = together_same_line
-braces_for_ifelse = not_required
-braces_for_for = not_required
-braces_for_foreach = not_required
-braces_for_while = not_required
-braces_for_dowhile = not_required
-braces_for_using = not_required
-braces_for_lock = not_required
-braces_for_fixed = not_required
-method_or_operator_body = expression_body
-local_function_body = expression_body
-constructor_or_destructor_body = expression_body
-accessor_owner_body = expression_body
-force_attribute_style = join
-function_braces = next_line
-force_control_statements_braces = always_remove
-space_in_singleline_accessorholder = true
-type_declaration_braces = next_line
-invocable_declaration_braces = next_line
-anonymous_method_declaration_braces = next_line
-space_between_accessors_in_singleline_property = true
-indent_nested_usings_stmt = true
-space_within_empty_braces = false
-indent_nested_fixed_stmt = true
-indent_nested_lock_stmt = true
-indent_nested_for_stmt = true
-indent_nested_foreach_stmt = true
-indent_nested_while_stmt = true
-use_continuous_indent_inside_parens = true
-indent_method_decl_pars = inside
-indent_invocation_pars = inside
-indent_statement_pars = inside
-indent_typeparam_angles = inside
-indent_typearg_angles = inside
-indent_pars = inside
-indent_preprocessor_if = outdent
-indent_preprocessor_region = usual_indent
-indent_preprocessor_other = usual_indent
-indent_switch_labels = true
-indent_type_constraints = true
-stick_comment = false
-alignment_tab_fill_style = use_spaces
-align_multiline_parameter = true
-align_multiline_extends_list = true
-align_linq_query = true
-align_multiline_binary_expressions_chain = true
-outdent_binary_ops = true
-align_multiline_calls_chain = true
-outdent_dots = true
-align_multiline_array_and_object_initializer = false
-indent_anonymous_method_block = false
-align_first_arg_by_paren = true
-align_multiline_argument = true
-align_tuple_components = true
-align_multiline_expression = true
-align_multiline_for_stmt = true
-align_multiple_declaration = true
-align_multline_type_parameter_list = true
-align_multline_type_parameter_constrains = true
-int_align_fields = true
-int_align_properties = true
-int_align_methods = true
-int_align_parameters = false
-int_align_variables = true
-int_align_assignments = true
-int_align_nested_ternary = true
-int_align_invocations = false
-int_align_binary_expressions = true
-int_align_comments = true
-int_align_switch_sections = true
-keep_user_linebreaks = false
-keep_existing_arrangement = false
-keep_existing_linebreaks = false
-max_line_length = 120
-wrap_before_comma = false
-special_else_if_treatment = true
-place_type_attribute_on_same_line = never
-place_method_attribute_on_same_line = never
-place_accessorholder_attribute_on_same_line = never
-place_attribute_on_same_line = never
-place_accessor_attribute_on_same_line = never
-place_attribute_on_same_line = never
-place_field_attribute_on_same_line = never
-place_attribute_on_same_line = never
-wrap_parameters_style = wrap_if_long
-keep_existing_declaration_parens_arrangement = false
-wrap_before_declaration_lpar = false
-wrap_after_declaration_lpar = false
-wrap_before_declaration_rpar = false
-place_constructor_initializer_on_same_line = true
-keep_existing_expr_member_arrangement = false
-place_expr_method_on_single_line = true
-place_expr_property_on_single_line = true
-place_expr_accessor_on_single_line = true
-wrap_before_arrow_with_expressions = false
-place_type_constraints_on_same_line = true
-wrap_before_first_type_parameter_constraint = true
-wrap_multiple_type_parameter_constraints_style = wrap_if_long
-wrap_before_type_parameter_langle = true
-wrap_before_extends_colon = false
-wrap_extends_list_style = wrap_if_long
-keep_existing_declaration_block_arrangement = false
-place_abstract_accessorholder_on_single_line = true
-place_simple_accessorholder_on_single_line = false
-place_accessor_with_attrs_holder_on_single_line = false
-place_simple_accessor_on_single_line = true
-place_simple_method_on_single_line = false
-keep_existing_enum_arrangement = false
-place_simple_enum_on_single_line = false
-wrap_enum_declaration = wrap_if_long
-new_line_before_else = true
-new_line_before_while = false
-wrap_for_stmt_header_style = wrap_if_long
-wrap_multiple_declaration_style = wrap_if_long
-keep_existing_embedded_arrangement = false
-place_simple_embedded_statement_on_same_line = false
-place_simple_case_statement_on_same_line = true
-keep_existing_embedded_block_arrangement = false
-place_simple_embedded_block_on_same_line = false
-place_simple_anonymousmethod_on_single_line = false
-keep_existing_initializer_arrangement = false
-place_simple_initializer_on_single_line = false
-wrap_object_and_collection_initializer_style = chop_always
-wrap_array_initializer_style = wrap_if_long
-wrap_arguments_style = wrap_if_long
-keep_existing_invocation_parens_arrangement = false
-wrap_after_invocation_lpar = false
-wrap_before_invocation_rpar = false
-wrap_after_dot_in_method_calls = true
-wrap_chained_method_calls = wrap_if_long
-wrap_before_binary_opsign = false
-wrap_chained_binary_expressions = wrap_if_long
-force_chop_compound_if_expression = true
-force_chop_compound_while_expression = true
-force_chop_compound_do_expression = true
-wrap_before_ternary_opsigns = true
-wrap_ternary_expr_style = wrap_if_long
-nested_ternary_style = expanded
-wrap_linq_expressions = wrap_if_long
-wrap_before_linq_expression = false
-place_linq_into_on_new_line = false
-wrap_verbatim_interpolated_strings = wrap_if_long
-extra_spaces = remove_all
-space_after_keywords_in_control_flow_statements = false
-space_between_method_call_name_and_opening_parenthesis = false
-space_between_method_declaration_name_and_open_parenthesis = false
-space_before_typeof_parentheses = false
-space_before_checked_parentheses = false
-space_before_sizeof_parentheses = false
-space_before_nameof_parentheses = false
-space_between_keyword_and_expression = true
-space_between_keyword_and_type = true
-space_around_assignment_op = true
-space_around_logical_op = true
-space_around_binary_operator = true
-space_around_equality_op = true
-space_around_relational_op = true
-space_around_bitwise_op = true
-space_around_additive_op = true
-space_around_multiplicative_op = true
-space_around_shift_op = true
-space_around_nullcoalescing_op = true
-space_around_arrow_op = false
-space_after_logical_not_op = false
-space_after_unary_operator = false
-space_after_cast = false
-space_around_dot = false
-space_around_lambda_arrow = true
-space_before_pointer_asterik_declaration = false
-space_before_nullable_mark = false
-blank_lines_around_class_definition = 1
-namespace_indentation = all
-space_within_template_argument = false
-align_union_type_usage = true
-space_in_singleline_method = true
-space_in_singleline_anonymous_method = true
-space_within_single_line_array_initializer_braces = true
-space_around_arrow_op = false
-
-# These are for markup languages (HTML, XML, etc)
-spaces_around_eq_in_pi_attribute = false
-space_after_last_pi_attribute = true
-pi_attributes_indent = align_by_first_attribute
-blank_line_after_pi = true
-spaces_around_eq_in_attribute = false
-space_after_last_attribute = false
-space_before_self_closing = true
-attribute_style = on_single_line
-attribute_indent = align_by_first_attribute
-sort_attributes = true
-sort_class_selectors = true
-max_blank_lines_between_tags = 0
-linebreak_before_all_elements = true
-linebreak_before_multiline_elements = true
-quote_style = doublequoted
-delete_quotes_from_solid_values = false
-normalize_tag_names = true
-
-
-[{.babelrc,.stylelintrc,jest.config,.eslintrc,.prettierrc,*.json,*.jsb3,*.jsb2,*.bowerrc}]
-indent_size = 2
-
-[*.js.map]
-indent_size = 2
-
-[*.{css,scss}]
-indent_size = 2
-declarations_style = separate_lines_for_nonsingle
-media_query_style = separate_lines
-selector_style = same_line
-properties_style = separate_lines_for_nonsingle
-brace_style = next_line
-
-[{.analysis_options,*.yml,*.yaml}]
-indent_size = 2
-
-# Xml project files
-[*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}]
-indent_size = 2
-
-# Xml files
-[*.{xml,stylecop,resx,ruleset}]
-indent_size = 2
-
-# Xml config files
-[*.{props,targets,config,nuspec}]
-indent_size = 2
-
-# .net files
-[*.{cs,vb}]
-# These set the this. / Me.
-dotnet_style_qualification_for_field = false:warning
-dotnet_style_qualification_for_property = false:warning
-dotnet_style_qualification_for_method = false:warning
-dotnet_style_qualification_for_event = false:warning
-
-# These make it suggest Int32 instead of int, etc.
+# Microsoft .NET properties
+csharp_new_line_between_query_expression_clauses = false
+csharp_preferred_modifier_order = public, private, protected, internal, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async:suggestion
+csharp_prefer_braces = false:warning
+csharp_space_after_keywords_in_control_flow_statements = false
+csharp_style_var_elsewhere = false:suggestion
+csharp_style_var_for_built_in_types = false:suggestion
+csharp_style_var_when_type_is_apparent = true:suggestion
+csharp_using_directive_placement = inside_namespace:silent
+dotnet_naming_rule.unity_serialized_field_rule.import_to_resharper = True
+dotnet_naming_rule.unity_serialized_field_rule.resharper_description = Unity serialized field
+dotnet_naming_rule.unity_serialized_field_rule.resharper_guid = 5f0fdb63-c892-4d2c-9324-15c80b22a7ef
+dotnet_naming_rule.unity_serialized_field_rule.severity = warning
+dotnet_naming_rule.unity_serialized_field_rule.style = lower_camel_case_style
+dotnet_naming_rule.unity_serialized_field_rule.symbols = unity_serialized_field_symbols
+dotnet_naming_rule.unity_serialized_field_rule_1.import_to_resharper = True
+dotnet_naming_rule.unity_serialized_field_rule_1.resharper_description = Unity serialized field
+dotnet_naming_rule.unity_serialized_field_rule_1.resharper_guid = 5f0fdb63-c892-4d2c-9324-15c80b22a7ef
+dotnet_naming_rule.unity_serialized_field_rule_1.severity = warning
+dotnet_naming_rule.unity_serialized_field_rule_1.style = lower_camel_case_style
+dotnet_naming_rule.unity_serialized_field_rule_1.symbols = unity_serialized_field_symbols_1
+dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
+dotnet_naming_symbols.unity_serialized_field_symbols.applicable_accessibilities = *
+dotnet_naming_symbols.unity_serialized_field_symbols.applicable_kinds =
+dotnet_naming_symbols.unity_serialized_field_symbols.resharper_applicable_kinds = unity_serialised_field
+dotnet_naming_symbols.unity_serialized_field_symbols.resharper_required_modifiers = instance
+dotnet_naming_symbols.unity_serialized_field_symbols_1.applicable_accessibilities = *
+dotnet_naming_symbols.unity_serialized_field_symbols_1.applicable_kinds =
+dotnet_naming_symbols.unity_serialized_field_symbols_1.resharper_applicable_kinds = unity_serialised_field
+dotnet_naming_symbols.unity_serialized_field_symbols_1.resharper_required_modifiers = instance
+dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:warning
+dotnet_style_parentheses_in_other_binary_operators = never_if_unnecessary:warning
+dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:warning
dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion
dotnet_style_predefined_type_for_member_access = true:suggestion
-
-# This controls implicit access modifiers
+dotnet_style_qualification_for_event = false:suggestion
+dotnet_style_qualification_for_field = false:suggestion
+dotnet_style_qualification_for_method = false:suggestion
+dotnet_style_qualification_for_property = false:suggestion
dotnet_style_require_accessibility_modifiers = never:suggestion
-# Prefer non modified fields to be marked readonly
-dotnet_style_readonly_field = true:warning
+# ReSharper properties
+resharper_align_first_arg_by_paren = true
+resharper_align_linq_query = true
+resharper_align_multiline_argument = true
+resharper_align_multiline_binary_expressions_chain = true
+resharper_align_multiline_binary_patterns = true
+resharper_align_multiline_calls_chain = true
+resharper_align_multiline_expression = true
+resharper_align_multiline_extends_list = true
+resharper_align_multiline_for_stmt = true
+resharper_align_multiline_parameter = true
+resharper_align_multiline_property_pattern = true
+resharper_align_multiline_switch_expression = true
+resharper_align_multiple_declaration = true
+resharper_align_multline_type_parameter_constrains = true
+resharper_align_multline_type_parameter_list = true
+resharper_align_tuple_components = true
+resharper_attribute_indent = align_by_first_attribute
+resharper_attribute_style = on_single_line
+resharper_autodetect_indent_settings = true
+resharper_constructor_or_destructor_body = expression_body
+resharper_cpp_brace_style = next_line
+resharper_csharp_outdent_commas = true
+resharper_default_value_when_type_not_evident = default_expression
+resharper_empty_block_style = together_same_line
+resharper_force_attribute_style = join
+resharper_force_chop_compound_do_expression = true
+resharper_force_chop_compound_if_expression = true
+resharper_force_chop_compound_while_expression = true
+resharper_for_built_in_types = use_var_when_evident
+resharper_fsharp_type_declaration_braces = next_line
+resharper_indent_nested_fixed_stmt = true
+resharper_indent_nested_foreach_stmt = true
+resharper_indent_nested_for_stmt = true
+resharper_indent_nested_lock_stmt = true
+resharper_indent_nested_usings_stmt = true
+resharper_indent_nested_while_stmt = true
+resharper_indent_preprocessor_if = outdent
+resharper_indent_preprocessor_other = usual_indent
+resharper_indent_switch_labels = true
+resharper_int_align_assignments = true
+resharper_int_align_binary_expressions = true
+resharper_int_align_comments = true
+resharper_int_align_fields = true
+resharper_int_align_methods = true
+resharper_int_align_nested_ternary = true
+resharper_int_align_properties = true
+resharper_int_align_property_patterns = true
+resharper_int_align_switch_expressions = true
+resharper_int_align_switch_sections = true
+resharper_int_align_variables = true
+resharper_keep_existing_arrangement = false
+resharper_keep_user_linebreaks = false
+resharper_linebreak_before_all_elements = true
+resharper_local_function_body = expression_body
+resharper_max_blank_lines_between_tags = 0
+resharper_max_enum_members_on_line = 1
+resharper_method_or_operator_body = expression_body
+resharper_nested_ternary_style = expanded
+resharper_new_line_before_while = false
+resharper_normalize_tag_names = true
+resharper_outdent_binary_ops = true
+resharper_outdent_binary_pattern_ops = true
+resharper_outdent_dots = true
+resharper_outdent_statement_labels = true
+resharper_place_attribute_on_same_line = false
+resharper_place_expr_accessor_on_single_line = true
+resharper_place_expr_method_on_single_line = true
+resharper_place_expr_property_on_single_line = true
+resharper_place_linq_into_on_new_line = false
+resharper_place_simple_anonymousmethod_on_single_line = false
+resharper_place_simple_case_statement_on_same_line = true
+resharper_place_simple_embedded_statement_on_same_line = false
+resharper_place_simple_initializer_on_single_line = false
+resharper_place_simple_switch_expression_on_single_line = true
+resharper_prefer_explicit_discard_declaration = true
+resharper_qualified_using_at_nested_scope = true
+resharper_show_autodetect_configure_formatting_tip = false
+resharper_sort_attributes = true
+resharper_sort_class_selectors = true
+resharper_space_after_keywords_in_control_flow_statements = false
+resharper_space_after_last_pi_attribute = true
+resharper_space_after_unary_operator = false
+resharper_space_around_binary_operator = true
+resharper_space_before_self_closing = true
+resharper_space_within_empty_braces = false
+resharper_stick_comment = false
+resharper_use_indent_from_vs = false
+resharper_wrap_after_dot_in_method_calls = true
+resharper_wrap_before_first_type_parameter_constraint = true
+resharper_wrap_before_type_parameter_langle = true
+resharper_wrap_enum_declaration = wrap_if_long
+resharper_wrap_for_stmt_header_style = wrap_if_long
+resharper_wrap_lines = true
+resharper_wrap_multiple_declaration_style = wrap_if_long
+resharper_wrap_multiple_type_parameter_constraints_style = wrap_if_long
+resharper_wrap_object_and_collection_initializer_style = chop_always
+resharper_wrap_ternary_expr_style = wrap_if_long
+resharper_wrap_verbatim_interpolated_strings = wrap_if_long
-# Parenthesis settings
-dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning
-dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning
-dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning
-dotnet_style_parentheses_in_other_operators = always_for_clarity:warning
+# ReSharper inspection severities
+resharper_annotate_can_be_null_parameter_highlighting = warning
+resharper_annotate_can_be_null_type_member_highlighting = warning
+resharper_annotate_not_null_parameter_highlighting = warning
+resharper_annotate_not_null_type_member_highlighting = warning
+resharper_arrange_attributes_highlighting = hint
+resharper_arrange_constructor_or_destructor_body_highlighting = warning
+resharper_arrange_default_value_when_type_evident_highlighting = warning
+resharper_arrange_default_value_when_type_not_evident_highlighting = warning
+resharper_arrange_local_function_body_highlighting = warning
+resharper_arrange_method_or_operator_body_highlighting = warning
+resharper_arrange_object_creation_when_type_evident_highlighting = warning
+resharper_arrange_object_creation_when_type_not_evident_highlighting = warning
+resharper_arrange_redundant_parentheses_highlighting = hint
+resharper_arrange_this_qualifier_highlighting = hint
+resharper_arrange_type_member_modifiers_highlighting = hint
+resharper_arrange_type_modifiers_highlighting = hint
+resharper_async_void_method_highlighting = warning
+resharper_built_in_type_reference_style_for_member_access_highlighting = hint
+resharper_built_in_type_reference_style_highlighting = hint
+resharper_compare_non_constrained_generic_with_null_highlighting = warning
+resharper_heap_view_boxing_allocation_highlighting = none
+resharper_heap_view_delegate_allocation_highlighting = none
+resharper_heap_view_object_allocation_evident_highlighting = none
+resharper_heap_view_object_allocation_highlighting = none
+resharper_inheritdoc_consider_usage_highlighting = warning
+resharper_local_function_can_be_made_static_highlighting = warning
+resharper_loop_can_be_partly_converted_to_query_highlighting = warning
+resharper_member_can_be_internal_highlighting = warning
+resharper_nullable_warning_suppression_is_used_highlighting = warning
+resharper_redundant_base_qualifier_highlighting = warning
+resharper_remove_constructor_invocation_highlighting = warning
+resharper_separate_control_transfer_statement_highlighting = warning
+resharper_string_ends_with_is_culture_specific_highlighting = warning
+resharper_string_starts_with_is_culture_specific_highlighting = warning
+resharper_struct_member_can_be_made_read_only_highlighting = warning
+resharper_suggest_var_or_type_built_in_types_highlighting = hint
+resharper_suggest_var_or_type_elsewhere_highlighting = hint
+resharper_suggest_var_or_type_simple_types_highlighting = hint
+resharper_tabs_are_disallowed_highlighting = warning
+resharper_unnecessary_whitespace_highlighting = warning
+resharper_use_nameof_expression_for_part_of_the_string_highlighting = warning
+resharper_use_positional_deconstruction_pattern_highlighting = warning
+resharper_web_config_module_not_resolved_highlighting = warning
+resharper_web_config_type_not_resolved_highlighting = warning
+resharper_web_config_wrong_module_highlighting = warning
-dotnet_style_object_initializer = true:suggestion
-dotnet_style_collection_initializer = true:suggestion
-dotnet_style_explicit_tuple_names = true:error
-dotnet_style_prefer_inferred_tuple_names = true:warning
-dotnet_style_prefer_inferred_anonymous_type_member_names = true:warning
-dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning
-dotnet_style_prefer_conditional_expression_over_return = true:warning
-dotnet_style_coalesce_expression = true:warning
-dotnet_style_null_propagation = true:error
+[{*.har,*.inputactions,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,jest.config}]
+indent_style = space
+indent_size = 2
-dotnet_sort_system_directives_first = true
+[{*.yaml,*.yml,.analysis_options}]
+indent_style = space
+indent_size = 2
-# Constants in C style, all-caps
-dotnet_naming_rule.constant_fields_caps.symbols = constant_fields
-dotnet_naming_rule.constant_fields_caps.severity = warning
-dotnet_naming_rule.constant_fields_caps.style = caps_style
-dotnet_naming_symbols.constant_fields.applicable_kinds = field
-dotnet_naming_symbols.constant_fields.required_modifiers = const
-dotnet_naming_style.caps_style.capitalization = all_upper
+[*.csv]
+indent_style = tab
+tab_width = 1
-# interfaces should be prefixed with I
-dotnet_naming_rule.pascal_case_for_interface.severity = error
-dotnet_naming_rule.pascal_case_for_interface.symbols = interfaces_fields
-dotnet_naming_rule.pascal_case_for_interface.style = pascal_case_interface_style
-dotnet_naming_symbols.interfaces_fields.applicable_kinds = interface
-dotnet_naming_style.pascal_case_interface_style.required_prefix = I
-dotnet_naming_style.pascal_case_interface_style.capitalization = pascal_case
+[{*.bash,*.sh,*.tool,*.zsh}]
+indent_style = space
+indent_size = 2
-## internal and private fields should be _camelCase
-dotnet_naming_rule.camel_case_for_private_internal_fields.severity = warning
-dotnet_naming_rule.camel_case_for_private_internal_fields.symbols = private_internal_fields
-dotnet_naming_rule.camel_case_for_private_internal_fields.style = camel_case_underscore_style
-dotnet_naming_symbols.private_internal_fields.applicable_kinds = field
-dotnet_naming_symbols.private_internal_fields.applicable_accessibilities = private, internal
-dotnet_naming_style.camel_case_underscore_style.required_prefix = _
-dotnet_naming_style.camel_case_underscore_style.capitalization = camel_case
-
-# 2018-12-07 NP: This is not yet working in VS2017
-# local variables should be camelCase
-#dotnet_naming_rule.camel_case_for_locals.severity = suggestion
-#dotnet_naming_rule.camel_case_for_locals.symbols = local_fields
-#dotnet_naming_rule.camel_case_for_locals.style = camel_case_style
-#dotnet_naming_symbols.local_fields.applicable_kinds = local
-#dotnet_naming_style.camel_case_style.capitalization = camel_case
-
-[*.cs]
-# var var var
-csharp_style_var_for_built_in_types = false:warning
-csharp_style_var_when_type_is_apparent = true:suggestion
-csharp_style_var_elsewhere = false:warning
-
-csharp_style_expression_bodied_methods = when_on_single_line:suggestion
-csharp_style_expression_bodied_constructors = when_on_single_line:suggestion
-csharp_style_expression_bodied_operators = when_on_single_line:suggestion
-csharp_style_expression_bodied_properties = when_on_single_line:suggestion
-csharp_style_expression_bodied_indexers = when_on_single_line:suggestion
-csharp_style_expression_bodied_accessors = when_on_single_line:suggestion
-
-csharp_style_pattern_matching_over_is_with_cast_check = true:warning
-csharp_style_pattern_matching_over_as_with_null_check = when_on_single_line:warning
-
-csharp_style_inlined_variable_declaration = true:warning
-
-csharp_prefer_simple_default_expression = true:warning
-csharp_style_deconstructed_variable_declaration = false:warning
-
-csharp_style_throw_expression = true:warning
-csharp_style_conditional_delegate_call = true:warning
-
-csharp_prefer_braces = false
-
-csharp_new_line_before_open_brace = all
-csharp_new_line_before_else = true
-csharp_new_line_before_catch = true
-csharp_new_line_before_finally = true
-csharp_new_line_before_members_in_object_initializers = true
-csharp_new_line_before_members_in_anonymous_types = true
-csharp_new_line_between_query_expression_clauses = true
-
-csharp_indent_case_contents = true
-csharp_indent_switch_labels = true
-csharp_indent_labels = flush_left
-
-csharp_space_after_cast = false
-csharp_space_after_keywords_in_control_flow_statements = false
-csharp_space_between_method_declaration_parameter_list_parentheses = false
-csharp_space_between_parentheses = none
-csharp_space_before_colon_in_inheritance_clause = true
-csharp_space_after_colon_in_inheritance_clause = true
-csharp_space_around_binary_operators = before_and_after
-csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
-csharp_space_between_method_call_name_and_opening_parenthesis = false
-csharp_space_between_method_call_empty_parameter_list_parentheses = false
-
-csharp_preserve_single_line_statements = false
-csharp_preserve_single_line_blocks = true
-
-csharp_blank_lines_around_region = 0
-csharp_blank_lines_inside_region = 0
-csharp_blank_lines_before_single_line_comment = 1
-csharp_keep_blank_lines_in_declarations = 1
-csharp_remove_blank_lines_near_braces_in_declarations = true
-csharp_blank_lines_after_start_comment = false
-csharp_blank_lines_between_using_groups = 0
-csharp_blank_lines_after_using_list = 1
-csharp_blank_lines_around_namespace = 1
-csharp_blank_lines_inside_namespace = 0
-csharp_blank_lines_around_type = 1
-csharp_blank_lines_inside_type = 0
-csharp_blank_lines_around_field = 0
-csharp_blank_lines_around_single_line_field = 0
-csharp_blank_lines_around_property = 1
-csharp_blank_lines_around_single_line_property = 0
-csharp_blank_lines_around_auto_property = 0
-csharp_blank_lines_around_single_line_auto_property = 0
-csharp_blank_lines_around_invocable = 1
-csharp_blank_lines_around_single_line_invocable = 1
-csharp_keep_blank_lines_in_code = 1
-csharp_remove_blank_lines_near_braces_in_code = true
-csharp_blank_lines_around_local_method = 1
-csharp_blank_lines_around_single_line_local_method = 1
-csharp_blank_lines_before_control_transfer_statements = 1
-csharp_blank_lines_after_control_transfer_statements = 1
-csharp_blank_lines_before_block_statements = 1
-csharp_blank_lines_after_block_statements = 1
-csharp_blank_lines_before_multiline_statements = 1
-csharp_blank_lines_after_multiline_statements = 1
-
-csharp_type_declaration_braces = next_line
-csharp_brace_style = next_line
-csharp_indent_inside_namespace = true
-csharp_invocable_declaration_braces = next_line
-csharp_anonymous_method_declaration_braces = next_line
-csharp_accessor_owner_declaration_braces = next_line
-csharp_accessor_declaration_braces = next_line
-csharp_case_block_braces = next_line
-csharp_initializer_braces = next_line
-csharp_other_braces = next_line
-csharp_allow_comment_after_lbrace = false
-csharp_empty_block_style = together_same_line
-
-csharp_for_built_in_types = use_explicit_type
-csharp_for_simple_types = use_var_when_evident
-csharp_for_other_types = use_explicit_type
-csharp_prefer_separate_deconstructed_variables_declaration = true
-csharp_prefer_explicit_discard_declaration = false
-
-csharp_instance_members_qualify_members = none
-csharp_builtin_type_reference_style = use_keyword
-csharp_prefer_qualified_reference = false
-csharp_add_imports_to_deepest_scope = false
-csharp_allow_alias = true
-csharp_default_private_modifier = implicit
-csharp_default_internal_modifier = explicit
-csharp_arguments_literal = positional
-csharp_arguments_string_literal = positional
-csharp_arguments_named = positional
-csharp_arguments_anonymous_function = positional
-csharp_arguments_other = positional
-csharp_braces_for_ifelse = not_required
-csharp_braces_for_for = not_required
-csharp_braces_for_foreach = not_required
-csharp_braces_for_while = not_required
-csharp_braces_for_dowhile = not_required
-csharp_braces_for_using = not_required
-csharp_braces_for_lock = not_required
-csharp_braces_for_fixed = not_required
-csharp_method_or_operator_body = expression_body
-csharp_local_function_body = expression_body
-csharp_constructor_or_destructor_body = expression_body
-csharp_accessor_owner_body = expression_body
-csharp_force_attribute_style = join
-csharp_indent_nested_usings_stmt = true
-
-csharp_builtin_type_reference_for_member_access_style = use_keyword
-csharp_indent_nested_fixed_stmt = true
-csharp_indent_nested_lock_stmt = true
-csharp_indent_nested_for_stmt = true
-csharp_indent_nested_foreach_stmt = true
-csharp_indent_nested_while_stmt = true
-csharp_use_continuous_indent_inside_parens = true
-csharp_indent_method_decl_pars = inside
-csharp_indent_invocation_pars = inside
-csharp_indent_statement_pars = inside
-csharp_indent_typeparam_angles = inside
-csharp_indent_typearg_angles = inside
-csharp_indent_pars = inside
-csharp_indent_preprocessor_if = outdent
-csharp_indent_preprocessor_region = usual_indent
-csharp_indent_preprocessor_other = usual_indent
-csharp_indent_switch_labels = true
-csharp_indent_type_constraints = true
-csharp_stick_comment = false
-csharp_alignment_tab_fill_style = use_spaces
-csharp_align_multiline_parameter = true
-csharp_align_multiline_extends_list = true
-csharp_align_linq_query = true
-csharp_align_multiline_binary_expressions_chain = true
-csharp_outdent_binary_ops = true
-csharp_align_multiline_calls_chain = true
-csharp_outdent_dots = true
-csharp_align_multiline_array_and_object_initializer = false
-csharp_indent_anonymous_method_block = false
-csharp_align_first_arg_by_paren = true
-csharp_align_multiline_argument = true
-csharp_align_tuple_components = true
-csharp_align_multiline_expression = true
-csharp_align_multiline_for_stmt = true
-csharp_align_multiple_declaration = true
-csharp_align_multline_type_parameter_list = true
-csharp_align_multline_type_parameter_constrains = true
-csharp_int_align_fields = true
-csharp_int_align_properties = true
-csharp_int_align_methods = true
-csharp_int_align_parameters = false
-csharp_int_align_variables = true
-csharp_int_align_assignments = true
-csharp_int_align_nested_ternary = true
-csharp_int_align_invocations = false
-csharp_int_align_binary_expressions = true
-csharp_int_align_comments = true
-csharp_int_align_switch_sections = true
-csharp_int_align = true
-csharp_keep_user_linebreaks = false
-csharp_keep_existing_arrangement = false
-csharp_keep_existing_linebreaks = false
-csharp_max_line_length = 120
-csharp_wrap_before_comma = false
-csharp_special_else_if_treatment = true
-csharp_insert_final_newline = false
-csharp_place_type_attribute_on_same_line = never
-csharp_place_method_attribute_on_same_line = never
-csharp_place_accessorholder_attribute_on_same_line = never
-csharp_place_attribute_on_same_line = never
-csharp_place_accessor_attribute_on_same_line = never
-csharp_place_attribute_on_same_line = never
-csharp_place_field_attribute_on_same_line = never
-csharp_place_attribute_on_same_line = never
-csharp_wrap_parameters_style = wrap_if_long
-csharp_keep_existing_declaration_parens_arrangement = false
-csharp_wrap_before_declaration_lpar = false
-csharp_wrap_after_declaration_lpar = false
-csharp_wrap_before_declaration_rpar = false
-csharp_place_constructor_initializer_on_same_line = true
-csharp_keep_existing_expr_member_arrangement = false
-csharp_place_expr_method_on_single_line = true
-csharp_place_expr_property_on_single_line = true
-csharp_place_expr_accessor_on_single_line = true
-csharp_wrap_before_arrow_with_expressions = false
-csharp_place_type_constraints_on_same_line = true
-csharp_wrap_before_first_type_parameter_constraint = true
-csharp_wrap_multiple_type_parameter_constraints_style = wrap_if_long
-csharp_wrap_before_type_parameter_langle = true
-csharp_wrap_before_extends_colon = false
-csharp_wrap_extends_list_style = wrap_if_long
-csharp_keep_existing_declaration_block_arrangement = false
-csharp_place_abstract_accessorholder_on_single_line = true
-csharp_place_simple_accessorholder_on_single_line = false
-csharp_place_accessor_with_attrs_holder_on_single_line = false
-csharp_place_simple_accessor_on_single_line = true
-csharp_place_simple_method_on_single_line = false
-csharp_keep_existing_enum_arrangement = false
-csharp_place_simple_enum_on_single_line = false
-csharp_wrap_enum_declaration = wrap_if_long
-csharp_new_line_before_else = true
-csharp_new_line_before_while = false
-csharp_wrap_for_stmt_header_style = wrap_if_long
-csharp_wrap_multiple_declaration_style = wrap_if_long
-csharp_keep_existing_embedded_arrangement = false
-csharp_place_simple_embedded_statement_on_same_line = false
-csharp_place_simple_case_statement_on_same_line = true
-csharp_keep_existing_embedded_block_arrangement = false
-csharp_place_simple_embedded_block_on_same_line = false
-csharp_place_simple_anonymousmethod_on_single_line = false
-csharp_keep_existing_initializer_arrangement = false
-csharp_place_simple_initializer_on_single_line = false
-csharp_wrap_object_and_collection_initializer_style = chop_always
-csharp_wrap_array_initializer_style = wrap_if_long
-csharp_wrap_arguments_style = wrap_if_long
-csharp_keep_existing_invocation_parens_arrangement = false
-csharp_wrap_after_invocation_lpar = false
-csharp_wrap_before_invocation_rpar = false
-csharp_wrap_after_dot_in_method_calls = true
-csharp_wrap_chained_method_calls = wrap_if_long
-csharp_wrap_before_binary_opsign = false
-csharp_wrap_chained_binary_expressions = wrap_if_long
-csharp_force_chop_compound_if_expression = true
-csharp_force_chop_compound_while_expression = true
-csharp_force_chop_compound_do_expression = true
-csharp_wrap_before_ternary_opsigns = true
-csharp_wrap_ternary_expr_style = wrap_if_long
-csharp_nested_ternary_style = expanded
-csharp_wrap_linq_expressions = wrap_if_long
-csharp_wrap_before_linq_expression = false
-csharp_place_linq_into_on_new_line = false
-csharp_wrap_verbatim_interpolated_strings = wrap_if_long
-csharp_extra_spaces = remove_all
-csharp_space_after_keywords_in_control_flow_statements = false
-csharp_space_between_method_call_name_and_opening_parenthesis = false
-csharp_space_between_method_declaration_name_and_open_parenthesis = false
-csharp_space_before_typeof_parentheses = false
-csharp_space_before_checked_parentheses = false
-csharp_space_before_sizeof_parentheses = false
-csharp_space_before_nameof_parentheses = false
-csharp_space_between_keyword_and_expression = true
-csharp_space_between_keyword_and_type = true
-csharp_space_around_assignment_op = true
-csharp_space_around_logical_op = true
-csharp_space_around_binary_operator = true
-csharp_space_around_equality_op = true
-csharp_space_around_relational_op = true
-csharp_space_around_bitwise_op = true
-csharp_space_around_additive_op = true
-csharp_space_around_multiplicative_op = true
-csharp_space_around_shift_op = true
-csharp_space_around_nullcoalescing_op = true
-csharp_space_around_arrow_op = false
-csharp_space_after_logical_not_op = false
-csharp_space_after_unary_operator = false
-csharp_space_after_cast = false
-csharp_space_around_dot = false
-csharp_space_around_lambda_arrow = true
-csharp_space_before_pointer_asterik_declaration = false
-csharp_space_before_nullable_mark = false
-
-[*.cshtml]
-linebreaks_around_razor_statements = true
-blank_lines_around_razor_functions = true
-blank_lines_around_razor_helpers = true
-blank_lines_around_razor_sections = true
-
-# C++
-[*.{cc,cpp,cxx,h,hpp,hxx}]
-cpp_indent_access_specifiers_from_class = true
-cpp_indent_wrapped_function_names = false
-cpp_align_multiline_type_argument = true
-
-# C, C++ and ObjectiveC
-[*.{c,h,cc,cpp,cxx,m,hpp,hxx}]
-indent_preprocessor_directives = normal
-indent_type_constraints = true
-
-# Javascript and Typescript
-[*.{js,js.map,ts}]
-quote_style = doublequoted
-termination_style = ensure_semicolon
\ No newline at end of file
+[*.{appxmanifest,asax,ascx,aspx,axaml,build,cg,cginc,compute,cs,cshtml,dtd,fs,fsi,fsscript,fsx,hlsl,hlsli,hlslinc,master,ml,mli,nuspec,paml,razor,resw,resx,shader,skin,usf,ush,vb,xaml,xamlx,xoml,xsd}]
+indent_style = space
+indent_size = 4
+tab_width = 4
diff --git a/ATA/Identify.cs b/ATA/Identify.cs
index 27079cf..f64bbd8 100644
--- a/ATA/Identify.cs
+++ b/ATA/Identify.cs
@@ -30,13 +30,13 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.ATA;
+
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.CommonTypes.Structs.Devices.SCSI;
-namespace Aaru.Decoders.ATA;
-
// Information from following standards:
// T10-791D rev. 4c (ATA)
// T10-948D rev. 4c (ATA-2)
@@ -71,8 +71,8 @@ public static class Identify
var sb = new StringBuilder();
- bool atapi = false;
- bool cfa = false;
+ var atapi = false;
+ var cfa = false;
CommonTypes.Structs.Devices.ATA.Identify.IdentifyDevice ATAID = IdentifyDeviceResponse.Value;
@@ -105,8 +105,7 @@ public static class Identify
if(ATAID.CommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.MustBeSet) &&
!ATAID.CommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.MustBeClear))
{
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.
- MediaSerial))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.MediaSerial))
{
if(ATAID.MediaManufacturer != "")
sb.AppendFormat("Media manufacturer: {0}", ATAID.MediaManufacturer).AppendLine();
@@ -169,8 +168,8 @@ public static class Identify
acs4 |= ATAID.MajorVersion.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.MajorVersionBit.ACS4);
}
- int maxatalevel = 0;
- int minatalevel = 255;
+ var maxatalevel = 0;
+ var minatalevel = 255;
sb.Append("Supported ATA versions: ");
if(ata1)
@@ -654,8 +653,8 @@ public static class Identify
break;
default:
- sb.AppendFormat("Unknown ATAPI packet size code {0}",
- (ushort)ATAID.GeneralConfiguration & 0x03).AppendLine();
+ sb.AppendFormat("Unknown ATAPI packet size code {0}", (ushort)ATAID.GeneralConfiguration & 0x03).
+ AppendLine();
break;
}
@@ -663,8 +662,8 @@ public static class Identify
else if(!cfa)
{
if(minatalevel >= 5)
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.IncompleteResponse))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ IncompleteResponse))
sb.AppendLine("Incomplete identify response");
if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
@@ -676,58 +675,58 @@ public static class Identify
sb.AppendLine("Device is removable");
if(minatalevel <= 5)
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.Fixed))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ Fixed))
sb.AppendLine("Device is fixed");
if(ata1)
{
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.SlowIDE))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ SlowIDE))
sb.AppendLine("Device transfer rate is <= 5 Mb/s");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.FastIDE))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ FastIDE))
sb.AppendLine("Device transfer rate is > 5 Mb/s but <= 10 Mb/s");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.UltraFastIDE))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ UltraFastIDE))
sb.AppendLine("Device transfer rate is > 10 Mb/s");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.SoftSector))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ SoftSector))
sb.AppendLine("Device is soft sectored");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.HardSector))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ HardSector))
sb.AppendLine("Device is hard sectored");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.NotMFM))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ NotMFM))
sb.AppendLine("Device is not MFM encoded");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.FormatGapReq))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ FormatGapReq))
sb.AppendLine("Format speed tolerance gap is required");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.TrackOffset))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ TrackOffset))
sb.AppendLine("Track offset option is available");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.DataStrobeOffset))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ DataStrobeOffset))
sb.AppendLine("Data strobe offset option is available");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.RotationalSpeedTolerance))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ RotationalSpeedTolerance))
sb.AppendLine("Rotational speed tolerance is higher than 0,5%");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.SpindleControl))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ SpindleControl))
sb.AppendLine("Spindle motor control is implemented");
- if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- GeneralConfigurationBit.HighHeadSwitch))
+ if(ATAID.GeneralConfiguration.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.GeneralConfigurationBit.
+ HighHeadSwitch))
sb.AppendLine("Head switch time is bigger than 15 µs.");
}
}
@@ -818,7 +817,7 @@ public static class Identify
(ulong)ATAID.CurrentSectors * 512 / 1024 / 1024).AppendLine();
else
{
- ulong currentSectors = (ulong)(ATAID.Cylinders * ATAID.Heads * ATAID.SectorsPerTrack);
+ var currentSectors = (ulong)(ATAID.Cylinders * ATAID.Heads * ATAID.SectorsPerTrack);
sb.AppendFormat("Device size in CHS mode: {0} bytes, {1} Mb, {2} MiB",
currentSectors * logicalSectorSize,
@@ -899,8 +898,7 @@ public static class Identify
(ushort)ATAID.SpecificConfiguration != 0xFFFF)
switch(ATAID.SpecificConfiguration)
{
- case CommonTypes.Structs.Devices.ATA.Identify.SpecificConfigurationEnum.
- RequiresSetIncompleteResponse:
+ case CommonTypes.Structs.Devices.ATA.Identify.SpecificConfigurationEnum.RequiresSetIncompleteResponse:
sb.AppendLine("Device requires SET FEATURES to spin up and IDENTIFY DEVICE response is incomplete.");
break;
@@ -913,8 +911,7 @@ public static class Identify
sb.AppendLine("Device does not require SET FEATURES to spin up and IDENTIFY DEVICE response is incomplete.");
break;
- case CommonTypes.Structs.Devices.ATA.Identify.SpecificConfigurationEnum.
- NotRequiresSetCompleteResponse:
+ case CommonTypes.Structs.Devices.ATA.Identify.SpecificConfigurationEnum.NotRequiresSetCompleteResponse:
sb.AppendLine("Device does not require SET FEATURES to spin up and IDENTIFY DEVICE response is complete.");
break;
@@ -962,8 +959,7 @@ public static class Identify
sb.Append("Device capabilities:");
- if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.
- StandardStandbyTimer))
+ if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.StandardStandbyTimer))
sb.AppendLine().Append("Standby time values are standard");
if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.IORDY))
@@ -989,15 +985,12 @@ public static class Identify
AppendFormat("A maximum of {0} sectors can be transferred per interrupt on READ/WRITE MULTIPLE",
ATAID.MultipleSectorNumber);
- sb.AppendLine().AppendFormat("Device supports setting a maximum of {0} sectors",
- ATAID.MultipleMaxSectors);
+ sb.AppendLine().AppendFormat("Device supports setting a maximum of {0} sectors", ATAID.MultipleMaxSectors);
}
- if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.
- PhysicalAlignment1) ||
+ if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.PhysicalAlignment1) ||
ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.PhysicalAlignment0))
- sb.AppendLine().AppendFormat("Long Physical Alignment setting is {0}",
- (ushort)ATAID.Capabilities & 0x03);
+ sb.AppendLine().AppendFormat("Long Physical Alignment setting is {0}", (ushort)ATAID.Capabilities & 0x03);
if(ata1)
if(ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.
@@ -1012,8 +1005,7 @@ public static class Identify
if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.CommandQueue))
sb.AppendLine().Append("ATAPI device supports command queueing");
- if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.
- OverlapOperation))
+ if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.OverlapOperation))
sb.AppendLine().Append("ATAPI device supports overlapped operations");
if(ATAID.Capabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CapabilitiesBit.
@@ -1332,30 +1324,29 @@ public static class Identify
}
}
- if(!ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
- Clear))
+ if(!ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.Clear))
{
if(!ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.
Clear) &&
ATAID.SATACapabilities.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit.NCQ))
{
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SATACapabilitiesBit2.NCQMgmt))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
+ NCQMgmt))
sb.AppendLine().Append("NCQ queue management is supported");
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SATACapabilitiesBit2.NCQStream))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
+ NCQStream))
sb.AppendLine().Append("NCQ streaming is supported");
}
if(atapi)
{
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SATACapabilitiesBit2.HostEnvDetect))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
+ HostEnvDetect))
sb.AppendLine().Append("ATAPI device supports host environment detection");
- if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SATACapabilitiesBit2.DevAttSlimline))
+ if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
+ DevAttSlimline))
sb.AppendLine().Append("ATAPI device supports attention on slimline connected devices");
}
@@ -1506,8 +1497,7 @@ public static class Identify
{
sb.AppendLine().Append("Power management is supported");
- if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit.
- PowerManagement))
+ if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit.PowerManagement))
sb.Append(" and enabled");
}
@@ -1515,8 +1505,7 @@ public static class Identify
{
sb.AppendLine().Append("Removable media feature set is supported");
- if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit.
- RemovableMedia))
+ if(ATAID.EnabledCommandSet.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit.RemovableMedia))
sb.Append(" and enabled");
}
@@ -1546,8 +1535,7 @@ public static class Identify
{
sb.AppendLine().Append("FLUSH CACHE is supported");
- if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.
- FlushCache))
+ if(ATAID.EnabledCommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.FlushCache))
sb.Append(" and enabled");
}
@@ -1595,8 +1583,7 @@ public static class Identify
sb.Append(" and enabled");
}
- if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.
- SetFeaturesRequired))
+ if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.SetFeaturesRequired))
sb.AppendLine().Append("SET FEATURES is required before spin-up");
if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.PowerUpInStandby))
@@ -1608,8 +1595,7 @@ public static class Identify
sb.Append(" and enabled");
}
- if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.
- RemovableNotification))
+ if(ATAID.CommandSet2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit2.RemovableNotification))
{
sb.AppendLine().Append("Removable Media Status Notification is supported");
@@ -1662,8 +1648,7 @@ public static class Identify
sb.Append(" and enabled");
}
- if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.
- Supported))
+ if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.Supported))
sb.AppendLine().Append("S.M.A.R.T. Command Transport is supported");
if(ATAID.CommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.MustBeSet) &&
@@ -1682,8 +1667,7 @@ public static class Identify
{
sb.AppendLine().Append("S.M.A.R.T. error logging is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.
- SMARTLog))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.SMARTLog))
sb.Append(" and enabled");
}
@@ -1709,8 +1693,7 @@ public static class Identify
{
sb.AppendLine().Append("WRITE DMA QUEUED FUA EXT is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.
- FUAWriteQ))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.FUAWriteQ))
sb.Append(" and enabled");
}
@@ -1718,8 +1701,7 @@ public static class Identify
{
sb.AppendLine().Append("WRITE DMA FUA EXT and WRITE MULTIPLE FUA EXT are supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.
- FUAWrite))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.FUAWrite))
sb.Append(" and enabled");
}
@@ -1735,8 +1717,7 @@ public static class Identify
{
sb.AppendLine().Append("Streaming feature set is supported");
- if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.
- Streaming))
+ if(ATAID.EnabledCommandSet3.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit3.Streaming))
sb.Append(" and enabled");
}
@@ -1827,8 +1808,7 @@ public static class Identify
{
sb.AppendLine().Append("WRITE UNCORRECTABLE is supported");
- if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.
- WriteUnc))
+ if(ATAID.EnabledCommandSet4.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit4.WriteUnc))
sb.Append(" and enabled");
}
@@ -1865,8 +1845,7 @@ public static class Identify
sb.AppendLine().Append("CRYPTO SCRAMBLE EXT is supported");
if(ATAID.CommandSet5.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit5.DeviceConfDMA))
- sb.AppendLine().
- Append("DEVICE CONFIGURATION IDENTIFY DMA and DEVICE CONFIGURATION SET DMA are supported");
+ sb.AppendLine().Append("DEVICE CONFIGURATION IDENTIFY DMA and DEVICE CONFIGURATION SET DMA are supported");
if(ATAID.CommandSet5.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit5.ReadBufferDMA))
sb.AppendLine().Append("READ BUFFER DMA is supported");
@@ -1897,8 +1876,7 @@ public static class Identify
sb.AppendLine().Append("Read after TRIM returns empty data");
}
- if(ATAID.CommandSet5.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit5.
- LongPhysSectorAligError))
+ if(ATAID.CommandSet5.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit5.LongPhysSectorAligError))
sb.AppendLine().Append("Device supports Long Physical Sector Alignment Error Reporting Control");
if(ATAID.CommandSet5.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.CommandSetBit5.Encrypted))
@@ -1928,9 +1906,8 @@ public static class Identify
if(!ata1 &&
maxatalevel >= 8)
- if(ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.Set) &&
- !ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.
- Clear) &&
+ if(ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.Set) &&
+ !ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.Clear) &&
ATAID.TrustedComputing.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.TrustedComputingBit.
TrustedComputing))
sb.AppendLine().Append("Trusted Computing feature set is supported");
@@ -1943,8 +1920,7 @@ public static class Identify
ReadLogDMAExt))
sb.AppendLine().Append("READ LOG DMA EXT is supported");
- if(!ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
- Clear))
+ if(!ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.Clear))
if(ATAID.SATACapabilities2.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATACapabilitiesBit2.
FPDMAQ))
sb.AppendLine().Append("RECEIVE FPDMA QUEUED and SEND FPDMA QUEUED are supported");
@@ -1970,8 +1946,7 @@ public static class Identify
sb.Append(" and enabled");
}
- if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.
- InitPowerMgmt))
+ if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.InitPowerMgmt))
{
sb.AppendLine().Append("Device-initiated power management is supported");
@@ -1995,8 +1970,8 @@ public static class Identify
{
sb.AppendLine().Append("Hardware Feature Control is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SATAFeaturesBit.HardwareFeatureControl))
+ if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.
+ HardwareFeatureControl))
sb.Append(" and enabled");
}
@@ -2006,8 +1981,8 @@ public static class Identify
{
sb.AppendLine().Append("Asynchronous notification is supported");
- if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SATAFeaturesBit.AsyncNotification))
+ if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.
+ AsyncNotification))
sb.Append(" and enabled");
}
@@ -2021,8 +1996,7 @@ public static class Identify
sb.Append(" and enabled");
}
- if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.
- NCQAutoSense))
+ if(ATAID.SATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.NCQAutoSense))
sb.AppendLine().Append("NCQ Autosense is supported");
if(ATAID.EnabledSATAFeatures.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SATAFeaturesBit.
@@ -2055,21 +2029,21 @@ public static class Identify
{
sb.AppendLine("Security is enabled");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SecurityStatusBit.Locked)
- ? "Security is locked" : "Security is not locked");
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.
+ Locked) ? "Security is locked"
+ : "Security is not locked");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SecurityStatusBit.Frozen)
- ? "Security is frozen" : "Security is not frozen");
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.
+ Frozen) ? "Security is frozen"
+ : "Security is not frozen");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SecurityStatusBit.Expired)
- ? "Security count has expired" : "Security count has not expired");
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.
+ Expired) ? "Security count has expired"
+ : "Security count has not expired");
- sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.
- SecurityStatusBit.Maximum)
- ? "Security level is maximum" : "Security level is high");
+ sb.AppendLine(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.
+ Maximum) ? "Security level is maximum"
+ : "Security level is high");
}
else
sb.AppendLine("Security is not enabled");
@@ -2080,8 +2054,8 @@ public static class Identify
sb.AppendFormat("{0} minutes to complete secure erase", ATAID.SecurityEraseTime * 2).AppendLine();
if(ATAID.SecurityStatus.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SecurityStatusBit.Enhanced))
- sb.AppendFormat("{0} minutes to complete enhanced secure erase",
- ATAID.EnhancedSecurityEraseTime * 2).AppendLine();
+ sb.AppendFormat("{0} minutes to complete enhanced secure erase", ATAID.EnhancedSecurityEraseTime * 2).
+ AppendLine();
sb.AppendFormat("Master password revision code: {0}", ATAID.MasterPasswordRevisionCode).AppendLine();
}
@@ -2098,8 +2072,7 @@ public static class Identify
sb.AppendFormat("Streaming performance granularity is {0}", ATAID.StreamPerformanceGranularity);
}
- if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.
- Supported))
+ if(ATAID.SCTCommandTransport.HasFlag(CommonTypes.Structs.Devices.ATA.Identify.SCTCommandTransportBit.Supported))
{
sb.AppendLine().AppendLine("S.M.A.R.T. Command Transport (SCT):");
@@ -2184,17 +2157,17 @@ public static class Identify
ATAID.ReservedWord116 != 0xFFFF)
sb.AppendFormat("Word 116: 0x{0:X4}", ATAID.ReservedWord116).AppendLine();
- for(int i = 0; i < ATAID.ReservedWords121.Length; i++)
+ for(var i = 0; i < ATAID.ReservedWords121.Length; i++)
if(ATAID.ReservedWords121[i] != 0x0000 &&
ATAID.ReservedWords121[i] != 0xFFFF)
sb.AppendFormat("Word {1}: 0x{0:X4}", ATAID.ReservedWords121[i], 121 + i).AppendLine();
- for(int i = 0; i < ATAID.ReservedWords129.Length; i++)
+ for(var i = 0; i < ATAID.ReservedWords129.Length; i++)
if(ATAID.ReservedWords129[i] != 0x0000 &&
ATAID.ReservedWords129[i] != 0xFFFF)
sb.AppendFormat("Word {1}: 0x{0:X4}", ATAID.ReservedWords129[i], 129 + i).AppendLine();
- for(int i = 0; i < ATAID.ReservedCFA.Length; i++)
+ for(var i = 0; i < ATAID.ReservedCFA.Length; i++)
if(ATAID.ReservedCFA[i] != 0x0000 &&
ATAID.ReservedCFA[i] != 0xFFFF)
sb.AppendFormat("Word {1} (CFA): 0x{0:X4}", ATAID.ReservedCFA[i], 161 + i).AppendLine();
@@ -2227,12 +2200,12 @@ public static class Identify
ATAID.ReservedWord221 != 0xFFFF)
sb.AppendFormat("Word 221: 0x{0:X4}", ATAID.ReservedWord221).AppendLine();
- for(int i = 0; i < ATAID.ReservedCEATA224.Length; i++)
+ for(var i = 0; i < ATAID.ReservedCEATA224.Length; i++)
if(ATAID.ReservedCEATA224[i] != 0x0000 &&
ATAID.ReservedCEATA224[i] != 0xFFFF)
sb.AppendFormat("Word {1} (CE-ATA): 0x{0:X4}", ATAID.ReservedCEATA224[i], 224 + i).AppendLine();
- for(int i = 0; i < ATAID.ReservedWords.Length; i++)
+ for(var i = 0; i < ATAID.ReservedWords.Length; i++)
if(ATAID.ReservedWords[i] != 0x0000 &&
ATAID.ReservedWords[i] != 0xFFFF)
sb.AppendFormat("Word {1}: 0x{0:X4}", ATAID.ReservedWords[i], 236 + i).AppendLine();
diff --git a/ATA/Registers.cs b/ATA/Registers.cs
index d35f9fc..1f4321b 100644
--- a/ATA/Registers.cs
+++ b/ATA/Registers.cs
@@ -30,10 +30,10 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
-using System.Runtime.InteropServices;
-
namespace Aaru.Decoders.ATA;
+using System.Runtime.InteropServices;
+
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct AtaRegistersChs
{
diff --git a/Aaru.Decoders.csproj b/Aaru.Decoders.csproj
index d599fba..8ee3b21 100644
--- a/Aaru.Decoders.csproj
+++ b/Aaru.Decoders.csproj
@@ -1,244 +1,242 @@
-
- Debug
- AnyCPU
- 2.0
- {0BEB3088-B634-4289-AE17-CDF2D25D00D5}
- Library
- Aaru.Decoders
- Aaru.Decoders
- $(Version)
- false
- true
- 6.0.0-alpha8
- Claunia.com
- Copyright © 2011-2022 Natalia Portillo
- Aaru Data Preservation Suite
- Aaru.Decoders
- $(Version)
- net6
- 10
- Binary structure decoders used by the Aaru Data Preservation Suite.
- https://github.com/aaru-dps/
- LGPL-2.1-only
- https://github.com/aaru-dps/Aaru
- true
- en-US
- true
- true
- snupkg
- Natalia Portillo <claunia@claunia.com>
- true
-
-
- $(Version)+{chash:8}
- true
- true
-
-
- true
- full
- false
- bin\Debug\net6
- DEBUG;
- prompt
- 4
- false
-
-
- full
- true
- bin\Release\net6
- prompt
- 4
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- LICENSE.LGPL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- /Library/Frameworks/Mono.framework/Versions/Current/lib/mono
- /usr/lib/mono
- /usr/local/lib/mono
-
- $(BaseFrameworkPathOverrideForMono)/4.0-api
- $(BaseFrameworkPathOverrideForMono)/4.5-api
- $(BaseFrameworkPathOverrideForMono)/4.5.1-api
- $(BaseFrameworkPathOverrideForMono)/4.5.2-api
- $(BaseFrameworkPathOverrideForMono)/4.6-api
- $(BaseFrameworkPathOverrideForMono)/4.6.1-api
- $(BaseFrameworkPathOverrideForMono)/4.6.2-api
- $(BaseFrameworkPathOverrideForMono)/4.7-api
- $(BaseFrameworkPathOverrideForMono)/4.7.1-api
- true
-
- $(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)
-
+
+ Debug
+ AnyCPU
+ 2.0
+ {0BEB3088-B634-4289-AE17-CDF2D25D00D5}
+ Library
+ Aaru.Decoders
+ Aaru.Decoders
+ $(Version)
+ false
+ true
+ 6.0.0-alpha8
+ Claunia.com
+ Copyright © 2011-2022 Natalia Portillo
+ Aaru Data Preservation Suite
+ Aaru.Decoders
+ $(Version)
+ net6
+ 10
+ Binary structure decoders used by the Aaru Data Preservation Suite.
+ https://github.com/aaru-dps/
+ LGPL-2.1-only
+ https://github.com/aaru-dps/Aaru
+ true
+ en-US
+ true
+ true
+ snupkg
+ Natalia Portillo <claunia@claunia.com>
+ true
+
+
+ $(Version)+{chash:8}
+ true
+ true
+
+
+ true
+ full
+ false
+ bin\Debug\net6
+ DEBUG;
+ prompt
+ 4
+ false
+
+
+ full
+ true
+ bin\Release\net6
+ prompt
+ 4
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ LICENSE.LGPL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /Library/Frameworks/Mono.framework/Versions/Current/lib/mono
+ /usr/lib/mono
+ /usr/local/lib/mono
+
+ $(BaseFrameworkPathOverrideForMono)/4.0-api
+ $(BaseFrameworkPathOverrideForMono)/4.5-api
+ $(BaseFrameworkPathOverrideForMono)/4.5.1-api
+ $(BaseFrameworkPathOverrideForMono)/4.5.2-api
+ $(BaseFrameworkPathOverrideForMono)/4.6-api
+ $(BaseFrameworkPathOverrideForMono)/4.6.1-api
+ $(BaseFrameworkPathOverrideForMono)/4.6.2-api
+ $(BaseFrameworkPathOverrideForMono)/4.7-api
+ $(BaseFrameworkPathOverrideForMono)/4.7.1-api
+ true
+
+ $(FrameworkPathOverride)/Facades;$(AssemblySearchPaths)
+
\ No newline at end of file
diff --git a/Bluray/BCA.cs b/Bluray/BCA.cs
index 2b37d6e..07f5c30 100644
--- a/Bluray/BCA.cs
+++ b/Bluray/BCA.cs
@@ -30,14 +30,14 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.Bluray;
+
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.Bluray;
-
// Information from the following standards:
// ANSI X3.304-1997
// T10/1048-D revision 9.0
diff --git a/Bluray/Cartridge.cs b/Bluray/Cartridge.cs
index bd65083..4292d7f 100644
--- a/Bluray/Cartridge.cs
+++ b/Bluray/Cartridge.cs
@@ -30,14 +30,14 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.Bluray;
+
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.Bluray;
-
// Information from the following standards:
// ANSI X3.304-1997
// T10/1048-D revision 9.0
@@ -92,8 +92,7 @@ public static class Cartridge
if(CSResponse.Length != 8)
{
AaruConsole.DebugWriteLine("BD Cartridge Status decoder",
- "Found incorrect Blu-ray Cartridge Status size ({0} bytes)",
- CSResponse.Length);
+ "Found incorrect Blu-ray Cartridge Status size ({0} bytes)", CSResponse.Length);
return null;
}
diff --git a/Bluray/DDS.cs b/Bluray/DDS.cs
index e2c0cf4..14faa0e 100644
--- a/Bluray/DDS.cs
+++ b/Bluray/DDS.cs
@@ -30,14 +30,14 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.Bluray;
+
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.Bluray;
-
/// Information from the following standards:
/// ANSI X3.304-1997
/// T10/1048-D revision 9.0
@@ -132,8 +132,7 @@ public static class DDS
if(decoded.Signature != DDSIdentifier)
{
- AaruConsole.DebugWriteLine("BD DDS decoder", "Found incorrect DDS signature (0x{0:X4})",
- decoded.Signature);
+ AaruConsole.DebugWriteLine("BD DDS decoder", "Found incorrect DDS signature (0x{0:X4})", decoded.Signature);
return null;
}
diff --git a/Bluray/DI.cs b/Bluray/DI.cs
index 7e7c909..9536459 100644
--- a/Bluray/DI.cs
+++ b/Bluray/DI.cs
@@ -30,6 +30,8 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.Bluray;
+
using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
@@ -37,8 +39,6 @@ using System.Text;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.Bluray;
-
// Information from the following standards:
// ANSI X3.304-1997
// T10/1048-D revision 9.0
@@ -102,8 +102,7 @@ public static class DI
if(DIResponse.Length != 4100)
{
AaruConsole.DebugWriteLine("BD Disc Information decoder",
- "Found incorrect Blu-ray Disc Information size ({0} bytes)",
- DIResponse.Length);
+ "Found incorrect Blu-ray Disc Information size ({0} bytes)", DIResponse.Length);
return null;
}
@@ -115,8 +114,8 @@ public static class DI
Reserved2 = DIResponse[3]
};
- int offset = 4;
- List units = new List();
+ var offset = 4;
+ var units = new List();
while(true)
{
@@ -210,7 +209,7 @@ public static class DI
decoded.Units = new DiscInformationUnits[units.Count];
- for(int i = 0; i < units.Count; i++)
+ for(var i = 0; i < units.Count; i++)
decoded.Units[i] = units[i];
return decoded;
@@ -375,8 +374,7 @@ public static class DI
sb.AppendFormat("Last user data PSN for disc: {0}", unit.LastPsn).AppendLine();
- sb.AppendFormat("First address unit number of data zone in this layer: {0}", unit.FirstAun).
- AppendLine();
+ sb.AppendFormat("First address unit number of data zone in this layer: {0}", unit.FirstAun).AppendLine();
sb.AppendFormat("Last address unit number of data zone in this layer: {0}", unit.LastAun).AppendLine();
@@ -386,8 +384,7 @@ public static class DI
sb.AppendFormat("Disc manufacturer ID: \"{0}\"", Encoding.ASCII.GetString(unit.ManufacturerID)).
AppendLine();
- sb.AppendFormat("Disc media type ID: \"{0}\"", Encoding.ASCII.GetString(unit.MediaTypeID)).
- AppendLine();
+ sb.AppendFormat("Disc media type ID: \"{0}\"", Encoding.ASCII.GetString(unit.MediaTypeID)).AppendLine();
sb.AppendFormat("Disc timestamp: 0x{0:X2}", unit.TimeStamp).AppendLine();
sb.AppendFormat("Disc product revison number: {0}", unit.ProductRevisionNumber).AppendLine();
@@ -404,7 +401,7 @@ public static class DI
public static string ManufacturerFromDI(string manufacturerId)
{
- string manufacturer = "";
+ var manufacturer = "";
switch(manufacturerId)
{
diff --git a/Bluray/Spare.cs b/Bluray/Spare.cs
index 39cc685..a193263 100644
--- a/Bluray/Spare.cs
+++ b/Bluray/Spare.cs
@@ -30,13 +30,13 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.Bluray;
+
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.Bluray;
-
// Information from the following standards:
// ANSI X3.304-1997
// T10/1048-D revision 9.0
diff --git a/CD/ATIP.cs b/CD/ATIP.cs
index 23e65d8..9beb260 100644
--- a/CD/ATIP.cs
+++ b/CD/ATIP.cs
@@ -30,14 +30,14 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.CD;
+
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.CD;
-
// Information from the following standards:
// ANSI X3.304-1997
// T10/1048-D revision 9.0
@@ -215,8 +215,7 @@ public static class ATIP
break;
default:
- sb.AppendFormat("Reference speed set is unknown: {0}", response.ReferenceSpeed).
- AppendLine();
+ sb.AppendFormat("Reference speed set is unknown: {0}", response.ReferenceSpeed).AppendLine();
break;
}
@@ -271,9 +270,8 @@ public static class ATIP
sb.AppendFormat("ATIP Start time of Lead-in: {0}:{1:D2}:{2:D2}", response.LeadInStartMin,
response.LeadInStartSec, response.LeadInStartFrame).AppendLine();
- sb.AppendFormat("ATIP Last possible start time of Lead-out: {0}:{1:D2}:{2:D2}",
- response.LeadOutStartMin, response.LeadOutStartSec, response.LeadOutStartFrame).
- AppendLine();
+ sb.AppendFormat("ATIP Last possible start time of Lead-out: {0}:{1:D2}:{2:D2}", response.LeadOutStartMin,
+ response.LeadOutStartSec, response.LeadOutStartFrame).AppendLine();
if(response.A1Valid)
sb.AppendFormat("A1 value: 0x{0:X6}",
diff --git a/CD/CDTextOnLeadIn.cs b/CD/CDTextOnLeadIn.cs
index 1448d0e..e8a7592 100644
--- a/CD/CDTextOnLeadIn.cs
+++ b/CD/CDTextOnLeadIn.cs
@@ -30,14 +30,14 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.CD;
+
using System;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.CD;
-
// Information from the following standards:
// ANSI X3.304-1997
// T10/1048-D revision 9.0
@@ -118,17 +118,17 @@ public static class CDTextOnLeadIn
return null;
}
- for(int i = 0; i < (decoded.DataLength - 2) / 18; i++)
+ for(var i = 0; i < (decoded.DataLength - 2) / 18; i++)
{
- decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + (i * 18) + 4];
- decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + (i * 18) + 4];
- decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + (i * 18) + 4];
- decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + (i * 18) + 4] & 0x80);
- decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + (i * 18) + 4] & 0x70) >> 4);
- decoded.DataPacks[i].CharacterPosition = (byte)(CDTextResponse[3 + (i * 18) + 4] & 0x0F);
+ decoded.DataPacks[i].HeaderID1 = CDTextResponse[0 + i * 18 + 4];
+ decoded.DataPacks[i].HeaderID2 = CDTextResponse[1 + i * 18 + 4];
+ decoded.DataPacks[i].HeaderID3 = CDTextResponse[2 + i * 18 + 4];
+ decoded.DataPacks[i].DBCC = Convert.ToBoolean(CDTextResponse[3 + i * 18 + 4] & 0x80);
+ decoded.DataPacks[i].BlockNumber = (byte)((CDTextResponse[3 + i * 18 + 4] & 0x70) >> 4);
+ decoded.DataPacks[i].CharacterPosition = (byte)(CDTextResponse[3 + i * 18 + 4] & 0x0F);
decoded.DataPacks[i].TextDataField = new byte[12];
- Array.Copy(CDTextResponse, 4 + (i * 18) + 4, decoded.DataPacks[i].TextDataField, 0, 12);
- decoded.DataPacks[i].CRC = BigEndianBitConverter.ToUInt16(CDTextResponse, 16 + (i * 18) + 4);
+ Array.Copy(CDTextResponse, 4 + i * 18 + 4, decoded.DataPacks[i].TextDataField, 0, 12);
+ decoded.DataPacks[i].CRC = BigEndianBitConverter.ToUInt16(CDTextResponse, 16 + i * 18 + 4);
}
return decoded;
@@ -155,8 +155,7 @@ public static class CDTextOnLeadIn
{
// Ignore NOPs
if((descriptor.HeaderID1 & 0x80) != 0)
- sb.AppendFormat("Incorrect CD-Text pack type {0}, not decoding", descriptor.HeaderID1).
- AppendLine();
+ sb.AppendFormat("Incorrect CD-Text pack type {0}, not decoding", descriptor.HeaderID1).AppendLine();
}
else
{
@@ -322,8 +321,7 @@ public static class CDTextOnLeadIn
default:
{
sb.AppendFormat("Binary contents: {0}",
- PrintHex.ByteArrayToHexArrayString(descriptor.TextDataField, 28)).
- AppendLine();
+ PrintHex.ByteArrayToHexArrayString(descriptor.TextDataField, 28)).AppendLine();
break;
}
diff --git a/CD/Enums.cs b/CD/Enums.cs
index ea42e6c..4062b24 100644
--- a/CD/Enums.cs
+++ b/CD/Enums.cs
@@ -30,10 +30,10 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
-using System.Diagnostics.CodeAnalysis;
-
namespace Aaru.Decoders.CD;
+using System.Diagnostics.CodeAnalysis;
+
[SuppressMessage("ReSharper", "MemberCanBeInternal")]
public enum TocAdr : byte
{
diff --git a/CD/FullTOC.cs b/CD/FullTOC.cs
index 6a6ba63..c607092 100644
--- a/CD/FullTOC.cs
+++ b/CD/FullTOC.cs
@@ -30,6 +30,8 @@
// Copyright © 2011-2022 Natalia Portillo
// ****************************************************************************/
+namespace Aaru.Decoders.CD;
+
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
@@ -39,8 +41,6 @@ using Aaru.CommonTypes.Structs;
using Aaru.Console;
using Aaru.Helpers;
-namespace Aaru.Decoders.CD;
-
// Information from the following standards:
// ANSI X3.304-1997
// T10/1048-D revision 9.0
@@ -91,22 +91,22 @@ public static class FullTOC
return null;
}
- for(int i = 0; i < (decoded.DataLength - 2) / 11; i++)
+ for(var i = 0; i < (decoded.DataLength - 2) / 11; i++)
{
- decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + (i * 11) + 4];
- decoded.TrackDescriptors[i].ADR = (byte)((CDFullTOCResponse[1 + (i * 11) + 4] & 0xF0) >> 4);
- decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + (i * 11) + 4] & 0x0F);
- decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + (i * 11) + 4];
- decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + (i * 11) + 4];
- decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + (i * 11) + 4];
- decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + (i * 11) + 4];
- decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + (i * 11) + 4];
- decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + (i * 11) + 4];
- decoded.TrackDescriptors[i].HOUR = (byte)((CDFullTOCResponse[7 + (i * 11) + 4] & 0xF0) >> 4);
- decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + (i * 11) + 4] & 0x0F);
- decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + (i * 11) + 4];
- decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + (i * 11) + 4];
- decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + (i * 11) + 4];
+ decoded.TrackDescriptors[i].SessionNumber = CDFullTOCResponse[0 + i * 11 + 4];
+ decoded.TrackDescriptors[i].ADR = (byte)((CDFullTOCResponse[1 + i * 11 + 4] & 0xF0) >> 4);
+ decoded.TrackDescriptors[i].CONTROL = (byte)(CDFullTOCResponse[1 + i * 11 + 4] & 0x0F);
+ decoded.TrackDescriptors[i].TNO = CDFullTOCResponse[2 + i * 11 + 4];
+ decoded.TrackDescriptors[i].POINT = CDFullTOCResponse[3 + i * 11 + 4];
+ decoded.TrackDescriptors[i].Min = CDFullTOCResponse[4 + i * 11 + 4];
+ decoded.TrackDescriptors[i].Sec = CDFullTOCResponse[5 + i * 11 + 4];
+ decoded.TrackDescriptors[i].Frame = CDFullTOCResponse[6 + i * 11 + 4];
+ decoded.TrackDescriptors[i].Zero = CDFullTOCResponse[7 + i * 11 + 4];
+ decoded.TrackDescriptors[i].HOUR = (byte)((CDFullTOCResponse[7 + i * 11 + 4] & 0xF0) >> 4);
+ decoded.TrackDescriptors[i].PHOUR = (byte)(CDFullTOCResponse[7 + i * 11 + 4] & 0x0F);
+ decoded.TrackDescriptors[i].PMIN = CDFullTOCResponse[8 + i * 11 + 4];
+ decoded.TrackDescriptors[i].PSEC = CDFullTOCResponse[9 + i * 11 + 4];
+ decoded.TrackDescriptors[i].PFRAME = CDFullTOCResponse[10 + i * 11 + 4];
}
return decoded;
@@ -121,14 +121,14 @@ public static class FullTOC
var sb = new StringBuilder();
- int lastSession = 0;
+ var lastSession = 0;
sb.AppendFormat("First complete session number: {0}", response.FirstCompleteSession).AppendLine();
sb.AppendFormat("Last complete session number: {0}", response.LastCompleteSession).AppendLine();
foreach(TrackDataDescriptor descriptor in response.TrackDescriptors)
- if((descriptor.CONTROL & 0x08) == 0x08 ||
- (descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 && descriptor.ADR != 6) ||
+ if((descriptor.CONTROL & 0x08) == 0x08 ||
+ descriptor.ADR != 1 && descriptor.ADR != 5 && descriptor.ADR != 4 && descriptor.ADR != 6 ||
descriptor.TNO != 0)
{
sb.AppendLine("Unknown TOC entry format, printing values as-is");
@@ -292,9 +292,8 @@ public static class FullTOC
descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME,
descriptor.PHOUR).AppendLine();
else
- sb.AppendFormat("Lead-out start position: {0:D2}:{1:D2}:{2:D2}",
- descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).
- AppendLine();
+ sb.AppendFormat("Lead-out start position: {0:D2}:{1:D2}:{2:D2}", descriptor.PMIN,
+ descriptor.PSEC, descriptor.PFRAME).AppendLine();
//sb.AppendFormat("Absolute time: {3:D2}:{0:D2}:{1:D2}:{2:D2}", descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).AppendLine();
@@ -343,11 +342,10 @@ public static class FullTOC
descriptor.POINT).AppendLine();
else
{
- string type = "Audio";
+ var type = "Audio";
if((TocControl)(descriptor.CONTROL & 0x0D) == TocControl.DataTrack ||
- (TocControl)(descriptor.CONTROL & 0x0D) ==
- TocControl.DataTrackIncremental)
+ (TocControl)(descriptor.CONTROL & 0x0D) == TocControl.DataTrackIncremental)
type = "Data";
if(descriptor.PHOUR > 0)
@@ -422,8 +420,8 @@ public static class FullTOC
{
sb.
AppendFormat("Start of next possible program in the recordable area of the disc: {3:D2}:{0:D2}:{1:D2}:{2:D2}",
- descriptor.Min, descriptor.Sec, descriptor.Frame,
- descriptor.HOUR).AppendLine();
+ descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).
+ AppendLine();
sb.
AppendFormat("Maximum start of outermost Lead-out in the recordable area of the disc: {3:D2}:{0:D2}:{1:D2}:{2:D2}",
@@ -438,8 +436,7 @@ public static class FullTOC
sb.
AppendFormat("Maximum start of outermost Lead-out in the recordable area of the disc: {0:D2}:{1:D2}:{2:D2}",
- descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).
- AppendLine();
+ descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).AppendLine();
}
break;
@@ -447,8 +444,7 @@ public static class FullTOC
case 0xB1:
{
- sb.AppendFormat("Number of skip interval pointers: {0}", descriptor.PMIN).
- AppendLine();
+ sb.AppendFormat("Number of skip interval pointers: {0}", descriptor.PMIN).AppendLine();
sb.AppendFormat("Number of skip track pointers: {0}", descriptor.PSEC).AppendLine();
@@ -482,8 +478,7 @@ public static class FullTOC
else
sb.
AppendFormat("Start time of the first Lead-in area in the disc: {0:D2}:{1:D2}:{2:D2}",
- descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).
- AppendLine();
+ descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).AppendLine();
break;
}
@@ -513,19 +508,16 @@ public static class FullTOC
sb.
AppendFormat("Stop position of inner part lead-out area: {3:D2}:{0:D2}:{1:D2}:{2:D2}",
- descriptor.Min, descriptor.Sec, descriptor.Frame,
- descriptor.HOUR).AppendLine();
+ descriptor.Min, descriptor.Sec, descriptor.Frame, descriptor.HOUR).
+ AppendLine();
}
else
{
- sb.
- AppendFormat("Start position of outer part lead-in area: {0:D2}:{1:D2}:{2:D2}",
- descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).
- AppendLine();
+ sb.AppendFormat("Start position of outer part lead-in area: {0:D2}:{1:D2}:{2:D2}",
+ descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).AppendLine();
- sb.
- AppendFormat("Stop position of inner part lead-out area: {0:D2}:{1:D2}:{2:D2}",
- descriptor.Min, descriptor.Sec, descriptor.Frame).AppendLine();
+ sb.AppendFormat("Stop position of inner part lead-out area: {0:D2}:{1:D2}:{2:D2}",
+ descriptor.Min, descriptor.Sec, descriptor.Frame).AppendLine();
}
break;
@@ -538,8 +530,7 @@ public static class FullTOC
{
sb.
AppendFormat("Start time for interval that should be skipped: {0:D2}:{1:D2}:{2:D2}",
- descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).
- AppendLine();
+ descriptor.PMIN, descriptor.PSEC, descriptor.PFRAME).AppendLine();
sb.
AppendFormat("Ending time for interval that should be skipped: {0:D2}:{1:D2}:{2:D2}",
@@ -570,7 +561,7 @@ public static class FullTOC
case 6:
{
- uint id = (uint)((descriptor.Min << 16) + (descriptor.Sec << 8) + descriptor.Frame);
+ var id = (uint)((descriptor.Min << 16) + (descriptor.Sec << 8) + descriptor.Frame);
sb.AppendFormat("Disc ID: {0:X6}", id & 0x00FFFFFF).AppendLine();
break;
@@ -632,8 +623,7 @@ public static class FullTOC
public byte PFRAME;
}
- public static CDFullTOC Create(List