diff --git a/.editorconfig b/.editorconfig index 9a88a72..71a0517 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,1334 +1,1338 @@ [*] -charset = utf-8 -end_of_line = lf -indent_size = 4 -indent_style = space -insert_final_newline = false -max_line_length = 120 -tab_width = 4 -trim_trailing_whitespace = false -ij_continuation_indent_size = 8 +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = space +insert_final_newline = false +max_line_length = 120 +tab_width = 2 +trim_trailing_whitespace = false +ij_continuation_indent_size = 4 ij_formatter_off_tag = @formatter:off -ij_formatter_on_tag = @formatter:on -ij_formatter_tags_enabled = true -ij_smart_tabs = false -ij_visual_guides = -ij_wrap_on_typing = false +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = true +ij_smart_tabs = false +ij_visual_guides = +ij_wrap_on_typing = false # Microsoft .NET properties -csharp_preferred_modifier_order = public, private, protected, internal, file, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async, required:suggestion -csharp_space_after_keywords_in_control_flow_statements = false -csharp_style_namespace_declarations = file_scoped:warning -csharp_style_prefer_utf8_string_literals = true:warning -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 = outside_namespace:silent -dotnet_naming_rule.private_constants_rule.import_to_resharper = as_predefined -dotnet_naming_rule.private_constants_rule.severity = warning -dotnet_naming_rule.private_constants_rule.style = all_upper_style -dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols -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_style.all_upper_style.capitalization = all_upper -dotnet_naming_style.all_upper_style.word_separator = _ -dotnet_naming_style.lower_camel_case_style.capitalization = camel_case -dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private -dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field -dotnet_naming_symbols.private_constants_symbols.required_modifiers = const -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_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:warning -dotnet_style_parentheses_in_other_binary_operators = always_for_clarity: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 -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 +csharp_preferred_modifier_order = public, private, protected, internal, file, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async, required:suggestion +csharp_space_after_keywords_in_control_flow_statements = false +csharp_style_namespace_declarations = file_scoped:warning +csharp_style_prefer_utf8_string_literals = true:warning +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 = outside_namespace:silent +dotnet_naming_rule.private_constants_rule.import_to_resharper = as_predefined +dotnet_naming_rule.private_constants_rule.severity = warning +dotnet_naming_rule.private_constants_rule.style = all_upper_style +dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols +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_style.all_upper_style.capitalization = all_upper +dotnet_naming_style.all_upper_style.word_separator = _ +dotnet_naming_style.lower_camel_case_style.capitalization = camel_case +dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private +dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field +dotnet_naming_symbols.private_constants_symbols.required_modifiers = const +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_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:warning +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity: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 +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 # ReSharper properties -resharper_align_linq_query = true -resharper_align_multiline_argument = true -resharper_align_multiline_array_and_object_initializer = false -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_expression_braces = true -resharper_align_multiline_extends_list = true -resharper_align_multiline_for_stmt = true -resharper_align_multiline_list_pattern = 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_ternary = align_all -resharper_align_tuple_components = true -resharper_autodetect_indent_settings = true -resharper_braces_for_for = required_for_multiline -resharper_braces_for_foreach = required_for_multiline -resharper_braces_for_ifelse = required_for_multiline -resharper_braces_for_while = required_for_multiline -resharper_builtin_type_apply_to_native_integer = true -resharper_constructor_or_destructor_body = expression_body -resharper_csharp_align_first_arg_by_paren = true -resharper_csharp_empty_block_style = together_same_line -resharper_csharp_place_comments_at_first_column = true -resharper_csharp_prefer_qualified_reference = false -resharper_default_value_when_type_not_evident = default_expression -resharper_enforce_line_ending_style = true +resharper_align_first_arg_by_paren = false +resharper_align_linq_query = true +resharper_align_multiline_argument = true +resharper_align_multiline_array_and_object_initializer = false +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_expression_braces = true +resharper_align_multiline_extends_list = true +resharper_align_multiline_for_stmt = true +resharper_align_multiline_list_pattern = 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_ternary = align_all +resharper_align_tuple_components = true +resharper_autodetect_indent_settings = true +resharper_braces_for_for = required_for_multiline +resharper_braces_for_foreach = required_for_multiline +resharper_braces_for_ifelse = required_for_multiline +resharper_braces_for_while = required_for_multiline +resharper_builtin_type_apply_to_native_integer = false +resharper_constructor_or_destructor_body = expression_body +resharper_csharp_align_first_arg_by_paren = false +resharper_csharp_empty_block_style = together_same_line +resharper_csharp_place_comments_at_first_column = true +resharper_csharp_prefer_qualified_reference = false +resharper_default_value_when_type_not_evident = default_expression +resharper_enforce_line_ending_style = true resharper_formatter_off_tag = @formatter:off -resharper_formatter_on_tag = @formatter:on -resharper_formatter_tags_enabled = true -resharper_for_built_in_types = use_var_when_evident -resharper_function_declaration_return_type_style = on_single_line -resharper_function_definition_return_type_style = on_single_line -resharper_html_pi_attribute_style = first_attribute_on_single_line -resharper_indent_anonymous_method_block = true -resharper_indent_preprocessor_if = outdent -resharper_indent_preprocessor_other = outdent -resharper_indent_preprocessor_region = outdent -resharper_int_align = true -resharper_int_align_bitfield_sizes = true -resharper_int_align_comments = true -resharper_int_align_declaration_names = true -resharper_int_align_enum_initializers = true -resharper_int_align_eq = true -resharper_keep_existing_embedded_arrangement = false -resharper_keep_existing_initializer_arrangement = false -resharper_keep_existing_list_patterns_arrangement = false -resharper_keep_existing_property_patterns_arrangement = false -resharper_keep_existing_switch_expression_arrangement = false -resharper_line_break_after_colon_in_member_initializer_lists = on_single_line -resharper_line_break_before_requires_clause = on_single_line -resharper_linkage_specification_indentation = all -resharper_local_function_body = expression_body -resharper_member_initializer_list_style = on_single_line -resharper_method_or_operator_body = expression_body -resharper_outdent_binary_ops = true -resharper_outdent_binary_pattern_ops = true -resharper_outdent_commas = true -resharper_outdent_dots = true -resharper_outdent_statement_labels = true -resharper_parentheses_redundancy_style = remove -resharper_place_attribute_on_same_line = false -resharper_place_simple_embedded_statement_on_same_line = false -resharper_qualified_using_at_nested_scope = true -resharper_show_autodetect_configure_formatting_tip = false -resharper_simple_block_style = on_single_line -resharper_simple_case_statement_style = line_break -resharper_simple_embedded_statement_style = on_single_line -resharper_space_after_ptr_in_data_member = false -resharper_space_after_ptr_in_method = false -resharper_space_after_ref_in_data_member = false -resharper_space_after_ref_in_method = false -resharper_space_before_ptr_in_data_member = true -resharper_space_before_ptr_in_method = true -resharper_space_before_ref_in_data_member = true -resharper_space_before_ref_in_method = true -resharper_space_before_template_params = false -resharper_space_within_empty_braces = false -resharper_toplevel_function_declaration_return_type_style = on_single_line -resharper_toplevel_function_definition_return_type_style = on_single_line -resharper_use_indent_from_vs = false -resharper_wrap_after_dot_in_method_calls = true -resharper_wrap_base_clause_style = chop_if_long -resharper_wrap_braced_init_list_style = chop_if_long -resharper_wrap_ctor_initializer_style = chop_if_long -resharper_wrap_lines = true -resharper_xmldoc_attribute_indent = align_by_first_attribute -resharper_xmldoc_attribute_style = first_attribute_on_single_line -resharper_xmldoc_pi_attribute_style = first_attribute_on_single_line +resharper_formatter_on_tag = @formatter:on +resharper_formatter_tags_enabled = true +resharper_for_built_in_types = use_var_when_evident +resharper_function_declaration_return_type_style = on_single_line +resharper_function_definition_return_type_style = on_single_line +resharper_html_pi_attribute_style = first_attribute_on_single_line +resharper_indent_anonymous_method_block = false +resharper_indent_preprocessor_if = outdent +resharper_indent_preprocessor_other = outdent +resharper_indent_preprocessor_region = outdent +resharper_int_align = true +resharper_int_align_bitfield_sizes = true +resharper_int_align_comments = true +resharper_int_align_declaration_names = true +resharper_int_align_enum_initializers = true +resharper_int_align_eq = true +resharper_keep_existing_embedded_arrangement = false +resharper_keep_existing_initializer_arrangement = false +resharper_keep_existing_list_patterns_arrangement = false +resharper_keep_existing_property_patterns_arrangement = false +resharper_keep_existing_switch_expression_arrangement = false +resharper_line_break_after_colon_in_member_initializer_lists = on_single_line +resharper_line_break_before_requires_clause = on_single_line +resharper_linkage_specification_indentation = all +resharper_local_function_body = expression_body +resharper_member_initializer_list_style = on_single_line +resharper_method_or_operator_body = expression_body +resharper_outdent_binary_ops = true +resharper_outdent_binary_pattern_ops = true +resharper_outdent_commas = true +resharper_outdent_dots = true +resharper_outdent_statement_labels = true +resharper_parentheses_redundancy_style = remove +resharper_place_attribute_on_same_line = false +resharper_place_simple_embedded_statement_on_same_line = false +resharper_qualified_using_at_nested_scope = true +resharper_show_autodetect_configure_formatting_tip = false +resharper_simple_block_style = on_single_line +resharper_simple_case_statement_style = line_break +resharper_simple_embedded_statement_style = on_single_line +resharper_space_after_ptr_in_data_member = false +resharper_space_after_ptr_in_method = false +resharper_space_after_ref_in_data_member = false +resharper_space_after_ref_in_method = false +resharper_space_before_ptr_in_data_member = true +resharper_space_before_ptr_in_method = true +resharper_space_before_ref_in_data_member = true +resharper_space_before_ref_in_method = true +resharper_space_before_template_params = false +resharper_space_within_empty_braces = false +resharper_toplevel_function_declaration_return_type_style = on_single_line +resharper_toplevel_function_definition_return_type_style = on_single_line +resharper_use_indent_from_vs = false +resharper_wrap_after_dot_in_method_calls = true +resharper_wrap_base_clause_style = chop_if_long +resharper_wrap_braced_init_list_style = chop_if_long +resharper_wrap_ctor_initializer_style = chop_if_long +resharper_wrap_lines = true +resharper_xmldoc_attribute_indent = align_by_first_attribute +resharper_xmldoc_attribute_style = first_attribute_on_single_line +resharper_xmldoc_pi_attribute_style = first_attribute_on_single_line # 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_arguments_style_anonymous_function_highlighting = warning -resharper_arguments_style_literal_highlighting = warning -resharper_arguments_style_named_expression_highlighting = warning -resharper_arguments_style_other_highlighting = warning -resharper_arguments_style_string_literal_highlighting = warning -resharper_arrange_accessor_owner_body_highlighting = warning -resharper_arrange_constructor_or_destructor_body_highlighting = warning -resharper_arrange_local_function_body_highlighting = warning -resharper_arrange_method_or_operator_body_highlighting = warning -resharper_arrange_redundant_parentheses_highlighting = hint -resharper_arrange_static_member_qualifier_highlighting = warning -resharper_arrange_this_qualifier_highlighting = hint -resharper_arrange_trailing_comma_in_multiline_lists_highlighting = warning -resharper_arrange_trailing_comma_in_singleline_lists_highlighting = warning -resharper_arrange_type_member_modifiers_highlighting = hint -resharper_arrange_type_modifiers_highlighting = hint -resharper_arrange_var_keywords_in_deconstructing_declaration_highlighting = warning -resharper_async_void_method_highlighting = warning -resharper_auto_property_can_be_made_get_only_global_highlighting = warning -resharper_auto_property_can_be_made_get_only_local_highlighting = warning -resharper_bad_attribute_brackets_spaces_highlighting = warning -resharper_bad_braces_spaces_highlighting = warning -resharper_bad_colon_spaces_highlighting = warning -resharper_bad_comma_spaces_highlighting = warning -resharper_bad_control_braces_indent_highlighting = warning -resharper_bad_control_braces_line_breaks_highlighting = warning -resharper_bad_declaration_braces_indent_highlighting = warning -resharper_bad_declaration_braces_line_breaks_highlighting = warning -resharper_bad_empty_braces_line_breaks_highlighting = warning -resharper_bad_expression_braces_indent_highlighting = warning -resharper_bad_expression_braces_line_breaks_highlighting = warning -resharper_bad_generic_brackets_spaces_highlighting = warning -resharper_bad_indent_highlighting = warning -resharper_bad_linq_line_breaks_highlighting = warning -resharper_bad_member_access_spaces_highlighting = warning -resharper_bad_namespace_braces_indent_highlighting = warning -resharper_bad_parens_line_breaks_highlighting = warning -resharper_bad_parens_spaces_highlighting = warning -resharper_bad_preprocessor_indent_highlighting = warning -resharper_bad_semicolon_spaces_highlighting = warning -resharper_bad_spaces_after_keyword_highlighting = warning -resharper_bad_square_brackets_spaces_highlighting = warning -resharper_bad_switch_braces_indent_highlighting = warning -resharper_bad_symbol_spaces_highlighting = warning -resharper_built_in_type_reference_style_for_member_access_highlighting = hint -resharper_built_in_type_reference_style_highlighting = hint -resharper_check_for_reference_equality_instead_1_highlighting = warning -resharper_check_for_reference_equality_instead_2_highlighting = warning -resharper_check_for_reference_equality_instead_3_highlighting = warning -resharper_check_for_reference_equality_instead_4_highlighting = warning -resharper_class_can_be_sealed_global_highlighting = warning -resharper_class_can_be_sealed_local_highlighting = warning -resharper_class_never_instantiated_global_highlighting = warning -resharper_class_never_instantiated_local_highlighting = warning -resharper_class_with_virtual_members_never_inherited_global_highlighting = warning -resharper_class_with_virtual_members_never_inherited_local_highlighting = warning -resharper_comment_typo_highlighting = none -resharper_compare_non_constrained_generic_with_null_highlighting = warning -resharper_convert_closure_to_method_group_highlighting = warning -resharper_convert_conditional_ternary_expression_to_switch_expression_highlighting = warning -resharper_convert_if_do_to_while_highlighting = warning -resharper_convert_if_statement_to_conditional_ternary_expression_highlighting = warning -resharper_convert_if_statement_to_null_coalescing_assignment_highlighting = warning -resharper_convert_if_statement_to_null_coalescing_expression_highlighting = warning -resharper_convert_if_statement_to_return_statement_highlighting = warning -resharper_convert_if_statement_to_switch_statement_highlighting = warning -resharper_convert_if_to_or_expression_highlighting = warning -resharper_convert_nullable_to_short_form_highlighting = warning -resharper_convert_switch_statement_to_switch_expression_highlighting = warning -resharper_convert_to_auto_property_highlighting = warning -resharper_convert_to_auto_property_when_possible_highlighting = warning -resharper_convert_to_auto_property_with_private_setter_highlighting = warning -resharper_convert_to_compound_assignment_highlighting = warning -resharper_convert_to_constant_global_highlighting = warning -resharper_convert_to_constant_local_highlighting = warning -resharper_convert_to_lambda_expression_highlighting = warning -resharper_convert_to_local_function_highlighting = warning -resharper_convert_to_null_coalescing_compound_assignment_highlighting = warning -resharper_convert_to_primary_constructor_highlighting = warning -resharper_convert_to_static_class_highlighting = warning -resharper_convert_to_using_declaration_highlighting = warning -resharper_cpp_enforce_cv_qualifiers_order_highlighting = hint -resharper_cpp_enforce_cv_qualifiers_placement_highlighting = hint -resharper_cpp_enforce_do_statement_braces_highlighting = hint -resharper_cpp_enforce_for_statement_braces_highlighting = hint -resharper_cpp_enforce_function_declaration_style_highlighting = hint -resharper_cpp_enforce_if_statement_braces_highlighting = hint -resharper_cpp_enforce_type_alias_code_style_highlighting = hint -resharper_cpp_enforce_while_statement_braces_highlighting = hint -resharper_cpp_remove_redundant_braces_highlighting = hint -resharper_double_negation_in_pattern_highlighting = warning -resharper_double_negation_operator_highlighting = warning -resharper_event_never_invoked_global_highlighting = warning -resharper_event_never_subscribed_to_global_highlighting = warning -resharper_event_never_subscribed_to_local_highlighting = warning -resharper_field_can_be_made_read_only_global_highlighting = warning -resharper_field_can_be_made_read_only_local_highlighting = warning -resharper_foreach_can_be_converted_to_query_using_another_get_enumerator_highlighting = warning -resharper_foreach_can_be_partly_converted_to_query_using_another_get_enumerator_highlighting = none -resharper_for_can_be_converted_to_foreach_highlighting = warning -resharper_heap_view_boxing_allocation_highlighting = none -resharper_heap_view_closure_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_identifier_typo_highlighting = none -resharper_incorrect_blank_lines_near_braces_highlighting = warning -resharper_inheritdoc_consider_usage_highlighting = warning -resharper_inline_out_variable_declaration_highlighting = warning -resharper_inline_temporary_variable_highlighting = warning -resharper_introduce_optional_parameters_global_highlighting = warning -resharper_introduce_optional_parameters_local_highlighting = warning -resharper_invert_condition_1_highlighting = warning -resharper_invert_if_highlighting = warning -resharper_invocation_is_skipped_highlighting = warning -resharper_invoke_as_extension_method_highlighting = warning -resharper_join_declaration_and_initializer_highlighting = warning -resharper_join_null_check_with_usage_highlighting = warning -resharper_lambda_expression_must_be_static_highlighting = warning -resharper_local_function_can_be_made_static_highlighting = warning -resharper_loop_can_be_converted_to_query_highlighting = warning -resharper_loop_can_be_partly_converted_to_query_highlighting = warning -resharper_member_can_be_file_local_highlighting = warning -resharper_member_can_be_internal_highlighting = warning -resharper_member_can_be_made_static_global_highlighting = warning -resharper_member_can_be_made_static_local_highlighting = warning -resharper_member_can_be_private_global_highlighting = warning -resharper_member_can_be_private_local_highlighting = warning -resharper_member_can_be_protected_global_highlighting = warning -resharper_member_can_be_protected_local_highlighting = warning -resharper_merge_and_pattern_highlighting = warning -resharper_merge_cast_with_type_check_highlighting = warning -resharper_merge_conditional_expression_highlighting = warning -resharper_merge_into_logical_pattern_highlighting = warning -resharper_merge_into_negated_pattern_highlighting = warning -resharper_merge_into_pattern_highlighting = warning -resharper_merge_nested_property_patterns_highlighting = warning -resharper_merge_sequential_checks_highlighting = warning -resharper_method_has_async_overload_highlighting = warning -resharper_method_has_async_overload_with_cancellation_highlighting = warning -resharper_method_supports_cancellation_highlighting = warning -resharper_missing_blank_lines_highlighting = warning -resharper_missing_linebreak_highlighting = warning -resharper_missing_space_highlighting = warning -resharper_more_specific_foreach_variable_type_available_highlighting = warning -resharper_move_to_existing_positional_deconstruction_pattern_highlighting = warning -resharper_move_variable_declaration_inside_loop_condition_highlighting = warning -resharper_multiple_spaces_highlighting = warning -resharper_multiple_statements_on_one_line_highlighting = warning -resharper_multiple_type_members_on_one_line_highlighting = warning -resharper_negation_of_relational_pattern_highlighting = warning -resharper_negative_equality_expression_highlighting = warning -resharper_nested_string_interpolation_highlighting = warning -resharper_not_accessed_field_global_highlighting = warning -resharper_nullable_warning_suppression_is_used_highlighting = warning -resharper_outdent_is_off_prev_level_highlighting = warning -resharper_out_parameter_value_is_always_discarded_global_highlighting = warning -resharper_parameter_only_used_for_precondition_check_global_highlighting = warning -resharper_parameter_type_can_be_enumerable_global_highlighting = warning -resharper_parameter_type_can_be_enumerable_local_highlighting = warning -resharper_pass_string_interpolation_highlighting = warning -resharper_possible_unintended_queryable_as_enumerable_highlighting = warning -resharper_property_can_be_made_init_only_global_highlighting = warning -resharper_property_can_be_made_init_only_local_highlighting = warning -resharper_public_constructor_in_abstract_class_highlighting = warning -resharper_raw_string_can_be_simplified_highlighting = warning -resharper_redundant_accessor_body_highlighting = warning -resharper_redundant_always_match_subpattern_highlighting = warning -resharper_redundant_array_creation_expression_highlighting = warning -resharper_redundant_attribute_parentheses_highlighting = warning -resharper_redundant_attribute_usage_property_highlighting = warning -resharper_redundant_base_qualifier_highlighting = warning -resharper_redundant_blank_lines_highlighting = warning -resharper_redundant_collection_initializer_element_braces_highlighting = warning -resharper_redundant_configure_await_highlighting = warning -resharper_redundant_declaration_semicolon_highlighting = warning -resharper_redundant_discard_designation_highlighting = warning -resharper_redundant_empty_object_creation_argument_list_highlighting = warning -resharper_redundant_enum_case_label_for_default_section_highlighting = warning -resharper_redundant_explicit_params_array_creation_highlighting = warning -resharper_redundant_fixed_pointer_declaration_highlighting = warning -resharper_redundant_if_else_block_highlighting = warning -resharper_redundant_immediate_delegate_invocation_highlighting = warning -resharper_redundant_is_before_relational_pattern_highlighting = warning -resharper_redundant_lambda_signature_parentheses_highlighting = warning -resharper_redundant_overload_global_highlighting = warning -resharper_redundant_overload_local_highlighting = warning -resharper_redundant_pattern_parentheses_highlighting = warning -resharper_redundant_property_pattern_clause_highlighting = warning -resharper_redundant_query_order_by_ascending_keyword_highlighting = warning -resharper_redundant_range_bound_highlighting = warning -resharper_redundant_readonly_modifier_highlighting = warning -resharper_redundant_space_highlighting = warning -resharper_redundant_string_interpolation_highlighting = warning -resharper_redundant_to_string_call_for_value_type_highlighting = warning -resharper_redundant_verbatim_prefix_highlighting = warning -resharper_redundant_verbatim_string_prefix_highlighting = warning -resharper_redundant_with_expression_highlighting = warning -resharper_remove_constructor_invocation_highlighting = warning -resharper_remove_redundant_braces_highlighting = warning -resharper_remove_redundant_or_statement_false_highlighting = warning -resharper_remove_redundant_or_statement_true_highlighting = warning -resharper_remove_to_list_1_highlighting = warning -resharper_remove_to_list_2_highlighting = warning -resharper_replace_auto_property_with_computed_property_highlighting = warning -resharper_replace_conditional_expression_with_null_coalescing_highlighting = warning -resharper_replace_object_pattern_with_var_pattern_highlighting = warning -resharper_replace_slice_with_range_indexer_highlighting = warning -resharper_replace_substring_with_range_indexer_highlighting = warning -resharper_replace_with_field_keyword_highlighting = warning -resharper_replace_with_first_or_default_1_highlighting = warning -resharper_replace_with_first_or_default_2_highlighting = warning -resharper_replace_with_first_or_default_3_highlighting = warning -resharper_replace_with_first_or_default_4_highlighting = warning -resharper_replace_with_last_or_default_1_highlighting = warning -resharper_replace_with_last_or_default_2_highlighting = warning -resharper_replace_with_last_or_default_3_highlighting = warning -resharper_replace_with_last_or_default_4_highlighting = warning -resharper_replace_with_of_type_1_highlighting = warning -resharper_replace_with_of_type_2_highlighting = warning -resharper_replace_with_of_type_3_highlighting = warning -resharper_replace_with_of_type_any_1_highlighting = warning -resharper_replace_with_of_type_any_2_highlighting = warning -resharper_replace_with_of_type_count_1_highlighting = warning -resharper_replace_with_of_type_count_2_highlighting = warning -resharper_replace_with_of_type_first_1_highlighting = warning -resharper_replace_with_of_type_first_2_highlighting = warning -resharper_replace_with_of_type_first_or_default_1_highlighting = warning -resharper_replace_with_of_type_first_or_default_2_highlighting = warning -resharper_replace_with_of_type_last_1_highlighting = warning -resharper_replace_with_of_type_last_2_highlighting = warning -resharper_replace_with_of_type_last_or_default_1_highlighting = warning -resharper_replace_with_of_type_last_or_default_2_highlighting = warning -resharper_replace_with_of_type_long_count_highlighting = warning -resharper_replace_with_of_type_single_1_highlighting = warning -resharper_replace_with_of_type_single_2_highlighting = warning -resharper_replace_with_of_type_single_or_default_1_highlighting = warning -resharper_replace_with_of_type_single_or_default_2_highlighting = warning -resharper_replace_with_of_type_where_highlighting = warning -resharper_replace_with_simple_assignment_false_highlighting = warning -resharper_replace_with_simple_assignment_true_highlighting = warning -resharper_replace_with_single_assignment_false_highlighting = warning -resharper_replace_with_single_assignment_true_highlighting = warning -resharper_replace_with_single_call_to_any_highlighting = warning -resharper_replace_with_single_call_to_count_highlighting = warning -resharper_replace_with_single_call_to_first_highlighting = warning -resharper_replace_with_single_call_to_first_or_default_highlighting = warning -resharper_replace_with_single_call_to_last_highlighting = warning -resharper_replace_with_single_call_to_last_or_default_highlighting = warning -resharper_replace_with_single_call_to_single_highlighting = warning -resharper_replace_with_single_call_to_single_or_default_highlighting = warning -resharper_replace_with_single_or_default_1_highlighting = warning -resharper_replace_with_single_or_default_2_highlighting = warning -resharper_replace_with_single_or_default_3_highlighting = warning -resharper_replace_with_single_or_default_4_highlighting = warning -resharper_replace_with_string_is_null_or_empty_highlighting = warning -resharper_return_type_can_be_enumerable_global_highlighting = warning -resharper_return_type_can_be_enumerable_local_highlighting = warning -resharper_safe_cast_is_used_as_type_check_highlighting = warning -resharper_separate_control_transfer_statement_highlighting = warning -resharper_similar_anonymous_type_nearby_highlighting = warning -resharper_simplify_conditional_ternary_expression_highlighting = warning -resharper_simplify_linq_expression_use_all_highlighting = warning -resharper_simplify_linq_expression_use_any_highlighting = warning -resharper_simplify_linq_expression_use_min_by_and_max_by_highlighting = warning -resharper_simplify_string_interpolation_highlighting = warning -resharper_specify_string_comparison_highlighting = warning -resharper_string_ends_with_is_culture_specific_highlighting = warning -resharper_string_literal_as_interpolation_argument_highlighting = warning -resharper_string_literal_typo_highlighting = warning -resharper_string_starts_with_is_culture_specific_highlighting = warning -resharper_struct_can_be_made_read_only_highlighting = warning -resharper_struct_member_can_be_made_read_only_highlighting = warning -resharper_suggest_base_type_for_parameter_highlighting = none -resharper_suggest_base_type_for_parameter_in_constructor_highlighting = warning -resharper_suggest_var_or_type_built_in_types_highlighting = hint -resharper_suggest_var_or_type_deconstruction_declarations_highlighting = warning -resharper_suggest_var_or_type_elsewhere_highlighting = hint -resharper_suggest_var_or_type_simple_types_highlighting = hint -resharper_swap_via_deconstruction_highlighting = warning +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_arguments_style_anonymous_function_highlighting = warning +resharper_arguments_style_literal_highlighting = warning +resharper_arguments_style_named_expression_highlighting = warning +resharper_arguments_style_other_highlighting = warning +resharper_arguments_style_string_literal_highlighting = warning +resharper_arrange_accessor_owner_body_highlighting = warning +resharper_arrange_constructor_or_destructor_body_highlighting = warning +resharper_arrange_local_function_body_highlighting = warning +resharper_arrange_method_or_operator_body_highlighting = warning +resharper_arrange_redundant_parentheses_highlighting = hint +resharper_arrange_static_member_qualifier_highlighting = warning +resharper_arrange_this_qualifier_highlighting = hint +resharper_arrange_trailing_comma_in_multiline_lists_highlighting = warning +resharper_arrange_trailing_comma_in_singleline_lists_highlighting = warning +resharper_arrange_type_member_modifiers_highlighting = hint +resharper_arrange_type_modifiers_highlighting = hint +resharper_arrange_var_keywords_in_deconstructing_declaration_highlighting = warning +resharper_async_void_method_highlighting = warning +resharper_auto_property_can_be_made_get_only_global_highlighting = warning +resharper_auto_property_can_be_made_get_only_local_highlighting = warning +resharper_bad_attribute_brackets_spaces_highlighting = warning +resharper_bad_braces_spaces_highlighting = warning +resharper_bad_colon_spaces_highlighting = warning +resharper_bad_comma_spaces_highlighting = warning +resharper_bad_control_braces_indent_highlighting = warning +resharper_bad_control_braces_line_breaks_highlighting = warning +resharper_bad_declaration_braces_indent_highlighting = warning +resharper_bad_declaration_braces_line_breaks_highlighting = warning +resharper_bad_empty_braces_line_breaks_highlighting = warning +resharper_bad_expression_braces_indent_highlighting = warning +resharper_bad_expression_braces_line_breaks_highlighting = warning +resharper_bad_generic_brackets_spaces_highlighting = warning +resharper_bad_indent_highlighting = warning +resharper_bad_linq_line_breaks_highlighting = warning +resharper_bad_member_access_spaces_highlighting = warning +resharper_bad_namespace_braces_indent_highlighting = warning +resharper_bad_parens_line_breaks_highlighting = warning +resharper_bad_parens_spaces_highlighting = warning +resharper_bad_preprocessor_indent_highlighting = warning +resharper_bad_semicolon_spaces_highlighting = warning +resharper_bad_spaces_after_keyword_highlighting = warning +resharper_bad_square_brackets_spaces_highlighting = warning +resharper_bad_switch_braces_indent_highlighting = warning +resharper_bad_symbol_spaces_highlighting = warning +resharper_built_in_type_reference_style_for_member_access_highlighting = hint +resharper_built_in_type_reference_style_highlighting = hint +resharper_check_for_reference_equality_instead_1_highlighting = warning +resharper_check_for_reference_equality_instead_2_highlighting = warning +resharper_check_for_reference_equality_instead_3_highlighting = warning +resharper_check_for_reference_equality_instead_4_highlighting = warning +resharper_class_can_be_sealed_global_highlighting = warning +resharper_class_can_be_sealed_local_highlighting = warning +resharper_class_never_instantiated_global_highlighting = warning +resharper_class_never_instantiated_local_highlighting = warning +resharper_class_with_virtual_members_never_inherited_global_highlighting = warning +resharper_class_with_virtual_members_never_inherited_local_highlighting = warning +resharper_comment_typo_highlighting = none +resharper_compare_non_constrained_generic_with_null_highlighting = warning +resharper_convert_closure_to_method_group_highlighting = warning +resharper_convert_conditional_ternary_expression_to_switch_expression_highlighting = warning +resharper_convert_if_do_to_while_highlighting = warning +resharper_convert_if_statement_to_conditional_ternary_expression_highlighting = warning +resharper_convert_if_statement_to_null_coalescing_assignment_highlighting = warning +resharper_convert_if_statement_to_null_coalescing_expression_highlighting = warning +resharper_convert_if_statement_to_return_statement_highlighting = warning +resharper_convert_if_statement_to_switch_statement_highlighting = warning +resharper_convert_if_to_or_expression_highlighting = warning +resharper_convert_nullable_to_short_form_highlighting = warning +resharper_convert_switch_statement_to_switch_expression_highlighting = warning +resharper_convert_to_auto_property_highlighting = warning +resharper_convert_to_auto_property_when_possible_highlighting = warning +resharper_convert_to_auto_property_with_private_setter_highlighting = warning +resharper_convert_to_compound_assignment_highlighting = warning +resharper_convert_to_constant_global_highlighting = warning +resharper_convert_to_constant_local_highlighting = warning +resharper_convert_to_lambda_expression_highlighting = warning +resharper_convert_to_local_function_highlighting = warning +resharper_convert_to_null_coalescing_compound_assignment_highlighting = warning +resharper_convert_to_primary_constructor_highlighting = warning +resharper_convert_to_static_class_highlighting = warning +resharper_convert_to_using_declaration_highlighting = warning +resharper_cpp_enforce_cv_qualifiers_order_highlighting = hint +resharper_cpp_enforce_cv_qualifiers_placement_highlighting = hint +resharper_cpp_enforce_do_statement_braces_highlighting = hint +resharper_cpp_enforce_for_statement_braces_highlighting = hint +resharper_cpp_enforce_function_declaration_style_highlighting = hint +resharper_cpp_enforce_if_statement_braces_highlighting = hint +resharper_cpp_enforce_type_alias_code_style_highlighting = hint +resharper_cpp_enforce_while_statement_braces_highlighting = hint +resharper_cpp_remove_redundant_braces_highlighting = hint +resharper_double_negation_in_pattern_highlighting = warning +resharper_double_negation_operator_highlighting = warning +resharper_event_never_invoked_global_highlighting = warning +resharper_event_never_subscribed_to_global_highlighting = warning +resharper_event_never_subscribed_to_local_highlighting = warning +resharper_field_can_be_made_read_only_global_highlighting = warning +resharper_field_can_be_made_read_only_local_highlighting = warning +resharper_foreach_can_be_converted_to_query_using_another_get_enumerator_highlighting = warning +resharper_foreach_can_be_partly_converted_to_query_using_another_get_enumerator_highlighting = none +resharper_for_can_be_converted_to_foreach_highlighting = warning +resharper_heap_view_boxing_allocation_highlighting = none +resharper_heap_view_closure_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_identifier_typo_highlighting = none +resharper_incorrect_blank_lines_near_braces_highlighting = warning +resharper_inheritdoc_consider_usage_highlighting = warning +resharper_inline_out_variable_declaration_highlighting = warning +resharper_inline_temporary_variable_highlighting = warning +resharper_introduce_optional_parameters_global_highlighting = warning +resharper_introduce_optional_parameters_local_highlighting = warning +resharper_invert_condition_1_highlighting = warning +resharper_invert_if_highlighting = warning +resharper_invocation_is_skipped_highlighting = warning +resharper_invoke_as_extension_method_highlighting = warning +resharper_join_declaration_and_initializer_highlighting = warning +resharper_join_null_check_with_usage_highlighting = warning +resharper_lambda_expression_must_be_static_highlighting = warning +resharper_local_function_can_be_made_static_highlighting = warning +resharper_loop_can_be_converted_to_query_highlighting = warning +resharper_loop_can_be_partly_converted_to_query_highlighting = warning +resharper_member_can_be_file_local_highlighting = warning +resharper_member_can_be_internal_highlighting = warning +resharper_member_can_be_made_static_global_highlighting = warning +resharper_member_can_be_made_static_local_highlighting = warning +resharper_member_can_be_private_global_highlighting = warning +resharper_member_can_be_private_local_highlighting = warning +resharper_member_can_be_protected_global_highlighting = warning +resharper_member_can_be_protected_local_highlighting = warning +resharper_merge_and_pattern_highlighting = warning +resharper_merge_cast_with_type_check_highlighting = warning +resharper_merge_conditional_expression_highlighting = warning +resharper_merge_into_logical_pattern_highlighting = warning +resharper_merge_into_negated_pattern_highlighting = warning +resharper_merge_into_pattern_highlighting = warning +resharper_merge_nested_property_patterns_highlighting = warning +resharper_merge_sequential_checks_highlighting = warning +resharper_method_has_async_overload_highlighting = warning +resharper_method_has_async_overload_with_cancellation_highlighting = warning +resharper_method_supports_cancellation_highlighting = warning +resharper_missing_blank_lines_highlighting = warning +resharper_missing_linebreak_highlighting = warning +resharper_missing_space_highlighting = warning +resharper_more_specific_foreach_variable_type_available_highlighting = warning +resharper_move_to_existing_positional_deconstruction_pattern_highlighting = warning +resharper_move_variable_declaration_inside_loop_condition_highlighting = warning +resharper_multiple_spaces_highlighting = warning +resharper_multiple_statements_on_one_line_highlighting = warning +resharper_multiple_type_members_on_one_line_highlighting = warning +resharper_negation_of_relational_pattern_highlighting = warning +resharper_negative_equality_expression_highlighting = warning +resharper_nested_string_interpolation_highlighting = warning +resharper_not_accessed_field_global_highlighting = warning +resharper_nullable_warning_suppression_is_used_highlighting = warning +resharper_outdent_is_off_prev_level_highlighting = warning +resharper_out_parameter_value_is_always_discarded_global_highlighting = warning +resharper_parameter_only_used_for_precondition_check_global_highlighting = warning +resharper_parameter_type_can_be_enumerable_global_highlighting = warning +resharper_parameter_type_can_be_enumerable_local_highlighting = warning +resharper_pass_string_interpolation_highlighting = warning +resharper_possible_unintended_queryable_as_enumerable_highlighting = warning +resharper_property_can_be_made_init_only_global_highlighting = warning +resharper_property_can_be_made_init_only_local_highlighting = warning +resharper_public_constructor_in_abstract_class_highlighting = warning +resharper_raw_string_can_be_simplified_highlighting = warning +resharper_redundant_accessor_body_highlighting = warning +resharper_redundant_always_match_subpattern_highlighting = warning +resharper_redundant_array_creation_expression_highlighting = warning +resharper_redundant_attribute_parentheses_highlighting = warning +resharper_redundant_attribute_usage_property_highlighting = warning +resharper_redundant_base_qualifier_highlighting = warning +resharper_redundant_blank_lines_highlighting = warning +resharper_redundant_collection_initializer_element_braces_highlighting = warning +resharper_redundant_configure_await_highlighting = warning +resharper_redundant_declaration_semicolon_highlighting = warning +resharper_redundant_discard_designation_highlighting = warning +resharper_redundant_empty_object_creation_argument_list_highlighting = warning +resharper_redundant_enum_case_label_for_default_section_highlighting = warning +resharper_redundant_explicit_params_array_creation_highlighting = warning +resharper_redundant_fixed_pointer_declaration_highlighting = warning +resharper_redundant_if_else_block_highlighting = warning +resharper_redundant_immediate_delegate_invocation_highlighting = warning +resharper_redundant_is_before_relational_pattern_highlighting = warning +resharper_redundant_lambda_signature_parentheses_highlighting = warning +resharper_redundant_overload_global_highlighting = warning +resharper_redundant_overload_local_highlighting = warning +resharper_redundant_pattern_parentheses_highlighting = warning +resharper_redundant_property_pattern_clause_highlighting = warning +resharper_redundant_query_order_by_ascending_keyword_highlighting = warning +resharper_redundant_range_bound_highlighting = warning +resharper_redundant_readonly_modifier_highlighting = warning +resharper_redundant_space_highlighting = warning +resharper_redundant_string_interpolation_highlighting = warning +resharper_redundant_to_string_call_for_value_type_highlighting = warning +resharper_redundant_verbatim_prefix_highlighting = warning +resharper_redundant_verbatim_string_prefix_highlighting = warning +resharper_redundant_with_expression_highlighting = warning +resharper_remove_constructor_invocation_highlighting = warning +resharper_remove_redundant_braces_highlighting = warning +resharper_remove_redundant_or_statement_false_highlighting = warning +resharper_remove_redundant_or_statement_true_highlighting = warning +resharper_remove_to_list_1_highlighting = warning +resharper_remove_to_list_2_highlighting = warning +resharper_replace_auto_property_with_computed_property_highlighting = warning +resharper_replace_conditional_expression_with_null_coalescing_highlighting = warning +resharper_replace_object_pattern_with_var_pattern_highlighting = warning +resharper_replace_slice_with_range_indexer_highlighting = warning +resharper_replace_substring_with_range_indexer_highlighting = warning +resharper_replace_with_field_keyword_highlighting = warning +resharper_replace_with_first_or_default_1_highlighting = warning +resharper_replace_with_first_or_default_2_highlighting = warning +resharper_replace_with_first_or_default_3_highlighting = warning +resharper_replace_with_first_or_default_4_highlighting = warning +resharper_replace_with_last_or_default_1_highlighting = warning +resharper_replace_with_last_or_default_2_highlighting = warning +resharper_replace_with_last_or_default_3_highlighting = warning +resharper_replace_with_last_or_default_4_highlighting = warning +resharper_replace_with_of_type_1_highlighting = warning +resharper_replace_with_of_type_2_highlighting = warning +resharper_replace_with_of_type_3_highlighting = warning +resharper_replace_with_of_type_any_1_highlighting = warning +resharper_replace_with_of_type_any_2_highlighting = warning +resharper_replace_with_of_type_count_1_highlighting = warning +resharper_replace_with_of_type_count_2_highlighting = warning +resharper_replace_with_of_type_first_1_highlighting = warning +resharper_replace_with_of_type_first_2_highlighting = warning +resharper_replace_with_of_type_first_or_default_1_highlighting = warning +resharper_replace_with_of_type_first_or_default_2_highlighting = warning +resharper_replace_with_of_type_last_1_highlighting = warning +resharper_replace_with_of_type_last_2_highlighting = warning +resharper_replace_with_of_type_last_or_default_1_highlighting = warning +resharper_replace_with_of_type_last_or_default_2_highlighting = warning +resharper_replace_with_of_type_long_count_highlighting = warning +resharper_replace_with_of_type_single_1_highlighting = warning +resharper_replace_with_of_type_single_2_highlighting = warning +resharper_replace_with_of_type_single_or_default_1_highlighting = warning +resharper_replace_with_of_type_single_or_default_2_highlighting = warning +resharper_replace_with_of_type_where_highlighting = warning +resharper_replace_with_simple_assignment_false_highlighting = warning +resharper_replace_with_simple_assignment_true_highlighting = warning +resharper_replace_with_single_assignment_false_highlighting = warning +resharper_replace_with_single_assignment_true_highlighting = warning +resharper_replace_with_single_call_to_any_highlighting = warning +resharper_replace_with_single_call_to_count_highlighting = warning +resharper_replace_with_single_call_to_first_highlighting = warning +resharper_replace_with_single_call_to_first_or_default_highlighting = warning +resharper_replace_with_single_call_to_last_highlighting = warning +resharper_replace_with_single_call_to_last_or_default_highlighting = warning +resharper_replace_with_single_call_to_single_highlighting = warning +resharper_replace_with_single_call_to_single_or_default_highlighting = warning +resharper_replace_with_single_or_default_1_highlighting = warning +resharper_replace_with_single_or_default_2_highlighting = warning +resharper_replace_with_single_or_default_3_highlighting = warning +resharper_replace_with_single_or_default_4_highlighting = warning +resharper_replace_with_string_is_null_or_empty_highlighting = warning +resharper_return_type_can_be_enumerable_global_highlighting = warning +resharper_return_type_can_be_enumerable_local_highlighting = warning +resharper_safe_cast_is_used_as_type_check_highlighting = warning +resharper_separate_control_transfer_statement_highlighting = warning +resharper_similar_anonymous_type_nearby_highlighting = warning +resharper_simplify_conditional_ternary_expression_highlighting = warning +resharper_simplify_linq_expression_use_all_highlighting = warning +resharper_simplify_linq_expression_use_any_highlighting = warning +resharper_simplify_linq_expression_use_min_by_and_max_by_highlighting = warning +resharper_simplify_string_interpolation_highlighting = warning +resharper_specify_string_comparison_highlighting = warning +resharper_string_ends_with_is_culture_specific_highlighting = warning +resharper_string_literal_as_interpolation_argument_highlighting = warning +resharper_string_literal_typo_highlighting = warning +resharper_string_starts_with_is_culture_specific_highlighting = warning +resharper_struct_can_be_made_read_only_highlighting = warning +resharper_struct_member_can_be_made_read_only_highlighting = warning +resharper_suggest_base_type_for_parameter_highlighting = none +resharper_suggest_base_type_for_parameter_in_constructor_highlighting = warning +resharper_suggest_var_or_type_built_in_types_highlighting = hint +resharper_suggest_var_or_type_deconstruction_declarations_highlighting = warning +resharper_suggest_var_or_type_elsewhere_highlighting = hint +resharper_suggest_var_or_type_simple_types_highlighting = hint +resharper_swap_via_deconstruction_highlighting = warning resharper_switch_expression_handles_some_known_enum_values_with_exception_in_default_highlighting = warning -resharper_switch_statement_handles_some_known_enum_values_with_default_highlighting = none -resharper_switch_statement_missing_some_enum_cases_no_default_highlighting = none -resharper_tabs_and_spaces_mismatch_highlighting = warning -resharper_tabs_are_disallowed_highlighting = warning -resharper_tabs_outside_indent_highlighting = warning -resharper_tail_recursive_call_highlighting = warning -resharper_too_wide_local_variable_scope_highlighting = warning -resharper_try_cast_always_succeeds_highlighting = warning -resharper_try_statements_can_be_merged_highlighting = warning -resharper_type_parameter_can_be_variant_highlighting = warning -resharper_unnecessary_whitespace_highlighting = warning -resharper_unused_member_global_highlighting = warning -resharper_unused_member_hierarchy_global_highlighting = warning -resharper_unused_member_in_super_global_highlighting = warning -resharper_unused_method_return_value_global_highlighting = warning -resharper_unused_parameter_global_highlighting = warning -resharper_unused_type_global_highlighting = warning -resharper_use_array_creation_expression_1_highlighting = warning -resharper_use_array_creation_expression_2_highlighting = warning -resharper_use_array_empty_method_highlighting = warning -resharper_use_await_using_highlighting = warning -resharper_use_cancellation_token_for_i_async_enumerable_highlighting = warning -resharper_use_collection_count_property_highlighting = warning -resharper_use_configure_await_false_highlighting = warning -resharper_use_deconstruction_highlighting = warning -resharper_use_empty_types_field_highlighting = warning -resharper_use_event_args_empty_field_highlighting = warning -resharper_use_format_specifier_in_format_string_highlighting = warning -resharper_use_indexed_property_highlighting = warning -resharper_use_index_from_end_expression_highlighting = warning -resharper_use_is_operator_1_highlighting = warning -resharper_use_is_operator_2_highlighting = warning -resharper_use_method_any_0_highlighting = warning -resharper_use_method_any_1_highlighting = warning -resharper_use_method_any_2_highlighting = warning -resharper_use_method_any_3_highlighting = warning -resharper_use_method_any_4_highlighting = warning -resharper_use_method_is_instance_of_type_highlighting = warning -resharper_use_nameof_expression_for_part_of_the_string_highlighting = warning -resharper_use_nameof_expression_highlighting = warning -resharper_use_nameof_for_dependency_property_highlighting = warning -resharper_use_name_of_instead_of_type_of_highlighting = warning -resharper_use_negated_pattern_in_is_expression_highlighting = warning -resharper_use_negated_pattern_matching_highlighting = warning -resharper_use_nullable_annotation_instead_of_attribute_highlighting = warning -resharper_use_nullable_attributes_supported_by_compiler_highlighting = warning -resharper_use_null_propagation_highlighting = warning -resharper_use_object_or_collection_initializer_highlighting = warning -resharper_use_pattern_matching_highlighting = warning -resharper_use_positional_deconstruction_pattern_highlighting = warning -resharper_use_raw_string_highlighting = warning -resharper_use_string_interpolation_highlighting = warning -resharper_use_switch_case_pattern_variable_highlighting = warning -resharper_use_throw_if_null_method_highlighting = warning -resharper_use_unsigned_right_shift_operator_highlighting = warning -resharper_use_verbatim_string_highlighting = warning -resharper_use_with_expression_to_copy_anonymous_object_highlighting = warning -resharper_use_with_expression_to_copy_record_highlighting = warning -resharper_use_with_expression_to_copy_struct_highlighting = warning -resharper_use_with_expression_to_copy_tuple_highlighting = warning -resharper_virtual_member_never_overridden_global_highlighting = warning -resharper_virtual_member_never_overridden_local_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 -resharper_with_expression_instead_of_initializer_highlighting = warning -resharper_wrong_indent_size_highlighting = warning +resharper_switch_statement_handles_some_known_enum_values_with_default_highlighting = none +resharper_switch_statement_missing_some_enum_cases_no_default_highlighting = none +resharper_tabs_and_spaces_mismatch_highlighting = warning +resharper_tabs_are_disallowed_highlighting = warning +resharper_tabs_outside_indent_highlighting = warning +resharper_tail_recursive_call_highlighting = warning +resharper_too_wide_local_variable_scope_highlighting = warning +resharper_try_cast_always_succeeds_highlighting = warning +resharper_try_statements_can_be_merged_highlighting = warning +resharper_type_parameter_can_be_variant_highlighting = warning +resharper_unnecessary_whitespace_highlighting = warning +resharper_unused_member_global_highlighting = warning +resharper_unused_member_hierarchy_global_highlighting = warning +resharper_unused_member_in_super_global_highlighting = warning +resharper_unused_method_return_value_global_highlighting = warning +resharper_unused_parameter_global_highlighting = warning +resharper_unused_type_global_highlighting = warning +resharper_use_array_creation_expression_1_highlighting = warning +resharper_use_array_creation_expression_2_highlighting = warning +resharper_use_array_empty_method_highlighting = warning +resharper_use_await_using_highlighting = warning +resharper_use_cancellation_token_for_i_async_enumerable_highlighting = warning +resharper_use_collection_count_property_highlighting = warning +resharper_use_configure_await_false_highlighting = warning +resharper_use_deconstruction_highlighting = warning +resharper_use_empty_types_field_highlighting = warning +resharper_use_event_args_empty_field_highlighting = warning +resharper_use_format_specifier_in_format_string_highlighting = warning +resharper_use_indexed_property_highlighting = warning +resharper_use_index_from_end_expression_highlighting = warning +resharper_use_is_operator_1_highlighting = warning +resharper_use_is_operator_2_highlighting = warning +resharper_use_method_any_0_highlighting = warning +resharper_use_method_any_1_highlighting = warning +resharper_use_method_any_2_highlighting = warning +resharper_use_method_any_3_highlighting = warning +resharper_use_method_any_4_highlighting = warning +resharper_use_method_is_instance_of_type_highlighting = warning +resharper_use_nameof_expression_for_part_of_the_string_highlighting = warning +resharper_use_nameof_expression_highlighting = warning +resharper_use_nameof_for_dependency_property_highlighting = warning +resharper_use_name_of_instead_of_type_of_highlighting = warning +resharper_use_negated_pattern_in_is_expression_highlighting = warning +resharper_use_negated_pattern_matching_highlighting = warning +resharper_use_nullable_annotation_instead_of_attribute_highlighting = warning +resharper_use_nullable_attributes_supported_by_compiler_highlighting = warning +resharper_use_null_propagation_highlighting = warning +resharper_use_object_or_collection_initializer_highlighting = warning +resharper_use_pattern_matching_highlighting = warning +resharper_use_positional_deconstruction_pattern_highlighting = warning +resharper_use_raw_string_highlighting = warning +resharper_use_string_interpolation_highlighting = warning +resharper_use_switch_case_pattern_variable_highlighting = warning +resharper_use_throw_if_null_method_highlighting = warning +resharper_use_unsigned_right_shift_operator_highlighting = warning +resharper_use_verbatim_string_highlighting = warning +resharper_use_with_expression_to_copy_anonymous_object_highlighting = warning +resharper_use_with_expression_to_copy_record_highlighting = warning +resharper_use_with_expression_to_copy_struct_highlighting = warning +resharper_use_with_expression_to_copy_tuple_highlighting = warning +resharper_virtual_member_never_overridden_global_highlighting = warning +resharper_virtual_member_never_overridden_local_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 +resharper_with_expression_instead_of_initializer_highlighting = warning +resharper_wrong_indent_size_highlighting = warning [*.css] ij_css_align_closing_brace_with_properties = false -ij_css_blank_lines_around_nested_selector = 1 -ij_css_blank_lines_between_blocks = 1 -ij_css_block_comment_add_space = false -ij_css_brace_placement = end_of_line -ij_css_enforce_quotes_on_format = false -ij_css_hex_color_long_format = false -ij_css_hex_color_lower_case = false -ij_css_hex_color_short_format = false -ij_css_hex_color_upper_case = false -ij_css_keep_blank_lines_in_code = 2 -ij_css_keep_indents_on_empty_lines = false -ij_css_keep_single_line_blocks = false -ij_css_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow -ij_css_space_after_colon = true -ij_css_space_before_opening_brace = true -ij_css_use_double_quotes = true -ij_css_value_alignment = do_not_align +ij_css_blank_lines_around_nested_selector = 1 +ij_css_blank_lines_between_blocks = 1 +ij_css_block_comment_add_space = false +ij_css_brace_placement = end_of_line +ij_css_enforce_quotes_on_format = false +ij_css_hex_color_long_format = false +ij_css_hex_color_lower_case = false +ij_css_hex_color_short_format = false +ij_css_hex_color_upper_case = false +ij_css_keep_blank_lines_in_code = 2 +ij_css_keep_indents_on_empty_lines = false +ij_css_keep_single_line_blocks = false +ij_css_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_css_space_after_colon = true +ij_css_space_before_opening_brace = true +ij_css_use_double_quotes = true +ij_css_value_alignment = do_not_align [*.csv] -max_line_length = 2147483647 +max_line_length = 2147483647 ij_csv_wrap_long_lines = false -indent_style = tab -tab_width = 1 +indent_style = tab +tab_width = 1 [*.dart] max_line_length = 80 [*.less] -indent_size = 2 +indent_size = 2 ij_less_align_closing_brace_with_properties = false -ij_less_blank_lines_around_nested_selector = 1 -ij_less_blank_lines_between_blocks = 1 -ij_less_block_comment_add_space = false -ij_less_brace_placement = 0 -ij_less_enforce_quotes_on_format = false -ij_less_hex_color_long_format = false -ij_less_hex_color_lower_case = false -ij_less_hex_color_short_format = false -ij_less_hex_color_upper_case = false -ij_less_keep_blank_lines_in_code = 2 -ij_less_keep_indents_on_empty_lines = false -ij_less_keep_single_line_blocks = false -ij_less_line_comment_add_space = false -ij_less_line_comment_at_first_column = false -ij_less_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow -ij_less_space_after_colon = true -ij_less_space_before_opening_brace = true -ij_less_use_double_quotes = true -ij_less_value_alignment = 0 +ij_less_blank_lines_around_nested_selector = 1 +ij_less_blank_lines_between_blocks = 1 +ij_less_block_comment_add_space = false +ij_less_brace_placement = 0 +ij_less_enforce_quotes_on_format = false +ij_less_hex_color_long_format = false +ij_less_hex_color_lower_case = false +ij_less_hex_color_short_format = false +ij_less_hex_color_upper_case = false +ij_less_keep_blank_lines_in_code = 2 +ij_less_keep_indents_on_empty_lines = false +ij_less_keep_single_line_blocks = false +ij_less_line_comment_add_space = false +ij_less_line_comment_at_first_column = false +ij_less_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_less_space_after_colon = true +ij_less_space_before_opening_brace = true +ij_less_use_double_quotes = true +ij_less_value_alignment = 0 [*.pp] -indent_size = 2 -tab_width = 2 -ij_continuation_indent_size = 2 +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 2 ij_puppet_keep_indents_on_empty_lines = false [*.properties] -ij_properties_align_group_field_declarations = true -ij_properties_keep_blank_lines = false -ij_properties_key_value_delimiter = equals +ij_properties_align_group_field_declarations = true +ij_properties_keep_blank_lines = false +ij_properties_key_value_delimiter = equals ij_properties_spaces_around_key_value_delimiter = true [*.sass] -indent_size = 2 +indent_size = 2 ij_sass_align_closing_brace_with_properties = false -ij_sass_blank_lines_around_nested_selector = 1 -ij_sass_blank_lines_between_blocks = 1 -ij_sass_brace_placement = 0 -ij_sass_enforce_quotes_on_format = false -ij_sass_hex_color_long_format = false -ij_sass_hex_color_lower_case = false -ij_sass_hex_color_short_format = false -ij_sass_hex_color_upper_case = false -ij_sass_keep_blank_lines_in_code = 2 -ij_sass_keep_indents_on_empty_lines = false -ij_sass_keep_single_line_blocks = false -ij_sass_line_comment_add_space = false -ij_sass_line_comment_at_first_column = false -ij_sass_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow -ij_sass_space_after_colon = true -ij_sass_space_before_opening_brace = true -ij_sass_use_double_quotes = true -ij_sass_value_alignment = 0 +ij_sass_blank_lines_around_nested_selector = 1 +ij_sass_blank_lines_between_blocks = 1 +ij_sass_brace_placement = 0 +ij_sass_enforce_quotes_on_format = false +ij_sass_hex_color_long_format = false +ij_sass_hex_color_lower_case = false +ij_sass_hex_color_short_format = false +ij_sass_hex_color_upper_case = false +ij_sass_keep_blank_lines_in_code = 2 +ij_sass_keep_indents_on_empty_lines = false +ij_sass_keep_single_line_blocks = false +ij_sass_line_comment_add_space = false +ij_sass_line_comment_at_first_column = false +ij_sass_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_sass_space_after_colon = true +ij_sass_space_before_opening_brace = true +ij_sass_use_double_quotes = true +ij_sass_value_alignment = 0 [*.scss] -indent_size = 2 +indent_size = 2 ij_scss_align_closing_brace_with_properties = false -ij_scss_blank_lines_around_nested_selector = 1 -ij_scss_blank_lines_between_blocks = 1 -ij_scss_block_comment_add_space = false -ij_scss_brace_placement = 0 -ij_scss_enforce_quotes_on_format = false -ij_scss_hex_color_long_format = false -ij_scss_hex_color_lower_case = false -ij_scss_hex_color_short_format = false -ij_scss_hex_color_upper_case = false -ij_scss_keep_blank_lines_in_code = 2 -ij_scss_keep_indents_on_empty_lines = false -ij_scss_keep_single_line_blocks = false -ij_scss_line_comment_add_space = false -ij_scss_line_comment_at_first_column = false -ij_scss_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow -ij_scss_space_after_colon = true -ij_scss_space_before_opening_brace = true -ij_scss_use_double_quotes = true -ij_scss_value_alignment = 0 +ij_scss_blank_lines_around_nested_selector = 1 +ij_scss_blank_lines_between_blocks = 1 +ij_scss_block_comment_add_space = false +ij_scss_brace_placement = 0 +ij_scss_enforce_quotes_on_format = false +ij_scss_hex_color_long_format = false +ij_scss_hex_color_lower_case = false +ij_scss_hex_color_short_format = false +ij_scss_hex_color_upper_case = false +ij_scss_keep_blank_lines_in_code = 2 +ij_scss_keep_indents_on_empty_lines = false +ij_scss_keep_single_line_blocks = false +ij_scss_line_comment_add_space = false +ij_scss_line_comment_at_first_column = false +ij_scss_properties_order = font, font-family, font-size, font-weight, font-style, font-variant, font-size-adjust, font-stretch, line-height, position, z-index, top, right, bottom, left, display, visibility, float, clear, overflow, overflow-x, overflow-y, clip, zoom, align-content, align-items, align-self, flex, flex-flow, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, justify-content, order, box-sizing, width, min-width, max-width, height, min-height, max-height, margin, margin-top, margin-right, margin-bottom, margin-left, padding, padding-top, padding-right, padding-bottom, padding-left, table-layout, empty-cells, caption-side, border-spacing, border-collapse, list-style, list-style-position, list-style-type, list-style-image, content, quotes, counter-reset, counter-increment, resize, cursor, user-select, nav-index, nav-up, nav-right, nav-down, nav-left, transition, transition-delay, transition-timing-function, transition-duration, transition-property, transform, transform-origin, animation, animation-name, animation-duration, animation-play-state, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, text-align, text-align-last, vertical-align, white-space, text-decoration, text-emphasis, text-emphasis-color, text-emphasis-style, text-emphasis-position, text-indent, text-justify, letter-spacing, word-spacing, text-outline, text-transform, text-wrap, text-overflow, text-overflow-ellipsis, text-overflow-mode, word-wrap, word-break, tab-size, hyphens, pointer-events, opacity, color, border, border-width, border-style, border-color, border-top, border-top-width, border-top-style, border-top-color, border-right, border-right-width, border-right-style, border-right-color, border-bottom, border-bottom-width, border-bottom-style, border-bottom-color, border-left, border-left-width, border-left-style, border-left-color, border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius, border-image, border-image-source, border-image-slice, border-image-width, border-image-outset, border-image-repeat, outline, outline-width, outline-style, outline-color, outline-offset, background, background-color, background-image, background-repeat, background-attachment, background-position, background-position-x, background-position-y, background-clip, background-origin, background-size, box-decoration-break, box-shadow, text-shadow +ij_scss_space_after_colon = true +ij_scss_space_before_opening_brace = true +ij_scss_use_double_quotes = true +ij_scss_value_alignment = 0 [*.slim] -indent_size = 2 +indent_size = 2 ij_slim_keep_indents_on_empty_lines = false [*.twig] -ij_twig_keep_indents_on_empty_lines = false +ij_twig_keep_indents_on_empty_lines = false ij_twig_spaces_inside_comments_delimiters = true -ij_twig_spaces_inside_delimiters = true +ij_twig_spaces_inside_delimiters = true ij_twig_spaces_inside_variable_delimiters = true [*.vue] -indent_size = 2 -tab_width = 2 -ij_continuation_indent_size = 4 -ij_vue_indent_children_of_top_level = template +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_vue_indent_children_of_top_level = template ij_vue_interpolation_new_line_after_start_delimiter = true -ij_vue_interpolation_new_line_before_end_delimiter = true -ij_vue_interpolation_wrap = off -ij_vue_keep_indents_on_empty_lines = false -ij_vue_spaces_within_interpolation_expressions = true +ij_vue_interpolation_new_line_before_end_delimiter = true +ij_vue_interpolation_wrap = off +ij_vue_keep_indents_on_empty_lines = false +ij_vue_spaces_within_interpolation_expressions = true [.editorconfig] -ij_editorconfig_align_group_field_declarations = true -ij_editorconfig_space_after_colon = false -ij_editorconfig_space_after_comma = true -ij_editorconfig_space_before_colon = false -ij_editorconfig_space_before_comma = false +ij_editorconfig_align_group_field_declarations = true +ij_editorconfig_space_after_colon = false +ij_editorconfig_space_after_comma = true +ij_editorconfig_space_before_colon = false +ij_editorconfig_space_before_comma = false ij_editorconfig_spaces_around_assignment_operators = true [{*.ad,*.adoc,*.asciidoc,.asciidoctorconfig}] -ij_asciidoc_blank_lines_after_header = 1 +ij_asciidoc_blank_lines_after_header = 1 ij_asciidoc_blank_lines_keep_after_header = 1 -ij_asciidoc_formatting_enabled = true -ij_asciidoc_one_sentence_per_line = true +ij_asciidoc_formatting_enabled = true +ij_asciidoc_one_sentence_per_line = true [{*.ant,*.appxmanifest,*.axml,*.cscfg,*.csdef,*.disco,*.dotsettings,*.filelayout,*.fxml,*.jhm,*.jnlp,*.jrxml,*.manifest,*.myapp,*.nuspec,*.rng,*.sdef,*.stylecop,*.svcmap,*.tld,*.wadcfgx,*.webref,*.wsdl,*.xml,*.xsd,*.xsl,*.xslt,*.xul,StyleCop.Cache}] -ij_xml_align_attributes = true -ij_xml_align_text = false -ij_xml_attribute_wrap = on_every_item -ij_xml_block_comment_add_space = false -ij_xml_block_comment_at_first_column = true -ij_xml_keep_blank_lines = 2 -ij_xml_keep_indents_on_empty_lines = false -ij_xml_keep_line_breaks = true -ij_xml_keep_line_breaks_in_text = true -ij_xml_keep_whitespaces = false -ij_xml_keep_whitespaces_around_cdata = preserve -ij_xml_keep_whitespaces_inside_cdata = false -ij_xml_line_comment_at_first_column = true -ij_xml_space_after_tag_name = false +ij_xml_align_attributes = true +ij_xml_align_text = false +ij_xml_attribute_wrap = on_every_item +ij_xml_block_comment_add_space = false +ij_xml_block_comment_at_first_column = true +ij_xml_keep_blank_lines = 2 +ij_xml_keep_indents_on_empty_lines = false +ij_xml_keep_line_breaks = true +ij_xml_keep_line_breaks_in_text = true +ij_xml_keep_whitespaces = false +ij_xml_keep_whitespaces_around_cdata = preserve +ij_xml_keep_whitespaces_inside_cdata = false +ij_xml_line_comment_at_first_column = true +ij_xml_space_after_tag_name = false ij_xml_space_around_equals_in_attribute = false -ij_xml_space_inside_empty_tag = false -ij_xml_text_wrap = normal -ij_xml_use_custom_settings = false +ij_xml_space_inside_empty_tag = false +ij_xml_text_wrap = normal +ij_xml_use_custom_settings = false +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 [{*.applescript,*.scpt}] -indent_size = 2 -tab_width = 2 -ij_continuation_indent_size = 4 -ij_applescript_align_multiline_binary_operation = true -ij_applescript_align_multiline_parameters = true -ij_applescript_align_multiline_parameters_in_calls = true -ij_applescript_binary_operation_sign_on_next_line = false -ij_applescript_binary_operation_wrap = off -ij_applescript_block_brace_style = next_line -ij_applescript_call_parameters_new_line_after_left_paren = false -ij_applescript_call_parameters_right_paren_on_new_line = false -ij_applescript_call_parameters_wrap = off -ij_applescript_else_on_new_line = true -ij_applescript_keep_blank_lines_in_code = 2 -ij_applescript_keep_first_column_comment = true -ij_applescript_keep_indents_on_empty_lines = false -ij_applescript_keep_line_breaks = true -ij_applescript_method_brace_style = next_line -ij_applescript_method_parameters_new_line_after_left_paren = false -ij_applescript_method_parameters_right_paren_on_new_line = false -ij_applescript_method_parameters_wrap = off +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_applescript_align_multiline_binary_operation = true +ij_applescript_align_multiline_parameters = true +ij_applescript_align_multiline_parameters_in_calls = true +ij_applescript_binary_operation_sign_on_next_line = false +ij_applescript_binary_operation_wrap = off +ij_applescript_block_brace_style = next_line +ij_applescript_call_parameters_new_line_after_left_paren = false +ij_applescript_call_parameters_right_paren_on_new_line = false +ij_applescript_call_parameters_wrap = off +ij_applescript_else_on_new_line = true +ij_applescript_keep_blank_lines_in_code = 2 +ij_applescript_keep_first_column_comment = true +ij_applescript_keep_indents_on_empty_lines = false +ij_applescript_keep_line_breaks = true +ij_applescript_method_brace_style = next_line +ij_applescript_method_parameters_new_line_after_left_paren = false +ij_applescript_method_parameters_right_paren_on_new_line = false +ij_applescript_method_parameters_wrap = off ij_applescript_parentheses_expression_new_line_after_left_paren = false -ij_applescript_parentheses_expression_right_paren_on_new_line = false -ij_applescript_space_after_colon = true -ij_applescript_space_after_comma = true -ij_applescript_space_after_comma_in_type_arguments = true -ij_applescript_space_before_colon = true -ij_applescript_space_before_comma = false -ij_applescript_space_before_else_keyword = true -ij_applescript_space_before_else_left_brace = true -ij_applescript_space_before_if_parentheses = false -ij_applescript_space_before_method_call_parentheses = false -ij_applescript_space_before_method_left_brace = true -ij_applescript_space_before_method_parentheses = false -ij_applescript_space_before_while_keyword = true -ij_applescript_spaces_around_additive_operators = true -ij_applescript_spaces_around_assignment_operators = true -ij_applescript_spaces_around_equality_operators = true -ij_applescript_spaces_around_logical_operators = true -ij_applescript_spaces_around_multiplicative_operators = true -ij_applescript_spaces_around_relational_operators = true -ij_applescript_spaces_around_shift_operators = true -ij_applescript_spaces_around_unary_operator = false -ij_applescript_spaces_within_if_parentheses = false -ij_applescript_spaces_within_method_call_parentheses = false -ij_applescript_spaces_within_method_parentheses = false -ij_applescript_special_else_if_treatment = true +ij_applescript_parentheses_expression_right_paren_on_new_line = false +ij_applescript_space_after_colon = true +ij_applescript_space_after_comma = true +ij_applescript_space_after_comma_in_type_arguments = true +ij_applescript_space_before_colon = true +ij_applescript_space_before_comma = false +ij_applescript_space_before_else_keyword = true +ij_applescript_space_before_else_left_brace = true +ij_applescript_space_before_if_parentheses = false +ij_applescript_space_before_method_call_parentheses = false +ij_applescript_space_before_method_left_brace = true +ij_applescript_space_before_method_parentheses = false +ij_applescript_space_before_while_keyword = true +ij_applescript_spaces_around_additive_operators = true +ij_applescript_spaces_around_assignment_operators = true +ij_applescript_spaces_around_equality_operators = true +ij_applescript_spaces_around_logical_operators = true +ij_applescript_spaces_around_multiplicative_operators = true +ij_applescript_spaces_around_relational_operators = true +ij_applescript_spaces_around_shift_operators = true +ij_applescript_spaces_around_unary_operator = false +ij_applescript_spaces_within_if_parentheses = false +ij_applescript_spaces_within_method_call_parentheses = false +ij_applescript_spaces_within_method_parentheses = false +ij_applescript_special_else_if_treatment = true [{*.ats,*.cts,*.mts,*.ts}] -ij_continuation_indent_size = 4 -ij_typescript_align_imports = true -ij_typescript_align_multiline_array_initializer_expression = true -ij_typescript_align_multiline_binary_operation = true -ij_typescript_align_multiline_chained_methods = true -ij_typescript_align_multiline_extends_list = false -ij_typescript_align_multiline_for = true -ij_typescript_align_multiline_parameters = true -ij_typescript_align_multiline_parameters_in_calls = true -ij_typescript_align_multiline_ternary_operation = true -ij_typescript_align_object_properties = 1 -ij_typescript_align_union_types = true -ij_typescript_align_var_statements = 2 -ij_typescript_array_initializer_new_line_after_left_brace = false -ij_typescript_array_initializer_right_brace_on_new_line = false -ij_typescript_array_initializer_wrap = on_every_item -ij_typescript_assignment_wrap = on_every_item -ij_typescript_binary_operation_sign_on_next_line = false -ij_typescript_binary_operation_wrap = on_every_item -ij_typescript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/** -ij_typescript_blank_lines_after_imports = 1 -ij_typescript_blank_lines_around_class = 1 -ij_typescript_blank_lines_around_field = 0 -ij_typescript_blank_lines_around_field_in_interface = 0 -ij_typescript_blank_lines_around_function = 1 -ij_typescript_blank_lines_around_method = 1 -ij_typescript_blank_lines_around_method_in_interface = 1 -ij_typescript_block_brace_style = next_line -ij_typescript_block_comment_add_space = false -ij_typescript_block_comment_at_first_column = true -ij_typescript_call_parameters_new_line_after_left_paren = false -ij_typescript_call_parameters_right_paren_on_new_line = false -ij_typescript_call_parameters_wrap = on_every_item -ij_typescript_catch_on_new_line = true -ij_typescript_chained_call_dot_on_new_line = true -ij_typescript_class_brace_style = next_line -ij_typescript_comma_on_new_line = false -ij_typescript_do_while_brace_force = always -ij_typescript_else_on_new_line = false -ij_typescript_enforce_trailing_comma = keep -ij_typescript_enum_constants_wrap = on_every_item -ij_typescript_extends_keyword_wrap = normal -ij_typescript_extends_list_wrap = on_every_item -ij_typescript_field_prefix = _ -ij_typescript_file_name_style = relaxed -ij_typescript_finally_on_new_line = true -ij_typescript_for_brace_force = if_multiline -ij_typescript_for_statement_new_line_after_left_paren = false -ij_typescript_for_statement_right_paren_on_new_line = false -ij_typescript_for_statement_wrap = on_every_item -ij_typescript_force_quote_style = true -ij_typescript_force_semicolon_style = true -ij_typescript_function_expression_brace_style = next_line -ij_typescript_if_brace_force = never -ij_typescript_import_merge_members = global -ij_typescript_import_prefer_absolute_path = true -ij_typescript_import_sort_members = true -ij_typescript_import_sort_module_name = true -ij_typescript_import_use_node_resolution = true -ij_typescript_imports_wrap = on_every_item -ij_typescript_indent_case_from_switch = true -ij_typescript_indent_chained_calls = true -ij_typescript_indent_package_children = 0 -ij_typescript_jsdoc_include_types = false -ij_typescript_jsx_attribute_value = braces -ij_typescript_keep_blank_lines_in_code = 2 -ij_typescript_keep_first_column_comment = true -ij_typescript_keep_indents_on_empty_lines = false -ij_typescript_keep_line_breaks = true -ij_typescript_keep_simple_blocks_in_one_line = false -ij_typescript_keep_simple_methods_in_one_line = false -ij_typescript_line_comment_add_space = true -ij_typescript_line_comment_at_first_column = false -ij_typescript_method_brace_style = next_line -ij_typescript_method_call_chain_wrap = on_every_item -ij_typescript_method_parameters_new_line_after_left_paren = false -ij_typescript_method_parameters_right_paren_on_new_line = false -ij_typescript_method_parameters_wrap = on_every_item -ij_typescript_object_literal_wrap = on_every_item -ij_typescript_object_types_wrap = on_every_item -ij_typescript_parentheses_expression_new_line_after_left_paren = false -ij_typescript_parentheses_expression_right_paren_on_new_line = false -ij_typescript_place_assignment_sign_on_next_line = false -ij_typescript_prefer_as_type_cast = false +ij_continuation_indent_size = 4 +ij_typescript_align_imports = true +ij_typescript_align_multiline_array_initializer_expression = true +ij_typescript_align_multiline_binary_operation = true +ij_typescript_align_multiline_chained_methods = true +ij_typescript_align_multiline_extends_list = false +ij_typescript_align_multiline_for = true +ij_typescript_align_multiline_parameters = true +ij_typescript_align_multiline_parameters_in_calls = true +ij_typescript_align_multiline_ternary_operation = true +ij_typescript_align_object_properties = 1 +ij_typescript_align_union_types = true +ij_typescript_align_var_statements = 2 +ij_typescript_array_initializer_new_line_after_left_brace = false +ij_typescript_array_initializer_right_brace_on_new_line = false +ij_typescript_array_initializer_wrap = on_every_item +ij_typescript_assignment_wrap = on_every_item +ij_typescript_binary_operation_sign_on_next_line = false +ij_typescript_binary_operation_wrap = on_every_item +ij_typescript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** +ij_typescript_blank_lines_after_imports = 1 +ij_typescript_blank_lines_around_class = 1 +ij_typescript_blank_lines_around_field = 0 +ij_typescript_blank_lines_around_field_in_interface = 0 +ij_typescript_blank_lines_around_function = 1 +ij_typescript_blank_lines_around_method = 1 +ij_typescript_blank_lines_around_method_in_interface = 1 +ij_typescript_block_brace_style = next_line +ij_typescript_block_comment_add_space = false +ij_typescript_block_comment_at_first_column = true +ij_typescript_call_parameters_new_line_after_left_paren = false +ij_typescript_call_parameters_right_paren_on_new_line = false +ij_typescript_call_parameters_wrap = on_every_item +ij_typescript_catch_on_new_line = true +ij_typescript_chained_call_dot_on_new_line = true +ij_typescript_class_brace_style = next_line +ij_typescript_comma_on_new_line = false +ij_typescript_do_while_brace_force = always +ij_typescript_else_on_new_line = false +ij_typescript_enforce_trailing_comma = keep +ij_typescript_enum_constants_wrap = on_every_item +ij_typescript_extends_keyword_wrap = normal +ij_typescript_extends_list_wrap = on_every_item +ij_typescript_field_prefix = _ +ij_typescript_file_name_style = relaxed +ij_typescript_finally_on_new_line = true +ij_typescript_for_brace_force = if_multiline +ij_typescript_for_statement_new_line_after_left_paren = false +ij_typescript_for_statement_right_paren_on_new_line = false +ij_typescript_for_statement_wrap = on_every_item +ij_typescript_force_quote_style = true +ij_typescript_force_semicolon_style = true +ij_typescript_function_expression_brace_style = next_line +ij_typescript_if_brace_force = never +ij_typescript_import_merge_members = global +ij_typescript_import_prefer_absolute_path = true +ij_typescript_import_sort_members = true +ij_typescript_import_sort_module_name = true +ij_typescript_import_use_node_resolution = true +ij_typescript_imports_wrap = on_every_item +ij_typescript_indent_case_from_switch = true +ij_typescript_indent_chained_calls = true +ij_typescript_indent_package_children = 0 +ij_typescript_jsdoc_include_types = false +ij_typescript_jsx_attribute_value = braces +ij_typescript_keep_blank_lines_in_code = 2 +ij_typescript_keep_first_column_comment = true +ij_typescript_keep_indents_on_empty_lines = false +ij_typescript_keep_line_breaks = true +ij_typescript_keep_simple_blocks_in_one_line = false +ij_typescript_keep_simple_methods_in_one_line = false +ij_typescript_line_comment_add_space = true +ij_typescript_line_comment_at_first_column = false +ij_typescript_method_brace_style = next_line +ij_typescript_method_call_chain_wrap = on_every_item +ij_typescript_method_parameters_new_line_after_left_paren = false +ij_typescript_method_parameters_right_paren_on_new_line = false +ij_typescript_method_parameters_wrap = on_every_item +ij_typescript_object_literal_wrap = on_every_item +ij_typescript_object_types_wrap = on_every_item +ij_typescript_parentheses_expression_new_line_after_left_paren = false +ij_typescript_parentheses_expression_right_paren_on_new_line = false +ij_typescript_place_assignment_sign_on_next_line = false +ij_typescript_prefer_as_type_cast = false ij_typescript_prefer_explicit_types_function_expression_returns = false -ij_typescript_prefer_explicit_types_function_returns = false -ij_typescript_prefer_explicit_types_vars_fields = false -ij_typescript_prefer_parameters_wrap = false -ij_typescript_property_prefix = -ij_typescript_reformat_c_style_comments = false -ij_typescript_space_after_colon = true -ij_typescript_space_after_comma = true -ij_typescript_space_after_dots_in_rest_parameter = false -ij_typescript_space_after_generator_mult = true -ij_typescript_space_after_property_colon = true -ij_typescript_space_after_quest = true -ij_typescript_space_after_type_colon = true -ij_typescript_space_after_unary_not = false -ij_typescript_space_before_async_arrow_lparen = false -ij_typescript_space_before_catch_keyword = true -ij_typescript_space_before_catch_left_brace = false -ij_typescript_space_before_catch_parentheses = false -ij_typescript_space_before_class_lbrace = false -ij_typescript_space_before_class_left_brace = true -ij_typescript_space_before_colon = true -ij_typescript_space_before_comma = false -ij_typescript_space_before_do_left_brace = false -ij_typescript_space_before_else_keyword = true -ij_typescript_space_before_else_left_brace = false -ij_typescript_space_before_finally_keyword = true -ij_typescript_space_before_finally_left_brace = false -ij_typescript_space_before_for_left_brace = false -ij_typescript_space_before_for_parentheses = false -ij_typescript_space_before_for_semicolon = false -ij_typescript_space_before_function_left_parenth = false -ij_typescript_space_before_generator_mult = false -ij_typescript_space_before_if_left_brace = false -ij_typescript_space_before_if_parentheses = false -ij_typescript_space_before_method_call_parentheses = false -ij_typescript_space_before_method_left_brace = false -ij_typescript_space_before_method_parentheses = false -ij_typescript_space_before_property_colon = false -ij_typescript_space_before_quest = true -ij_typescript_space_before_switch_left_brace = false -ij_typescript_space_before_switch_parentheses = false -ij_typescript_space_before_try_left_brace = false -ij_typescript_space_before_type_colon = false -ij_typescript_space_before_unary_not = false -ij_typescript_space_before_while_keyword = true -ij_typescript_space_before_while_left_brace = false -ij_typescript_space_before_while_parentheses = false -ij_typescript_spaces_around_additive_operators = true -ij_typescript_spaces_around_arrow_function_operator = true -ij_typescript_spaces_around_assignment_operators = true -ij_typescript_spaces_around_bitwise_operators = true -ij_typescript_spaces_around_equality_operators = true -ij_typescript_spaces_around_logical_operators = true -ij_typescript_spaces_around_multiplicative_operators = true -ij_typescript_spaces_around_relational_operators = true -ij_typescript_spaces_around_shift_operators = true -ij_typescript_spaces_around_unary_operator = false -ij_typescript_spaces_within_array_initializer_brackets = false -ij_typescript_spaces_within_brackets = false -ij_typescript_spaces_within_catch_parentheses = false -ij_typescript_spaces_within_for_parentheses = false -ij_typescript_spaces_within_if_parentheses = false -ij_typescript_spaces_within_imports = false -ij_typescript_spaces_within_interpolation_expressions = false -ij_typescript_spaces_within_method_call_parentheses = false -ij_typescript_spaces_within_method_parentheses = false -ij_typescript_spaces_within_object_literal_braces = false -ij_typescript_spaces_within_object_type_braces = true -ij_typescript_spaces_within_parentheses = false -ij_typescript_spaces_within_switch_parentheses = false -ij_typescript_spaces_within_type_assertion = false -ij_typescript_spaces_within_union_types = true -ij_typescript_spaces_within_while_parentheses = false -ij_typescript_special_else_if_treatment = true -ij_typescript_ternary_operation_signs_on_next_line = false -ij_typescript_ternary_operation_wrap = on_every_item -ij_typescript_union_types_wrap = on_every_item -ij_typescript_use_chained_calls_group_indents = false -ij_typescript_use_double_quotes = true -ij_typescript_use_explicit_js_extension = auto -ij_typescript_use_path_mapping = always -ij_typescript_use_public_modifier = false -ij_typescript_use_semicolon_after_statement = true -ij_typescript_var_declaration_wrap = normal -ij_typescript_while_brace_force = always -ij_typescript_while_on_new_line = false -ij_typescript_wrap_comments = false +ij_typescript_prefer_explicit_types_function_returns = false +ij_typescript_prefer_explicit_types_vars_fields = false +ij_typescript_prefer_parameters_wrap = false +ij_typescript_property_prefix = +ij_typescript_reformat_c_style_comments = false +ij_typescript_space_after_colon = true +ij_typescript_space_after_comma = true +ij_typescript_space_after_dots_in_rest_parameter = false +ij_typescript_space_after_generator_mult = true +ij_typescript_space_after_property_colon = true +ij_typescript_space_after_quest = true +ij_typescript_space_after_type_colon = true +ij_typescript_space_after_unary_not = false +ij_typescript_space_before_async_arrow_lparen = false +ij_typescript_space_before_catch_keyword = true +ij_typescript_space_before_catch_left_brace = false +ij_typescript_space_before_catch_parentheses = false +ij_typescript_space_before_class_lbrace = false +ij_typescript_space_before_class_left_brace = true +ij_typescript_space_before_colon = true +ij_typescript_space_before_comma = false +ij_typescript_space_before_do_left_brace = false +ij_typescript_space_before_else_keyword = true +ij_typescript_space_before_else_left_brace = false +ij_typescript_space_before_finally_keyword = true +ij_typescript_space_before_finally_left_brace = false +ij_typescript_space_before_for_left_brace = false +ij_typescript_space_before_for_parentheses = false +ij_typescript_space_before_for_semicolon = false +ij_typescript_space_before_function_left_parenth = false +ij_typescript_space_before_generator_mult = false +ij_typescript_space_before_if_left_brace = false +ij_typescript_space_before_if_parentheses = false +ij_typescript_space_before_method_call_parentheses = false +ij_typescript_space_before_method_left_brace = false +ij_typescript_space_before_method_parentheses = false +ij_typescript_space_before_property_colon = false +ij_typescript_space_before_quest = true +ij_typescript_space_before_switch_left_brace = false +ij_typescript_space_before_switch_parentheses = false +ij_typescript_space_before_try_left_brace = false +ij_typescript_space_before_type_colon = false +ij_typescript_space_before_unary_not = false +ij_typescript_space_before_while_keyword = true +ij_typescript_space_before_while_left_brace = false +ij_typescript_space_before_while_parentheses = false +ij_typescript_spaces_around_additive_operators = true +ij_typescript_spaces_around_arrow_function_operator = true +ij_typescript_spaces_around_assignment_operators = true +ij_typescript_spaces_around_bitwise_operators = true +ij_typescript_spaces_around_equality_operators = true +ij_typescript_spaces_around_logical_operators = true +ij_typescript_spaces_around_multiplicative_operators = true +ij_typescript_spaces_around_relational_operators = true +ij_typescript_spaces_around_shift_operators = true +ij_typescript_spaces_around_unary_operator = false +ij_typescript_spaces_within_array_initializer_brackets = false +ij_typescript_spaces_within_brackets = false +ij_typescript_spaces_within_catch_parentheses = false +ij_typescript_spaces_within_for_parentheses = false +ij_typescript_spaces_within_if_parentheses = false +ij_typescript_spaces_within_imports = false +ij_typescript_spaces_within_interpolation_expressions = false +ij_typescript_spaces_within_method_call_parentheses = false +ij_typescript_spaces_within_method_parentheses = false +ij_typescript_spaces_within_object_literal_braces = false +ij_typescript_spaces_within_object_type_braces = true +ij_typescript_spaces_within_parentheses = false +ij_typescript_spaces_within_switch_parentheses = false +ij_typescript_spaces_within_type_assertion = false +ij_typescript_spaces_within_union_types = true +ij_typescript_spaces_within_while_parentheses = false +ij_typescript_special_else_if_treatment = true +ij_typescript_ternary_operation_signs_on_next_line = false +ij_typescript_ternary_operation_wrap = on_every_item +ij_typescript_union_types_wrap = on_every_item +ij_typescript_use_chained_calls_group_indents = false +ij_typescript_use_double_quotes = true +ij_typescript_use_explicit_js_extension = auto +ij_typescript_use_path_mapping = always +ij_typescript_use_public_modifier = false +ij_typescript_use_semicolon_after_statement = true +ij_typescript_var_declaration_wrap = normal +ij_typescript_while_brace_force = always +ij_typescript_while_on_new_line = false +ij_typescript_wrap_comments = false [{*.bash,*.sh,*.zsh}] -indent_size = 2 -tab_width = 2 -ij_shell_binary_ops_start_line = false +indent_size = 2 +tab_width = 2 +ij_shell_binary_ops_start_line = false ij_shell_keep_column_alignment_padding = false -ij_shell_minify_program = false -ij_shell_redirect_followed_by_space = false -ij_shell_switch_cases_indented = true -ij_shell_use_unix_line_separator = true -indent_style = space +ij_shell_minify_program = false +ij_shell_redirect_followed_by_space = false +ij_shell_switch_cases_indented = true +ij_shell_use_unix_line_separator = true +indent_style = space [{*.cjs,*.js}] -ij_continuation_indent_size = 4 -ij_javascript_align_imports = true -ij_javascript_align_multiline_array_initializer_expression = true -ij_javascript_align_multiline_binary_operation = true -ij_javascript_align_multiline_chained_methods = false -ij_javascript_align_multiline_extends_list = true -ij_javascript_align_multiline_for = true -ij_javascript_align_multiline_parameters = true -ij_javascript_align_multiline_parameters_in_calls = true -ij_javascript_align_multiline_ternary_operation = true -ij_javascript_align_object_properties = 1 -ij_javascript_align_union_types = false -ij_javascript_align_var_statements = 2 -ij_javascript_array_initializer_new_line_after_left_brace = false -ij_javascript_array_initializer_right_brace_on_new_line = false -ij_javascript_array_initializer_wrap = on_every_item -ij_javascript_assignment_wrap = on_every_item -ij_javascript_binary_operation_sign_on_next_line = false -ij_javascript_binary_operation_wrap = on_every_item -ij_javascript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/** -ij_javascript_blank_lines_after_imports = 1 -ij_javascript_blank_lines_around_class = 1 -ij_javascript_blank_lines_around_field = 0 -ij_javascript_blank_lines_around_function = 1 -ij_javascript_blank_lines_around_method = 1 -ij_javascript_block_brace_style = next_line -ij_javascript_block_comment_add_space = false -ij_javascript_block_comment_at_first_column = true -ij_javascript_call_parameters_new_line_after_left_paren = false -ij_javascript_call_parameters_right_paren_on_new_line = false -ij_javascript_call_parameters_wrap = on_every_item -ij_javascript_catch_on_new_line = true -ij_javascript_chained_call_dot_on_new_line = true -ij_javascript_class_brace_style = next_line -ij_javascript_comma_on_new_line = false -ij_javascript_do_while_brace_force = always -ij_javascript_else_on_new_line = true -ij_javascript_enforce_trailing_comma = remove -ij_javascript_extends_keyword_wrap = normal -ij_javascript_extends_list_wrap = on_every_item -ij_javascript_field_prefix = _ -ij_javascript_file_name_style = relaxed -ij_javascript_finally_on_new_line = true -ij_javascript_for_brace_force = if_multiline -ij_javascript_for_statement_new_line_after_left_paren = false -ij_javascript_for_statement_right_paren_on_new_line = false -ij_javascript_for_statement_wrap = on_every_item -ij_javascript_force_quote_style = true -ij_javascript_force_semicolon_style = true -ij_javascript_function_expression_brace_style = next_line -ij_javascript_if_brace_force = if_multiline -ij_javascript_import_merge_members = global -ij_javascript_import_prefer_absolute_path = true -ij_javascript_import_sort_members = true -ij_javascript_import_sort_module_name = true -ij_javascript_import_use_node_resolution = true -ij_javascript_imports_wrap = on_every_item -ij_javascript_indent_case_from_switch = true -ij_javascript_indent_chained_calls = true -ij_javascript_indent_package_children = 0 -ij_javascript_jsx_attribute_value = braces -ij_javascript_keep_blank_lines_in_code = 2 -ij_javascript_keep_first_column_comment = true -ij_javascript_keep_indents_on_empty_lines = false -ij_javascript_keep_line_breaks = true -ij_javascript_keep_simple_blocks_in_one_line = false -ij_javascript_keep_simple_methods_in_one_line = false -ij_javascript_line_comment_add_space = true -ij_javascript_line_comment_at_first_column = false -ij_javascript_method_brace_style = next_line -ij_javascript_method_call_chain_wrap = on_every_item -ij_javascript_method_parameters_new_line_after_left_paren = false -ij_javascript_method_parameters_right_paren_on_new_line = false -ij_javascript_method_parameters_wrap = on_every_item -ij_javascript_object_literal_wrap = on_every_item -ij_javascript_object_types_wrap = on_every_item -ij_javascript_parentheses_expression_new_line_after_left_paren = false -ij_javascript_parentheses_expression_right_paren_on_new_line = false -ij_javascript_place_assignment_sign_on_next_line = true -ij_javascript_prefer_as_type_cast = false +ij_continuation_indent_size = 4 +ij_javascript_align_imports = true +ij_javascript_align_multiline_array_initializer_expression = true +ij_javascript_align_multiline_binary_operation = true +ij_javascript_align_multiline_chained_methods = false +ij_javascript_align_multiline_extends_list = true +ij_javascript_align_multiline_for = true +ij_javascript_align_multiline_parameters = true +ij_javascript_align_multiline_parameters_in_calls = true +ij_javascript_align_multiline_ternary_operation = true +ij_javascript_align_object_properties = 1 +ij_javascript_align_union_types = false +ij_javascript_align_var_statements = 2 +ij_javascript_array_initializer_new_line_after_left_brace = false +ij_javascript_array_initializer_right_brace_on_new_line = false +ij_javascript_array_initializer_wrap = on_every_item +ij_javascript_assignment_wrap = on_every_item +ij_javascript_binary_operation_sign_on_next_line = false +ij_javascript_binary_operation_wrap = on_every_item +ij_javascript_blacklist_imports = rxjs/Rx, node_modules/**, **/node_modules/**, @angular/material, @angular/material/typings/** +ij_javascript_blank_lines_after_imports = 1 +ij_javascript_blank_lines_around_class = 1 +ij_javascript_blank_lines_around_field = 0 +ij_javascript_blank_lines_around_function = 1 +ij_javascript_blank_lines_around_method = 1 +ij_javascript_block_brace_style = next_line +ij_javascript_block_comment_add_space = false +ij_javascript_block_comment_at_first_column = true +ij_javascript_call_parameters_new_line_after_left_paren = false +ij_javascript_call_parameters_right_paren_on_new_line = false +ij_javascript_call_parameters_wrap = on_every_item +ij_javascript_catch_on_new_line = true +ij_javascript_chained_call_dot_on_new_line = true +ij_javascript_class_brace_style = next_line +ij_javascript_comma_on_new_line = false +ij_javascript_do_while_brace_force = always +ij_javascript_else_on_new_line = true +ij_javascript_enforce_trailing_comma = remove +ij_javascript_extends_keyword_wrap = normal +ij_javascript_extends_list_wrap = on_every_item +ij_javascript_field_prefix = _ +ij_javascript_file_name_style = relaxed +ij_javascript_finally_on_new_line = true +ij_javascript_for_brace_force = if_multiline +ij_javascript_for_statement_new_line_after_left_paren = false +ij_javascript_for_statement_right_paren_on_new_line = false +ij_javascript_for_statement_wrap = on_every_item +ij_javascript_force_quote_style = true +ij_javascript_force_semicolon_style = true +ij_javascript_function_expression_brace_style = next_line +ij_javascript_if_brace_force = if_multiline +ij_javascript_import_merge_members = global +ij_javascript_import_prefer_absolute_path = true +ij_javascript_import_sort_members = true +ij_javascript_import_sort_module_name = true +ij_javascript_import_use_node_resolution = true +ij_javascript_imports_wrap = on_every_item +ij_javascript_indent_case_from_switch = true +ij_javascript_indent_chained_calls = true +ij_javascript_indent_package_children = 0 +ij_javascript_jsx_attribute_value = braces +ij_javascript_keep_blank_lines_in_code = 2 +ij_javascript_keep_first_column_comment = true +ij_javascript_keep_indents_on_empty_lines = false +ij_javascript_keep_line_breaks = true +ij_javascript_keep_simple_blocks_in_one_line = false +ij_javascript_keep_simple_methods_in_one_line = false +ij_javascript_line_comment_add_space = true +ij_javascript_line_comment_at_first_column = false +ij_javascript_method_brace_style = next_line +ij_javascript_method_call_chain_wrap = on_every_item +ij_javascript_method_parameters_new_line_after_left_paren = false +ij_javascript_method_parameters_right_paren_on_new_line = false +ij_javascript_method_parameters_wrap = on_every_item +ij_javascript_object_literal_wrap = on_every_item +ij_javascript_object_types_wrap = on_every_item +ij_javascript_parentheses_expression_new_line_after_left_paren = false +ij_javascript_parentheses_expression_right_paren_on_new_line = false +ij_javascript_place_assignment_sign_on_next_line = true +ij_javascript_prefer_as_type_cast = false ij_javascript_prefer_explicit_types_function_expression_returns = false -ij_javascript_prefer_explicit_types_function_returns = false -ij_javascript_prefer_explicit_types_vars_fields = false -ij_javascript_prefer_parameters_wrap = false -ij_javascript_property_prefix = -ij_javascript_reformat_c_style_comments = true -ij_javascript_space_after_colon = true -ij_javascript_space_after_comma = true -ij_javascript_space_after_dots_in_rest_parameter = false -ij_javascript_space_after_generator_mult = true -ij_javascript_space_after_property_colon = true -ij_javascript_space_after_quest = true -ij_javascript_space_after_type_colon = true -ij_javascript_space_after_unary_not = false -ij_javascript_space_before_async_arrow_lparen = false -ij_javascript_space_before_catch_keyword = true -ij_javascript_space_before_catch_left_brace = false -ij_javascript_space_before_catch_parentheses = false -ij_javascript_space_before_class_lbrace = false -ij_javascript_space_before_class_left_brace = true -ij_javascript_space_before_colon = true -ij_javascript_space_before_comma = false -ij_javascript_space_before_do_left_brace = false -ij_javascript_space_before_else_keyword = true -ij_javascript_space_before_else_left_brace = false -ij_javascript_space_before_finally_keyword = true -ij_javascript_space_before_finally_left_brace = false -ij_javascript_space_before_for_left_brace = false -ij_javascript_space_before_for_parentheses = false -ij_javascript_space_before_for_semicolon = false -ij_javascript_space_before_function_left_parenth = false -ij_javascript_space_before_generator_mult = false -ij_javascript_space_before_if_left_brace = false -ij_javascript_space_before_if_parentheses = false -ij_javascript_space_before_method_call_parentheses = false -ij_javascript_space_before_method_left_brace = false -ij_javascript_space_before_method_parentheses = false -ij_javascript_space_before_property_colon = false -ij_javascript_space_before_quest = true -ij_javascript_space_before_switch_left_brace = false -ij_javascript_space_before_switch_parentheses = false -ij_javascript_space_before_try_left_brace = false -ij_javascript_space_before_type_colon = false -ij_javascript_space_before_unary_not = false -ij_javascript_space_before_while_keyword = true -ij_javascript_space_before_while_left_brace = false -ij_javascript_space_before_while_parentheses = false -ij_javascript_spaces_around_additive_operators = true -ij_javascript_spaces_around_arrow_function_operator = true -ij_javascript_spaces_around_assignment_operators = true -ij_javascript_spaces_around_bitwise_operators = true -ij_javascript_spaces_around_equality_operators = true -ij_javascript_spaces_around_logical_operators = true -ij_javascript_spaces_around_multiplicative_operators = true -ij_javascript_spaces_around_relational_operators = true -ij_javascript_spaces_around_shift_operators = true -ij_javascript_spaces_around_unary_operator = false -ij_javascript_spaces_within_array_initializer_brackets = false -ij_javascript_spaces_within_brackets = false -ij_javascript_spaces_within_catch_parentheses = false -ij_javascript_spaces_within_for_parentheses = false -ij_javascript_spaces_within_if_parentheses = false -ij_javascript_spaces_within_imports = false -ij_javascript_spaces_within_interpolation_expressions = false -ij_javascript_spaces_within_method_call_parentheses = false -ij_javascript_spaces_within_method_parentheses = false -ij_javascript_spaces_within_object_literal_braces = false -ij_javascript_spaces_within_object_type_braces = true -ij_javascript_spaces_within_parentheses = false -ij_javascript_spaces_within_switch_parentheses = false -ij_javascript_spaces_within_type_assertion = false -ij_javascript_spaces_within_union_types = true -ij_javascript_spaces_within_while_parentheses = false -ij_javascript_special_else_if_treatment = true -ij_javascript_ternary_operation_signs_on_next_line = false -ij_javascript_ternary_operation_wrap = on_every_item -ij_javascript_union_types_wrap = on_every_item -ij_javascript_use_chained_calls_group_indents = true -ij_javascript_use_double_quotes = true -ij_javascript_use_explicit_js_extension = auto -ij_javascript_use_path_mapping = always -ij_javascript_use_public_modifier = false -ij_javascript_use_semicolon_after_statement = true -ij_javascript_var_declaration_wrap = normal -ij_javascript_while_brace_force = always -ij_javascript_while_on_new_line = false -ij_javascript_wrap_comments = false +ij_javascript_prefer_explicit_types_function_returns = false +ij_javascript_prefer_explicit_types_vars_fields = false +ij_javascript_prefer_parameters_wrap = false +ij_javascript_property_prefix = +ij_javascript_reformat_c_style_comments = true +ij_javascript_space_after_colon = true +ij_javascript_space_after_comma = true +ij_javascript_space_after_dots_in_rest_parameter = false +ij_javascript_space_after_generator_mult = true +ij_javascript_space_after_property_colon = true +ij_javascript_space_after_quest = true +ij_javascript_space_after_type_colon = true +ij_javascript_space_after_unary_not = false +ij_javascript_space_before_async_arrow_lparen = false +ij_javascript_space_before_catch_keyword = true +ij_javascript_space_before_catch_left_brace = false +ij_javascript_space_before_catch_parentheses = false +ij_javascript_space_before_class_lbrace = false +ij_javascript_space_before_class_left_brace = true +ij_javascript_space_before_colon = true +ij_javascript_space_before_comma = false +ij_javascript_space_before_do_left_brace = false +ij_javascript_space_before_else_keyword = true +ij_javascript_space_before_else_left_brace = false +ij_javascript_space_before_finally_keyword = true +ij_javascript_space_before_finally_left_brace = false +ij_javascript_space_before_for_left_brace = false +ij_javascript_space_before_for_parentheses = false +ij_javascript_space_before_for_semicolon = false +ij_javascript_space_before_function_left_parenth = false +ij_javascript_space_before_generator_mult = false +ij_javascript_space_before_if_left_brace = false +ij_javascript_space_before_if_parentheses = false +ij_javascript_space_before_method_call_parentheses = false +ij_javascript_space_before_method_left_brace = false +ij_javascript_space_before_method_parentheses = false +ij_javascript_space_before_property_colon = false +ij_javascript_space_before_quest = true +ij_javascript_space_before_switch_left_brace = false +ij_javascript_space_before_switch_parentheses = false +ij_javascript_space_before_try_left_brace = false +ij_javascript_space_before_type_colon = false +ij_javascript_space_before_unary_not = false +ij_javascript_space_before_while_keyword = true +ij_javascript_space_before_while_left_brace = false +ij_javascript_space_before_while_parentheses = false +ij_javascript_spaces_around_additive_operators = true +ij_javascript_spaces_around_arrow_function_operator = true +ij_javascript_spaces_around_assignment_operators = true +ij_javascript_spaces_around_bitwise_operators = true +ij_javascript_spaces_around_equality_operators = true +ij_javascript_spaces_around_logical_operators = true +ij_javascript_spaces_around_multiplicative_operators = true +ij_javascript_spaces_around_relational_operators = true +ij_javascript_spaces_around_shift_operators = true +ij_javascript_spaces_around_unary_operator = false +ij_javascript_spaces_within_array_initializer_brackets = false +ij_javascript_spaces_within_brackets = false +ij_javascript_spaces_within_catch_parentheses = false +ij_javascript_spaces_within_for_parentheses = false +ij_javascript_spaces_within_if_parentheses = false +ij_javascript_spaces_within_imports = false +ij_javascript_spaces_within_interpolation_expressions = false +ij_javascript_spaces_within_method_call_parentheses = false +ij_javascript_spaces_within_method_parentheses = false +ij_javascript_spaces_within_object_literal_braces = false +ij_javascript_spaces_within_object_type_braces = true +ij_javascript_spaces_within_parentheses = false +ij_javascript_spaces_within_switch_parentheses = false +ij_javascript_spaces_within_type_assertion = false +ij_javascript_spaces_within_union_types = true +ij_javascript_spaces_within_while_parentheses = false +ij_javascript_special_else_if_treatment = true +ij_javascript_ternary_operation_signs_on_next_line = false +ij_javascript_ternary_operation_wrap = on_every_item +ij_javascript_union_types_wrap = on_every_item +ij_javascript_use_chained_calls_group_indents = true +ij_javascript_use_double_quotes = true +ij_javascript_use_explicit_js_extension = auto +ij_javascript_use_path_mapping = always +ij_javascript_use_public_modifier = false +ij_javascript_use_semicolon_after_statement = true +ij_javascript_var_declaration_wrap = normal +ij_javascript_while_brace_force = always +ij_javascript_while_on_new_line = false +ij_javascript_wrap_comments = false [{*.comp,*.frag,*.fsh,*.geom,*.glsl,*.tesc,*.tese,*.vert,*.vsh}] ij_glsl_keep_indents_on_empty_lines = false [{*.har,*.jsb2,*.jsb3,*.json,*.jsonc,.babelrc,.eslintrc,.prettierrc,.stylelintrc,bowerrc,jest.config}] -indent_size = 2 -ij_json_array_wrapping = normal -ij_json_keep_blank_lines_in_code = 0 +indent_size = 2 +ij_json_array_wrapping = normal +ij_json_keep_blank_lines_in_code = 0 ij_json_keep_indents_on_empty_lines = false -ij_json_keep_line_breaks = true -ij_json_keep_trailing_comma = false -ij_json_object_wrapping = normal -ij_json_property_alignment = align_on_value -ij_json_space_after_colon = true -ij_json_space_after_comma = true -ij_json_space_before_colon = false -ij_json_space_before_comma = false -ij_json_spaces_within_braces = false -ij_json_spaces_within_brackets = false -ij_json_wrap_long_lines = false -indent_style = space +ij_json_keep_line_breaks = true +ij_json_keep_trailing_comma = false +ij_json_object_wrapping = normal +ij_json_property_alignment = align_on_value +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = false +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false +indent_style = space [{*.htm,*.html,*.ng,*.sht,*.shtm,*.shtml}] -ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3 -ij_html_align_attributes = true -ij_html_align_text = false -ij_html_attribute_wrap = normal -ij_html_block_comment_add_space = false -ij_html_block_comment_at_first_column = true +ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_add_space = false +ij_html_block_comment_at_first_column = true ij_html_do_not_align_children_of_min_lines = 0 -ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p -ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot -ij_html_enforce_quotes = false -ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var -ij_html_keep_blank_lines = 2 -ij_html_keep_indents_on_empty_lines = false -ij_html_keep_line_breaks = true -ij_html_keep_line_breaks_in_text = true -ij_html_keep_whitespaces = false -ij_html_keep_whitespaces_inside = span,pre,textarea -ij_html_line_comment_at_first_column = true -ij_html_new_line_after_last_attribute = never -ij_html_new_line_before_first_attribute = never -ij_html_quote_style = double -ij_html_remove_new_line_before_tags = br -ij_html_space_after_tag_name = false +ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p +ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot +ij_html_enforce_quotes = false +ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span, pre, textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false ij_html_space_around_equality_in_attribute = false -ij_html_space_inside_empty_tag = false -ij_html_text_wrap = normal +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal [{*.http,*.rest}] -indent_size = 0 -ij_continuation_indent_size = 4 -ij_http-request_call_parameters_wrap = normal -ij_http-request_method_parameters_wrap = split_into_lines -ij_http-request_space_before_comma = true +indent_size = 0 +ij_continuation_indent_size = 4 +ij_http-request_call_parameters_wrap = normal +ij_http-request_method_parameters_wrap = split_into_lines +ij_http-request_space_before_comma = true ij_http-request_spaces_around_assignment_operators = true [{*.markdown,*.md}] ij_markdown_force_one_space_after_blockquote_symbol = true -ij_markdown_force_one_space_after_header_symbol = true -ij_markdown_force_one_space_after_list_bullet = true -ij_markdown_force_one_space_between_words = true -ij_markdown_format_tables = true -ij_markdown_insert_quote_arrows_on_wrap = true -ij_markdown_keep_indents_on_empty_lines = false -ij_markdown_keep_line_breaks_inside_text_blocks = true -ij_markdown_max_lines_around_block_elements = 1 -ij_markdown_max_lines_around_header = 1 -ij_markdown_max_lines_between_paragraphs = 1 -ij_markdown_min_lines_around_block_elements = 1 -ij_markdown_min_lines_around_header = 1 -ij_markdown_min_lines_between_paragraphs = 1 -ij_markdown_wrap_text_if_long = true -ij_markdown_wrap_text_inside_blockquotes = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_format_tables = true +ij_markdown_insert_quote_arrows_on_wrap = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_keep_line_breaks_inside_text_blocks = true +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 1 +ij_markdown_min_lines_around_header = 1 +ij_markdown_min_lines_between_paragraphs = 1 +ij_markdown_wrap_text_if_long = true +ij_markdown_wrap_text_inside_blockquotes = true [{*.ps1,*.psd1,*.psm1}] -max_line_length = 115 -ij_powershell_align_multiline_binary_operation = true -ij_powershell_align_multiline_chained_methods = false -ij_powershell_align_multiline_for = true -ij_powershell_align_multiline_parameters = true -ij_powershell_align_multiline_parameters_in_calls = false -ij_powershell_binary_operation_wrap = on_every_item -ij_powershell_block_brace_style = next_line -ij_powershell_call_parameters_new_line_after_left_paren = false -ij_powershell_call_parameters_right_paren_on_new_line = false -ij_powershell_call_parameters_wrap = on_every_item -ij_powershell_catch_on_new_line = true -ij_powershell_class_annotation_wrap = split_into_lines -ij_powershell_class_brace_style = next_line -ij_powershell_else_on_new_line = true -ij_powershell_field_annotation_wrap = off -ij_powershell_finally_on_new_line = true -ij_powershell_for_statement_new_line_after_left_paren = false -ij_powershell_for_statement_right_paren_on_new_line = false -ij_powershell_for_statement_wrap = on_every_item -ij_powershell_keep_blank_lines_in_code = 2 -ij_powershell_keep_first_column_comment = true -ij_powershell_keep_line_breaks = true -ij_powershell_keep_simple_blocks_in_one_line = true -ij_powershell_keep_simple_classes_in_one_line = false -ij_powershell_keep_simple_lambdas_in_one_line = true -ij_powershell_keep_simple_methods_in_one_line = true -ij_powershell_method_annotation_wrap = split_into_lines -ij_powershell_method_brace_style = next_line -ij_powershell_method_call_chain_wrap = on_every_item -ij_powershell_method_parameters_new_line_after_left_paren = false -ij_powershell_method_parameters_right_paren_on_new_line = false -ij_powershell_method_parameters_wrap = on_every_item -ij_powershell_parameter_annotation_wrap = off +max_line_length = 115 +ij_powershell_align_multiline_binary_operation = true +ij_powershell_align_multiline_chained_methods = false +ij_powershell_align_multiline_for = true +ij_powershell_align_multiline_parameters = true +ij_powershell_align_multiline_parameters_in_calls = false +ij_powershell_binary_operation_wrap = on_every_item +ij_powershell_block_brace_style = next_line +ij_powershell_call_parameters_new_line_after_left_paren = false +ij_powershell_call_parameters_right_paren_on_new_line = false +ij_powershell_call_parameters_wrap = on_every_item +ij_powershell_catch_on_new_line = true +ij_powershell_class_annotation_wrap = split_into_lines +ij_powershell_class_brace_style = next_line +ij_powershell_else_on_new_line = true +ij_powershell_field_annotation_wrap = off +ij_powershell_finally_on_new_line = true +ij_powershell_for_statement_new_line_after_left_paren = false +ij_powershell_for_statement_right_paren_on_new_line = false +ij_powershell_for_statement_wrap = on_every_item +ij_powershell_keep_blank_lines_in_code = 2 +ij_powershell_keep_first_column_comment = true +ij_powershell_keep_line_breaks = true +ij_powershell_keep_simple_blocks_in_one_line = true +ij_powershell_keep_simple_classes_in_one_line = false +ij_powershell_keep_simple_lambdas_in_one_line = true +ij_powershell_keep_simple_methods_in_one_line = true +ij_powershell_method_annotation_wrap = split_into_lines +ij_powershell_method_brace_style = next_line +ij_powershell_method_call_chain_wrap = on_every_item +ij_powershell_method_parameters_new_line_after_left_paren = false +ij_powershell_method_parameters_right_paren_on_new_line = false +ij_powershell_method_parameters_wrap = on_every_item +ij_powershell_parameter_annotation_wrap = off ij_powershell_parentheses_expression_new_line_after_left_paren = false -ij_powershell_parentheses_expression_right_paren_on_new_line = false -ij_powershell_space_after_colon = true -ij_powershell_space_after_comma = true -ij_powershell_space_after_for_semicolon = true -ij_powershell_space_after_type_cast = false -ij_powershell_space_before_annotation_parameter_list = false -ij_powershell_space_before_array_initializer_left_brace = false -ij_powershell_space_before_catch_keyword = true -ij_powershell_space_before_catch_left_brace = false -ij_powershell_space_before_class_left_brace = false -ij_powershell_space_before_colon = true -ij_powershell_space_before_comma = false -ij_powershell_space_before_do_left_brace = false -ij_powershell_space_before_else_keyword = true -ij_powershell_space_before_else_left_brace = false -ij_powershell_space_before_finally_keyword = true -ij_powershell_space_before_finally_left_brace = false -ij_powershell_space_before_for_left_brace = false -ij_powershell_space_before_for_parentheses = false -ij_powershell_space_before_for_semicolon = false -ij_powershell_space_before_if_left_brace = false -ij_powershell_space_before_if_parentheses = false -ij_powershell_space_before_method_call_parentheses = false -ij_powershell_space_before_method_left_brace = false -ij_powershell_space_before_method_parentheses = false -ij_powershell_space_before_switch_left_brace = false -ij_powershell_space_before_switch_parentheses = false -ij_powershell_space_before_try_left_brace = false -ij_powershell_space_before_while_keyword = true -ij_powershell_space_before_while_left_brace = false -ij_powershell_space_before_while_parentheses = false -ij_powershell_space_within_empty_method_call_parentheses = false -ij_powershell_space_within_empty_method_parentheses = false -ij_powershell_spaces_around_additive_operators = true -ij_powershell_spaces_around_assignment_operators = true -ij_powershell_spaces_around_bitwise_operators = true -ij_powershell_spaces_around_logical_operators = true -ij_powershell_spaces_around_method_ref_dbl_colon = false -ij_powershell_spaces_around_multiplicative_operators = true -ij_powershell_spaces_around_relational_operators = true -ij_powershell_spaces_around_unary_operator = false -ij_powershell_spaces_within_annotation_parentheses = false -ij_powershell_spaces_within_braces = true -ij_powershell_spaces_within_brackets = false -ij_powershell_spaces_within_cast_parentheses = false -ij_powershell_spaces_within_for_parentheses = false -ij_powershell_spaces_within_if_parentheses = false -ij_powershell_spaces_within_method_call_parentheses = false -ij_powershell_spaces_within_method_parentheses = false -ij_powershell_spaces_within_parentheses = false -ij_powershell_spaces_within_switch_parentheses = false -ij_powershell_spaces_within_while_parentheses = false -ij_powershell_special_else_if_treatment = true -ij_powershell_while_on_new_line = false -ij_powershell_wrap_first_method_in_call_chain = false -ij_powershell_wrap_long_lines = false +ij_powershell_parentheses_expression_right_paren_on_new_line = false +ij_powershell_space_after_colon = true +ij_powershell_space_after_comma = true +ij_powershell_space_after_for_semicolon = true +ij_powershell_space_after_type_cast = false +ij_powershell_space_before_annotation_parameter_list = false +ij_powershell_space_before_array_initializer_left_brace = false +ij_powershell_space_before_catch_keyword = true +ij_powershell_space_before_catch_left_brace = false +ij_powershell_space_before_class_left_brace = false +ij_powershell_space_before_colon = true +ij_powershell_space_before_comma = false +ij_powershell_space_before_do_left_brace = false +ij_powershell_space_before_else_keyword = true +ij_powershell_space_before_else_left_brace = false +ij_powershell_space_before_finally_keyword = true +ij_powershell_space_before_finally_left_brace = false +ij_powershell_space_before_for_left_brace = false +ij_powershell_space_before_for_parentheses = false +ij_powershell_space_before_for_semicolon = false +ij_powershell_space_before_if_left_brace = false +ij_powershell_space_before_if_parentheses = false +ij_powershell_space_before_method_call_parentheses = false +ij_powershell_space_before_method_left_brace = false +ij_powershell_space_before_method_parentheses = false +ij_powershell_space_before_switch_left_brace = false +ij_powershell_space_before_switch_parentheses = false +ij_powershell_space_before_try_left_brace = false +ij_powershell_space_before_while_keyword = true +ij_powershell_space_before_while_left_brace = false +ij_powershell_space_before_while_parentheses = false +ij_powershell_space_within_empty_method_call_parentheses = false +ij_powershell_space_within_empty_method_parentheses = false +ij_powershell_spaces_around_additive_operators = true +ij_powershell_spaces_around_assignment_operators = true +ij_powershell_spaces_around_bitwise_operators = true +ij_powershell_spaces_around_logical_operators = true +ij_powershell_spaces_around_method_ref_dbl_colon = false +ij_powershell_spaces_around_multiplicative_operators = true +ij_powershell_spaces_around_relational_operators = true +ij_powershell_spaces_around_unary_operator = false +ij_powershell_spaces_within_annotation_parentheses = false +ij_powershell_spaces_within_braces = true +ij_powershell_spaces_within_brackets = false +ij_powershell_spaces_within_cast_parentheses = false +ij_powershell_spaces_within_for_parentheses = false +ij_powershell_spaces_within_if_parentheses = false +ij_powershell_spaces_within_method_call_parentheses = false +ij_powershell_spaces_within_method_parentheses = false +ij_powershell_spaces_within_parentheses = false +ij_powershell_spaces_within_switch_parentheses = false +ij_powershell_spaces_within_while_parentheses = false +ij_powershell_special_else_if_treatment = true +ij_powershell_while_on_new_line = false +ij_powershell_wrap_first_method_in_call_chain = false +ij_powershell_wrap_long_lines = false [{*.py,*.pyw}] -ij_python_align_collections_and_comprehensions = true -ij_python_align_multiline_imports = true -ij_python_align_multiline_parameters = true -ij_python_align_multiline_parameters_in_calls = true -ij_python_blank_line_at_file_end = false -ij_python_blank_lines_after_imports = 1 -ij_python_blank_lines_after_local_imports = 0 -ij_python_blank_lines_around_class = 1 -ij_python_blank_lines_around_method = 1 -ij_python_blank_lines_around_top_level_classes_functions = 2 -ij_python_blank_lines_before_first_method = 0 -ij_python_call_parameters_new_line_after_left_paren = false -ij_python_call_parameters_right_paren_on_new_line = false -ij_python_call_parameters_wrap = on_every_item -ij_python_dict_alignment = 0 -ij_python_dict_new_line_after_left_brace = false -ij_python_dict_new_line_before_right_brace = false -ij_python_dict_wrapping = 5 -ij_python_from_import_new_line_after_left_parenthesis = false -ij_python_from_import_new_line_before_right_parenthesis = false -ij_python_from_import_parentheses_force_if_multiline = false -ij_python_from_import_trailing_comma_if_multiline = false -ij_python_from_import_wrapping = 5 -ij_python_hang_closing_brackets = true -ij_python_keep_blank_lines_in_code = 1 -ij_python_keep_blank_lines_in_declarations = 1 -ij_python_keep_indents_on_empty_lines = false -ij_python_keep_line_breaks = true -ij_python_method_parameters_new_line_after_left_paren = false -ij_python_method_parameters_right_paren_on_new_line = false -ij_python_method_parameters_wrap = on_every_item -ij_python_new_line_after_colon = false -ij_python_new_line_after_colon_multi_clause = true -ij_python_optimize_imports_always_split_from_imports = false -ij_python_optimize_imports_case_insensitive_order = true -ij_python_optimize_imports_join_from_imports_with_same_source = false -ij_python_optimize_imports_sort_by_type_first = true -ij_python_optimize_imports_sort_imports = true -ij_python_optimize_imports_sort_names_in_from_imports = true -ij_python_space_after_comma = true -ij_python_space_after_number_sign = true -ij_python_space_after_py_colon = true -ij_python_space_before_backslash = true -ij_python_space_before_comma = false -ij_python_space_before_for_semicolon = false -ij_python_space_before_lbracket = false -ij_python_space_before_method_call_parentheses = false -ij_python_space_before_method_parentheses = false -ij_python_space_before_number_sign = true -ij_python_space_before_py_colon = false -ij_python_space_within_empty_method_call_parentheses = false -ij_python_space_within_empty_method_parentheses = false -ij_python_spaces_around_additive_operators = true -ij_python_spaces_around_assignment_operators = true -ij_python_spaces_around_bitwise_operators = true -ij_python_spaces_around_eq_in_keyword_argument = false -ij_python_spaces_around_eq_in_named_parameter = false -ij_python_spaces_around_equality_operators = true -ij_python_spaces_around_multiplicative_operators = true -ij_python_spaces_around_power_operator = true -ij_python_spaces_around_relational_operators = true -ij_python_spaces_around_shift_operators = true -ij_python_spaces_within_braces = false -ij_python_spaces_within_brackets = false -ij_python_spaces_within_method_call_parentheses = false -ij_python_spaces_within_method_parentheses = false -ij_python_use_continuation_indent_for_arguments = false +ij_python_align_collections_and_comprehensions = true +ij_python_align_multiline_imports = true +ij_python_align_multiline_parameters = true +ij_python_align_multiline_parameters_in_calls = true +ij_python_blank_line_at_file_end = false +ij_python_blank_lines_after_imports = 1 +ij_python_blank_lines_after_local_imports = 0 +ij_python_blank_lines_around_class = 1 +ij_python_blank_lines_around_method = 1 +ij_python_blank_lines_around_top_level_classes_functions = 2 +ij_python_blank_lines_before_first_method = 0 +ij_python_call_parameters_new_line_after_left_paren = false +ij_python_call_parameters_right_paren_on_new_line = false +ij_python_call_parameters_wrap = on_every_item +ij_python_dict_alignment = 0 +ij_python_dict_new_line_after_left_brace = false +ij_python_dict_new_line_before_right_brace = false +ij_python_dict_wrapping = 5 +ij_python_from_import_new_line_after_left_parenthesis = false +ij_python_from_import_new_line_before_right_parenthesis = false +ij_python_from_import_parentheses_force_if_multiline = false +ij_python_from_import_trailing_comma_if_multiline = false +ij_python_from_import_wrapping = 5 +ij_python_hang_closing_brackets = true +ij_python_keep_blank_lines_in_code = 1 +ij_python_keep_blank_lines_in_declarations = 1 +ij_python_keep_indents_on_empty_lines = false +ij_python_keep_line_breaks = true +ij_python_method_parameters_new_line_after_left_paren = false +ij_python_method_parameters_right_paren_on_new_line = false +ij_python_method_parameters_wrap = on_every_item +ij_python_new_line_after_colon = false +ij_python_new_line_after_colon_multi_clause = true +ij_python_optimize_imports_always_split_from_imports = false +ij_python_optimize_imports_case_insensitive_order = true +ij_python_optimize_imports_join_from_imports_with_same_source = false +ij_python_optimize_imports_sort_by_type_first = true +ij_python_optimize_imports_sort_imports = true +ij_python_optimize_imports_sort_names_in_from_imports = true +ij_python_space_after_comma = true +ij_python_space_after_number_sign = true +ij_python_space_after_py_colon = true +ij_python_space_before_backslash = true +ij_python_space_before_comma = false +ij_python_space_before_for_semicolon = false +ij_python_space_before_lbracket = false +ij_python_space_before_method_call_parentheses = false +ij_python_space_before_method_parentheses = false +ij_python_space_before_number_sign = true +ij_python_space_before_py_colon = false +ij_python_space_within_empty_method_call_parentheses = false +ij_python_space_within_empty_method_parentheses = false +ij_python_spaces_around_additive_operators = true +ij_python_spaces_around_assignment_operators = true +ij_python_spaces_around_bitwise_operators = true +ij_python_spaces_around_eq_in_keyword_argument = false +ij_python_spaces_around_eq_in_named_parameter = false +ij_python_spaces_around_equality_operators = true +ij_python_spaces_around_multiplicative_operators = true +ij_python_spaces_around_power_operator = true +ij_python_spaces_around_relational_operators = true +ij_python_spaces_around_shift_operators = true +ij_python_spaces_within_braces = false +ij_python_spaces_within_brackets = false +ij_python_spaces_within_method_call_parentheses = false +ij_python_spaces_within_method_parentheses = false +ij_python_use_continuation_indent_for_arguments = false ij_python_use_continuation_indent_for_collection_and_comprehensions = false -ij_python_use_continuation_indent_for_parameters = true -ij_python_wrap_long_lines = false +ij_python_use_continuation_indent_for_parameters = true +ij_python_wrap_long_lines = false [{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}] ij_toml_keep_indents_on_empty_lines = false [{*.yaml,*.yml,pubspec.lock}] -indent_size = 2 -ij_yaml_align_values_properties = on_value -ij_yaml_autoinsert_sequence_marker = true -ij_yaml_block_mapping_on_new_line = false -ij_yaml_indent_sequence_value = true +indent_size = 2 +ij_yaml_align_values_properties = on_value +ij_yaml_autoinsert_sequence_marker = true +ij_yaml_block_mapping_on_new_line = false +ij_yaml_indent_sequence_value = true ij_yaml_keep_indents_on_empty_lines = false -ij_yaml_keep_line_breaks = true -ij_yaml_sequence_on_new_line = false -ij_yaml_space_before_colon = false -ij_yaml_spaces_within_braces = true -ij_yaml_spaces_within_brackets = true -indent_style = space +ij_yaml_keep_line_breaks = true +ij_yaml_sequence_on_new_line = false +ij_yaml_space_before_colon = false +ij_yaml_spaces_within_braces = true +ij_yaml_spaces_within_brackets = true +indent_style = space [*.{appxmanifest,asax,ascx,aspx,axaml,build,c,c++,cc,cginc,compute,cp,cpp,cppm,cs,cshtml,cu,cuh,cxx,dtd,fs,fsi,fsscript,fsx,fx,fxh,h,hh,hlsl,hlsli,hlslinc,hpp,hxx,inc,inl,ino,ipp,ixx,master,ml,mli,mpp,mq4,mq5,mqh,nuspec,paml,razor,resw,resx,shader,skin,tpp,usf,ush,uxml,vb,xaml,xamlx,xoml,xsd}] indent_style = space -indent_size = 4 -tab_width = 4 +indent_size = 4 +tab_width = 4 diff --git a/Aaru.CommonTypes.csproj b/Aaru.CommonTypes.csproj index 99ce1c5..53503c6 100644 --- a/Aaru.CommonTypes.csproj +++ b/Aaru.CommonTypes.csproj @@ -45,7 +45,7 @@ - + diff --git a/Aaru.CommonTypes.csproj.DotSettings b/Aaru.CommonTypes.csproj.DotSettings index fe8a506..c258655 100644 --- a/Aaru.CommonTypes.csproj.DotSettings +++ b/Aaru.CommonTypes.csproj.DotSettings @@ -2,6 +2,6 @@ xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xml:space="preserve"> True - True \ No newline at end of file + x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=localization/@EntryIndexedValue">True + True \ No newline at end of file diff --git a/AaruMetadata/ATA.cs b/AaruMetadata/ATA.cs index d5e1144..3e70696 100644 --- a/AaruMetadata/ATA.cs +++ b/AaruMetadata/ATA.cs @@ -49,8 +49,10 @@ public class ATA public Dump Identify { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator ATA(ATAType cicm) => cicm is null ? null : new ATA - { - Identify = cicm.Identify - }; -} + public static implicit operator ATA(ATAType cicm) => cicm is null + ? null + : new ATA + { + Identify = cicm.Identify + }; +} \ No newline at end of file diff --git a/AaruMetadata/Advertisement.cs b/AaruMetadata/Advertisement.cs index eb99ea6..6b0584d 100644 --- a/AaruMetadata/Advertisement.cs +++ b/AaruMetadata/Advertisement.cs @@ -114,4 +114,4 @@ public class Advertisement return adv; } -} +} \ No newline at end of file diff --git a/AaruMetadata/Architecture.cs b/AaruMetadata/Architecture.cs index 7355fd0..e41ebe1 100644 --- a/AaruMetadata/Architecture.cs +++ b/AaruMetadata/Architecture.cs @@ -47,33 +47,83 @@ namespace Aaru.CommonTypes.AaruMetadata; public enum Architecture { [JsonPropertyName("4004")] - _4004, [JsonPropertyName("4040")] - _4040, [JsonPropertyName("6502")] - _6502, [JsonPropertyName("65816")] - _65816, [JsonPropertyName("8008")] - _8008, [JsonPropertyName("8051")] - _8051, [JsonPropertyName("8080")] - _8080, [JsonPropertyName("8085")] - _8085, Aarch64, Am29000, Amd64, - Apx432, Arm, Avr, - Avr32, Axp, Clipper, - Cray, Esa390, Hobbit, - I86, I860, I960, - Ia32, Ia64, M56K, - M6800, M6801, M6805, - M6809, M68K, M88K, - Mcs41, Mcs48, Mips32, - Mips64, Msp430, Nios2, - Openrisc, Parisc, PDP1, - PDP10, PDP11, PDP7, - PDP8, Pic, Power, - Ppc, Ppc64, Prism, - Renesasrx, Riscv, S360, - S370, Sh, Sh1, - Sh2, Sh3, Sh4, - Sh5, Sh64, Sparc, - Sparc64, Transputer, Vax, - We32000, X32, Z80, - Z800, Z8000, Z80000, + _4004, + [JsonPropertyName("4040")] + _4040, + [JsonPropertyName("6502")] + _6502, + [JsonPropertyName("65816")] + _65816, + [JsonPropertyName("8008")] + _8008, + [JsonPropertyName("8051")] + _8051, + [JsonPropertyName("8080")] + _8080, + [JsonPropertyName("8085")] + _8085, + Aarch64, + Am29000, + Amd64, + Apx432, + Arm, + Avr, + Avr32, + Axp, + Clipper, + Cray, + Esa390, + Hobbit, + I86, + I860, + I960, + Ia32, + Ia64, + M56K, + M6800, + M6801, + M6805, + M6809, + M68K, + M88K, + Mcs41, + Mcs48, + Mips32, + Mips64, + Msp430, + Nios2, + Openrisc, + Parisc, + PDP1, + PDP10, + PDP11, + PDP7, + PDP8, + Pic, + Power, + Ppc, + Ppc64, + Prism, + Renesasrx, + Riscv, + S360, + S370, + Sh, + Sh1, + Sh2, + Sh3, + Sh4, + Sh5, + Sh64, + Sparc, + Sparc64, + Transputer, + Vax, + We32000, + X32, + Z80, + Z800, + Z8000, + Z80000, Zarch -} +} \ No newline at end of file diff --git a/AaruMetadata/AudioMedia.cs b/AaruMetadata/AudioMedia.cs index 18c6cf9..12ea139 100644 --- a/AaruMetadata/AudioMedia.cs +++ b/AaruMetadata/AudioMedia.cs @@ -143,4 +143,4 @@ public class AudioBlock return blk; } -} +} \ No newline at end of file diff --git a/AaruMetadata/AudioVideo.cs b/AaruMetadata/AudioVideo.cs index 8ff335f..d2a682f 100644 --- a/AaruMetadata/AudioVideo.cs +++ b/AaruMetadata/AudioVideo.cs @@ -93,6 +93,7 @@ public class VideoTrack public uint Horizontal { get; set; } public uint Vertical { get; set; } public long MeanBitrate { get; set; } + [JsonPropertyName("3D")] public bool ThreeD { get; set; } @@ -196,69 +197,137 @@ public class Coordinates public double Longitude { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Coordinates(CoordinatesType cicm) => cicm is null ? null : new Coordinates - { - Latitude = cicm.Latitude, - Longitude = cicm.Longitude - }; + public static implicit operator Coordinates(CoordinatesType cicm) => cicm is null + ? null + : new Coordinates + { + Latitude = cicm.Latitude, + Longitude = cicm.Longitude + }; } -[JsonConverter(typeof(JsonStringEnumMemberConverter)), SuppressMessage("ReSharper", "InconsistentNaming")] +[JsonConverter(typeof(JsonStringEnumMemberConverter))] +[SuppressMessage("ReSharper", "InconsistentNaming")] public enum SourceFormat { [JsonPropertyName("ITU-A")] - ITUA, [JsonPropertyName("ITU-B")] - ITUB, [JsonPropertyName("ITU-C")] - ITUC, [JsonPropertyName("ITU-D")] - ITUD, [JsonPropertyName("ITU-E")] - ITUE, [JsonPropertyName("ITU-F")] - ITUF, [JsonPropertyName("ITU-G")] - ITUG, [JsonPropertyName("ITU-H")] - ITUH, [JsonPropertyName("ITU-I")] - ITUI, [JsonPropertyName("ITU-J")] - ITUJ, [JsonPropertyName("ITU-K")] - ITUK, [JsonPropertyName("ITU-L")] - ITUL, [JsonPropertyName("ITU-M")] - ITUM, [JsonPropertyName("ITU-N")] - ITUN, [JsonPropertyName("PAL-B")] - PALB, [JsonPropertyName("SECAM-B")] - SECAMB, [JsonPropertyName("PAL-D")] - PALD, [JsonPropertyName("SECAM-D")] - SECAMD, [JsonPropertyName("PAL-G")] - PALG, [JsonPropertyName("SECAM-G")] - SECAMG, [JsonPropertyName("PAL-H")] - PALH, [JsonPropertyName("PAL-I")] - PALI, [JsonPropertyName("PAL-K")] - PALK, [JsonPropertyName("SECAM-K")] - SECAMK, [JsonPropertyName("NTSC-M")] - NTSCM, [JsonPropertyName("PAL-N")] - PALN, [JsonPropertyName("PAL-M")] - PALM, [JsonPropertyName("SECAM-M")] - SECAMM, MUSE, PALplus, FM, - AM, COFDM, [JsonPropertyName("CAM-D")] - CAMD, DAB, [JsonPropertyName("DAB+")] - DAB1, DRM, [JsonPropertyName("DRM+")] - DRM1, FMeXtra, ATSC, ATSC2, - ATSC3, [JsonPropertyName("ATSC-M/H")] - ATSCMH, [JsonPropertyName("DVB-T")] - DVBT, [JsonPropertyName("DVB-T2")] - DVBT2, [JsonPropertyName("DVB-S")] - DVBS, [JsonPropertyName("DVB-S2")] - DVBS2, [JsonPropertyName("DVB-S2X")] - DVBS2X, [JsonPropertyName("DVB-C")] - DVBC, [JsonPropertyName("DVB-C2")] - DVBC2, [JsonPropertyName("DVB-H")] - DVBH, [JsonPropertyName("DVB-NGH")] - DVBNGH, [JsonPropertyName("DVB-SH")] - DVBSH, [JsonPropertyName("ISDB-T")] - ISDBT, [JsonPropertyName("ISDB-Tb")] - ISDBTb, [JsonPropertyName("ISDB-S")] - ISDBS, [JsonPropertyName("ISDB-C")] - ISDBC, [JsonPropertyName("1seg")] - Item1seg, DTMB, CCMB, [JsonPropertyName("T-DMB")] - TDMB, [JsonPropertyName("S-DMB")] - SDMB, IPTV, [JsonPropertyName("DVB-MT")] - DVBMT, [JsonPropertyName("DVB-MC")] - DVBMC, [JsonPropertyName("DVB-MS")] - DVBMS, ADR, SDR -} + ITUA, + [JsonPropertyName("ITU-B")] + ITUB, + [JsonPropertyName("ITU-C")] + ITUC, + [JsonPropertyName("ITU-D")] + ITUD, + [JsonPropertyName("ITU-E")] + ITUE, + [JsonPropertyName("ITU-F")] + ITUF, + [JsonPropertyName("ITU-G")] + ITUG, + [JsonPropertyName("ITU-H")] + ITUH, + [JsonPropertyName("ITU-I")] + ITUI, + [JsonPropertyName("ITU-J")] + ITUJ, + [JsonPropertyName("ITU-K")] + ITUK, + [JsonPropertyName("ITU-L")] + ITUL, + [JsonPropertyName("ITU-M")] + ITUM, + [JsonPropertyName("ITU-N")] + ITUN, + [JsonPropertyName("PAL-B")] + PALB, + [JsonPropertyName("SECAM-B")] + SECAMB, + [JsonPropertyName("PAL-D")] + PALD, + [JsonPropertyName("SECAM-D")] + SECAMD, + [JsonPropertyName("PAL-G")] + PALG, + [JsonPropertyName("SECAM-G")] + SECAMG, + [JsonPropertyName("PAL-H")] + PALH, + [JsonPropertyName("PAL-I")] + PALI, + [JsonPropertyName("PAL-K")] + PALK, + [JsonPropertyName("SECAM-K")] + SECAMK, + [JsonPropertyName("NTSC-M")] + NTSCM, + [JsonPropertyName("PAL-N")] + PALN, + [JsonPropertyName("PAL-M")] + PALM, + [JsonPropertyName("SECAM-M")] + SECAMM, + MUSE, + PALplus, + FM, + AM, + COFDM, + [JsonPropertyName("CAM-D")] + CAMD, + DAB, + [JsonPropertyName("DAB+")] + DAB1, + DRM, + [JsonPropertyName("DRM+")] + DRM1, + FMeXtra, + ATSC, + ATSC2, + ATSC3, + [JsonPropertyName("ATSC-M/H")] + ATSCMH, + [JsonPropertyName("DVB-T")] + DVBT, + [JsonPropertyName("DVB-T2")] + DVBT2, + [JsonPropertyName("DVB-S")] + DVBS, + [JsonPropertyName("DVB-S2")] + DVBS2, + [JsonPropertyName("DVB-S2X")] + DVBS2X, + [JsonPropertyName("DVB-C")] + DVBC, + [JsonPropertyName("DVB-C2")] + DVBC2, + [JsonPropertyName("DVB-H")] + DVBH, + [JsonPropertyName("DVB-NGH")] + DVBNGH, + [JsonPropertyName("DVB-SH")] + DVBSH, + [JsonPropertyName("ISDB-T")] + ISDBT, + [JsonPropertyName("ISDB-Tb")] + ISDBTb, + [JsonPropertyName("ISDB-S")] + ISDBS, + [JsonPropertyName("ISDB-C")] + ISDBC, + [JsonPropertyName("1seg")] + Item1seg, + DTMB, + CCMB, + [JsonPropertyName("T-DMB")] + TDMB, + [JsonPropertyName("S-DMB")] + SDMB, + IPTV, + [JsonPropertyName("DVB-MT")] + DVBMT, + [JsonPropertyName("DVB-MC")] + DVBMC, + [JsonPropertyName("DVB-MS")] + DVBMS, + ADR, + SDR +} \ No newline at end of file diff --git a/AaruMetadata/Barcode.cs b/AaruMetadata/Barcode.cs index 7509a77..24b6ef3 100644 --- a/AaruMetadata/Barcode.cs +++ b/AaruMetadata/Barcode.cs @@ -47,15 +47,33 @@ namespace Aaru.CommonTypes.AaruMetadata; [JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum BarcodeType { - Aztec, Codabar, Code11, - Code128, Code39, Code93, - CPC_Binary, EZcode, FIM, - ITF, ITF14, EAN13, - EAN8, MaxiCode, ISBN, - ISRC, MSI, ShotCode, - RM4SCC, QR, EAN5, - EAN2, POSTNET, PostBar, - Plessey, Pharmacode, PDF417, + Aztec, + Codabar, + Code11, + Code128, + Code39, + Code93, + CPC_Binary, + EZcode, + FIM, + ITF, + ITF14, + EAN13, + EAN8, + MaxiCode, + ISBN, + ISRC, + MSI, + ShotCode, + RM4SCC, + QR, + EAN5, + EAN2, + POSTNET, + PostBar, + Plessey, + Pharmacode, + PDF417, PatchCode } @@ -65,9 +83,11 @@ public class Barcode public string Value { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Barcode(Schemas.BarcodeType cicm) => cicm is null ? null : new Barcode - { - Type = (BarcodeType)cicm.type, - Value = cicm.Value - }; -} + public static implicit operator Barcode(Schemas.BarcodeType cicm) => cicm is null + ? null + : new Barcode + { + Type = (BarcodeType)cicm.type, + Value = cicm.Value + }; +} \ No newline at end of file diff --git a/AaruMetadata/BlockMedia.cs b/AaruMetadata/BlockMedia.cs index ee82d82..037bf8e 100644 --- a/AaruMetadata/BlockMedia.cs +++ b/AaruMetadata/BlockMedia.cs @@ -217,4 +217,4 @@ public class BlockTrack return trk; } -} +} \ No newline at end of file diff --git a/AaruMetadata/Book.cs b/AaruMetadata/Book.cs index fcf7382..960b749 100644 --- a/AaruMetadata/Book.cs +++ b/AaruMetadata/Book.cs @@ -94,4 +94,4 @@ public class Book return book; } -} +} \ No newline at end of file diff --git a/AaruMetadata/Checksum.cs b/AaruMetadata/Checksum.cs index 3d9d667..5b90f98 100644 --- a/AaruMetadata/Checksum.cs +++ b/AaruMetadata/Checksum.cs @@ -50,23 +50,42 @@ public class Checksum public string Value { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Checksum(Schemas.ChecksumType cicm) => cicm is null ? null : new Checksum - { - Value = cicm.Value, - Type = (ChecksumType)cicm.type - }; + public static implicit operator Checksum(Schemas.ChecksumType cicm) => cicm is null + ? null + : new Checksum + { + Value = cicm.Value, + Type = (ChecksumType)cicm.type + }; } [JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum ChecksumType { - Fletcher16, Fletcher32, Adler32, - CRC16, CRC16Ccitt, CRC32, - CRC64, Md4, Md5, - Dm6, Ripemd128, Ripemd160, - Ripemed320, Sha1, Sha224, - Sha256, Sha384, Sha512, - Sha3, Skein, Snefru, - Blake256, Blake512, Tiger, - Whirlpool, SpamSum -} + Fletcher16, + Fletcher32, + Adler32, + CRC16, + CRC16Ccitt, + CRC32, + CRC64, + Md4, + Md5, + Dm6, + Ripemd128, + Ripemd160, + Ripemed320, + Sha1, + Sha224, + Sha256, + Sha384, + Sha512, + Sha3, + Skein, + Snefru, + Blake256, + Blake512, + Tiger, + Whirlpool, + SpamSum +} \ No newline at end of file diff --git a/AaruMetadata/Contents.cs b/AaruMetadata/Contents.cs index 59fae2d..ffca286 100644 --- a/AaruMetadata/Contents.cs +++ b/AaruMetadata/Contents.cs @@ -234,4 +234,4 @@ public class Directory return dir; } -} +} \ No newline at end of file diff --git a/AaruMetadata/Dimensions.cs b/AaruMetadata/Dimensions.cs index 9f37538..1a4e70d 100644 --- a/AaruMetadata/Dimensions.cs +++ b/AaruMetadata/Dimensions.cs @@ -52,13 +52,22 @@ public class Dimensions public double Thickness { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Dimensions(DimensionsType cicm) => cicm is null ? null : new Dimensions - { - Diameter = cicm.DiameterSpecified ? cicm.Diameter : null, - Height = cicm.HeightSpecified ? cicm.Height : null, - Width = cicm.WidthSpecified ? cicm.Width : null, - Thickness = cicm.Thickness - }; + public static implicit operator Dimensions(DimensionsType cicm) => cicm is null + ? null + : new Dimensions + { + Diameter = + cicm.DiameterSpecified + ? cicm.Diameter + : null, + Height = cicm.HeightSpecified + ? cicm.Height + : null, + Width = cicm.WidthSpecified + ? cicm.Width + : null, + Thickness = cicm.Thickness + }; /// Gets the physical dimensions, in metadata expected format, for a given media type /// Media type @@ -69,7 +78,8 @@ public class Dimensions switch(mediaType) { - #region 5.25" floppy disk + #region 5.25" floppy disk + case MediaType.Apple32SS: case MediaType.Apple32DS: case MediaType.Apple33SS: @@ -112,9 +122,11 @@ public class Dimensions dmns.Thickness = 1.65; return dmns; - #endregion 5.25" floppy disk - #region 3.5" floppy disk + #endregion 5.25" floppy disk + + #region 3.5" floppy disk + case MediaType.AppleSonySS: case MediaType.AppleSonyDS: case MediaType.DOS_35_SS_DD_8: @@ -147,9 +159,11 @@ public class Dimensions dmns.Thickness = 3.3; return dmns; - #endregion 3.5" floppy disk - #region 8" floppy disk + #endregion 3.5" floppy disk + + #region 8" floppy disk + case MediaType.IBM23FD: case MediaType.IBM33FD_128: case MediaType.IBM33FD_256: @@ -176,9 +190,11 @@ public class Dimensions dmns.Thickness = 1.65; return dmns; - #endregion 8" floppy disk - #region 356mm magneto optical + #endregion 8" floppy disk + + #region 356mm magneto optical + case MediaType.ECMA_260: case MediaType.ECMA_260_Double: // According to ECMA-260 et al @@ -189,9 +205,11 @@ public class Dimensions dmns.Thickness = 25.4; return dmns; - #endregion 356mm magneto optical - #region 300mm magneto optical + #endregion 356mm magneto optical + + #region 300mm magneto optical + case MediaType.ECMA_189: case MediaType.ECMA_190: case MediaType.ECMA_317: @@ -203,9 +221,11 @@ public class Dimensions dmns.Thickness = 17; return dmns; - #endregion 300mm magneto optical - #region 5.25" magneto optical + #endregion 300mm magneto optical + + #region 5.25" magneto optical + case MediaType.ECMA_153: case MediaType.ECMA_153_512: case MediaType.ECMA_183_512: @@ -238,9 +258,11 @@ public class Dimensions dmns.Thickness = 11; return dmns; - #endregion 5.25" magneto optical - #region 3.5" magneto optical + #endregion 5.25" magneto optical + + #region 3.5" magneto optical + case MediaType.ECMA_154: case MediaType.ECMA_201: case MediaType.ECMA_201_ROM: @@ -257,7 +279,8 @@ public class Dimensions dmns.Thickness = 6; return dmns; - #endregion 3.5" magneto optical + + #endregion 3.5" magneto optical case MediaType.PD650: case MediaType.PD650_WORM: @@ -983,7 +1006,8 @@ public class Dimensions return dmns; - #region CD/DVD/BD + #region CD/DVD/BD + case MediaType.CDDA: case MediaType.CDG: case MediaType.CDEG: @@ -1083,9 +1107,11 @@ public class Dimensions dmns.Thickness = 1.2; return dmns; - #endregion CD/DVD/BD - #region Apple Hard Disks + #endregion CD/DVD/BD + + #region Apple Hard Disks + // TODO: Find Apple Widget size case MediaType.AppleProfile: dmns.Height = 223.8; @@ -1103,7 +1129,8 @@ public class Dimensions dmns.Thickness = 78.7; return dmns; - #endregion Apple Hard Disks + + #endregion Apple Hard Disks case MediaType.UMD: dmns.Height = 64; @@ -1122,7 +1149,8 @@ public class Dimensions dmns.Thickness = 5.64; return dmns; - default: return null; + default: + return null; } } -} +} \ No newline at end of file diff --git a/AaruMetadata/Dump.cs b/AaruMetadata/Dump.cs index d89ecb2..0f7e614 100644 --- a/AaruMetadata/Dump.cs +++ b/AaruMetadata/Dump.cs @@ -52,12 +52,14 @@ public class Image public string Value { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Image(ImageType cicm) => cicm is null ? null : new Image - { - Format = cicm.format, - Offset = cicm.offsetSpecified ? cicm.offset : null, - Value = cicm.Value - }; + public static implicit operator Image(ImageType cicm) => cicm is null + ? null + : new Image + { + Format = cicm.format, + Offset = cicm.offsetSpecified ? cicm.offset : null, + Value = cicm.Value + }; } public class Dump @@ -128,11 +130,13 @@ public class File public string Value { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator File(FileType cicm) => cicm is null ? null : new File - { - Format = cicm.format, - Value = cicm.Value - }; + public static implicit operator File(FileType cicm) => cicm is null + ? null + : new File + { + Format = cicm.format, + Value = cicm.Value + }; } public class BlockSize @@ -141,9 +145,11 @@ public class BlockSize public uint Value { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator BlockSize(BlockSizeType cicm) => cicm is null ? null : new BlockSize - { - StartingBlock = cicm.startingBlock, - Value = cicm.Value - }; + public static implicit operator BlockSize(BlockSizeType cicm) => cicm is null + ? null + : new BlockSize + { + StartingBlock = cicm.startingBlock, + Value = cicm.Value + }; } \ No newline at end of file diff --git a/AaruMetadata/DumpHardware.cs b/AaruMetadata/DumpHardware.cs index ce4729e..ec28aae 100644 --- a/AaruMetadata/DumpHardware.cs +++ b/AaruMetadata/DumpHardware.cs @@ -89,11 +89,13 @@ public class Extent public ulong End { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Extent(ExtentType cicm) => cicm is null ? null : new Extent - { - Start = cicm.Start, - End = cicm.End - }; + public static implicit operator Extent(ExtentType cicm) => cicm is null + ? null + : new Extent + { + Start = cicm.Start, + End = cicm.End + }; } public class Software @@ -103,10 +105,12 @@ public class Software public string OperatingSystem { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Software(SoftwareType cicm) => cicm is null ? null : new Software - { - Name = cicm.Name, - Version = cicm.Version, - OperatingSystem = cicm.OperatingSystem - }; -} + public static implicit operator Software(SoftwareType cicm) => cicm is null + ? null + : new Software + { + Name = cicm.Name, + Version = cicm.Version, + OperatingSystem = cicm.OperatingSystem + }; +} \ No newline at end of file diff --git a/AaruMetadata/FileSystem.cs b/AaruMetadata/FileSystem.cs index 1012b25..c437bb7 100644 --- a/AaruMetadata/FileSystem.cs +++ b/AaruMetadata/FileSystem.cs @@ -68,27 +68,53 @@ public class FileSystem public FilesystemContents Contents { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator FileSystem(FileSystemType cicm) => cicm is null ? null : new FileSystem - { - Type = cicm.Type, - CreationDate = cicm.CreationDateSpecified ? cicm.CreationDate : null, - ModificationDate = cicm.ModificationDateSpecified ? cicm.ModificationDate : null, - BackupDate = cicm.BackupDateSpecified ? cicm.BackupDate : null, - ClusterSize = cicm.ClusterSize, - Clusters = cicm.Clusters, - Files = cicm.FilesSpecified ? cicm.Files : null, - Bootable = cicm.Bootable, - VolumeSerial = cicm.VolumeSerial, - VolumeName = cicm.VolumeName, - FreeClusters = cicm.FreeClustersSpecified ? cicm.FreeClusters : null, - Dirty = cicm.Dirty, - ExpirationDate = cicm.ExpirationDateSpecified ? cicm.ExpirationDate : null, - EffectiveDate = cicm.EffectiveDateSpecified ? cicm.EffectiveDate : null, - SystemIdentifier = cicm.SystemIdentifier, - VolumeSetIdentifier = cicm.VolumeSetIdentifier, - PublisherIdentifier = cicm.PublisherIdentifier, - DataPreparerIdentifier = cicm.DataPreparerIdentifier, - ApplicationIdentifier = cicm.ApplicationIdentifier, - Contents = cicm.Contents - }; -} + public static implicit operator FileSystem(FileSystemType cicm) => cicm is null + ? null + : new FileSystem + { + Type = cicm.Type, + CreationDate = + cicm.CreationDateSpecified + ? cicm.CreationDate + : null, + ModificationDate = + cicm.ModificationDateSpecified + ? cicm.ModificationDate + : null, + BackupDate = + cicm.BackupDateSpecified + ? cicm.BackupDate + : null, + ClusterSize = cicm.ClusterSize, + Clusters = cicm.Clusters, + Files = cicm.FilesSpecified + ? cicm.Files + : null, + Bootable = cicm.Bootable, + VolumeSerial = cicm.VolumeSerial, + VolumeName = cicm.VolumeName, + FreeClusters = + cicm.FreeClustersSpecified + ? cicm.FreeClusters + : null, + Dirty = cicm.Dirty, + ExpirationDate = + cicm.ExpirationDateSpecified + ? cicm.ExpirationDate + : null, + EffectiveDate = + cicm.EffectiveDateSpecified + ? cicm.EffectiveDate + : null, + SystemIdentifier = cicm.SystemIdentifier, + VolumeSetIdentifier = + cicm.VolumeSetIdentifier, + PublisherIdentifier = + cicm.PublisherIdentifier, + DataPreparerIdentifier = + cicm.DataPreparerIdentifier, + ApplicationIdentifier = + cicm.ApplicationIdentifier, + Contents = cicm.Contents + }; +} \ No newline at end of file diff --git a/AaruMetadata/Language.cs b/AaruMetadata/Language.cs index 0a75eee..bb522ee 100644 --- a/AaruMetadata/Language.cs +++ b/AaruMetadata/Language.cs @@ -44,170 +44,495 @@ using System.Text.Json.Serialization; namespace Aaru.CommonTypes.AaruMetadata; -[JsonConverter(typeof(JsonStringEnumMemberConverter)), SuppressMessage("ReSharper", "InconsistentNaming")] +[JsonConverter(typeof(JsonStringEnumMemberConverter))] +[SuppressMessage("ReSharper", "InconsistentNaming")] public enum Language { - aar, abk, ace, - ach, ada, ady, - afa, afh, afr, - ain, aka, akk, - alb, ale, alg, - alt, amh, ang, - anp, apa, ara, - arc, arg, arm, - arn, arp, art, - arw, asm, ast, - ath, aus, ava, - ave, awa, aym, - aze, bad, bai, - bak, bal, bam, - ban, baq, bas, - bat, bej, bel, - bem, ben, ber, - bho, bih, bik, - bin, bis, bla, - bnt, bos, bra, - bre, btk, bua, - bug, bul, bur, - byn, cad, cai, - car, cat, cau, - ceb, cel, cha, - chb, che, chg, - chi, chk, chm, - chn, cho, chp, - chr, chu, chv, - chy, cmc, cop, - cor, cos, cpe, - cpf, cpp, cre, - crh, crp, csb, - cus, cze, dak, - dan, dar, day, - del, den, dgr, - din, div, doi, - dra, dsb, dua, - dum, dut, dyu, - dzo, efi, egy, - eka, elx, eng, - enm, epo, est, - ewe, ewo, fan, - fao, fat, fij, - fil, fin, fiu, - fon, fre, frm, - fro, frr, frs, - fry, ful, fur, - gaa, gay, gba, - gem, geo, ger, - gez, gil, gla, - gle, glg, glv, - gmh, goh, gon, - gor, got, grb, - grc, gre, grn, - gsw, guj, gwi, - hai, hat, hau, - haw, heb, her, - hil, him, hin, - hit, hmn, hmo, - hrv, hsb, hun, - hup, iba, ibo, - ice, ido, iii, - ijo, iku, ile, - ilo, ina, inc, - ind, ine, inh, - ipk, ira, iro, - ita, jav, jbo, - jpn, jpr, jrb, - kaa, kab, kac, - kal, kam, kan, - kar, kas, kau, - kaw, kaz, kbd, - kha, khi, khm, - kho, kik, kin, - kir, kmb, kok, - kom, kon, kor, - kos, kpe, krc, - krl, kro, kru, - kua, kum, kur, - kut, lad, lah, - lam, lao, lat, - lav, lez, lim, - lin, lit, lol, - loz, ltz, lua, - lub, lug, lui, - lun, luo, lus, - mac, mad, mag, - mah, mai, mak, - mal, man, mao, - map, mar, mas, - may, mdf, mdr, - men, mga, mic, - min, mis, mkh, - mlg, mlt, mnc, - mni, mno, moh, - mon, mos, mul, - mun, mus, mwl, - mwr, myn, myv, - nah, nai, nap, - nau, nav, nbl, - nde, ndo, nds, - nep, @new, nia, - nic, niu, nno, - nob, nog, non, - nor, nqo, nso, - nub, nwc, nya, - nym, nyn, nyo, - nzi, oci, oji, - ori, orm, osa, - oss, ota, oto, - paa, pag, pal, - pam, pan, pap, - pau, peo, per, - phi, phn, pli, - pol, pon, por, - pra, pro, pus, + aar, + abk, + ace, + ach, + ada, + ady, + afa, + afh, + afr, + ain, + aka, + akk, + alb, + ale, + alg, + alt, + amh, + ang, + anp, + apa, + ara, + arc, + arg, + arm, + arn, + arp, + art, + arw, + asm, + ast, + ath, + aus, + ava, + ave, + awa, + aym, + aze, + bad, + bai, + bak, + bal, + bam, + ban, + baq, + bas, + bat, + bej, + bel, + bem, + ben, + ber, + bho, + bih, + bik, + bin, + bis, + bla, + bnt, + bos, + bra, + bre, + btk, + bua, + bug, + bul, + bur, + byn, + cad, + cai, + car, + cat, + cau, + ceb, + cel, + cha, + chb, + che, + chg, + chi, + chk, + chm, + chn, + cho, + chp, + chr, + chu, + chv, + chy, + cmc, + cop, + cor, + cos, + cpe, + cpf, + cpp, + cre, + crh, + crp, + csb, + cus, + cze, + dak, + dan, + dar, + day, + del, + den, + dgr, + din, + div, + doi, + dra, + dsb, + dua, + dum, + dut, + dyu, + dzo, + efi, + egy, + eka, + elx, + eng, + enm, + epo, + est, + ewe, + ewo, + fan, + fao, + fat, + fij, + fil, + fin, + fiu, + fon, + fre, + frm, + fro, + frr, + frs, + fry, + ful, + fur, + gaa, + gay, + gba, + gem, + geo, + ger, + gez, + gil, + gla, + gle, + glg, + glv, + gmh, + goh, + gon, + gor, + got, + grb, + grc, + gre, + grn, + gsw, + guj, + gwi, + hai, + hat, + hau, + haw, + heb, + her, + hil, + him, + hin, + hit, + hmn, + hmo, + hrv, + hsb, + hun, + hup, + iba, + ibo, + ice, + ido, + iii, + ijo, + iku, + ile, + ilo, + ina, + inc, + ind, + ine, + inh, + ipk, + ira, + iro, + ita, + jav, + jbo, + jpn, + jpr, + jrb, + kaa, + kab, + kac, + kal, + kam, + kan, + kar, + kas, + kau, + kaw, + kaz, + kbd, + kha, + khi, + khm, + kho, + kik, + kin, + kir, + kmb, + kok, + kom, + kon, + kor, + kos, + kpe, + krc, + krl, + kro, + kru, + kua, + kum, + kur, + kut, + lad, + lah, + lam, + lao, + lat, + lav, + lez, + lim, + lin, + lit, + lol, + loz, + ltz, + lua, + lub, + lug, + lui, + lun, + luo, + lus, + mac, + mad, + mag, + mah, + mai, + mak, + mal, + man, + mao, + map, + mar, + mas, + may, + mdf, + mdr, + men, + mga, + mic, + min, + mis, + mkh, + mlg, + mlt, + mnc, + mni, + mno, + moh, + mon, + mos, + mul, + mun, + mus, + mwl, + mwr, + myn, + myv, + nah, + nai, + nap, + nau, + nav, + nbl, + nde, + ndo, + nds, + nep, + @new, + nia, + nic, + niu, + nno, + nob, + nog, + non, + nor, + nqo, + nso, + nub, + nwc, + nya, + nym, + nyn, + nyo, + nzi, + oci, + oji, + ori, + orm, + osa, + oss, + ota, + oto, + paa, + pag, + pal, + pam, + pan, + pap, + pau, + peo, + per, + phi, + phn, + pli, + pol, + pon, + por, + pra, + pro, + pus, [JsonPropertyName("qaa-qtz")] - qaaqtz, que, raj, rap, - rar, roa, roh, - rom, rum, run, - rup, rus, sad, - sag, sah, sai, - sal, sam, san, - sas, sat, scn, - sco, sel, sem, - sga, sgn, shn, - sid, sin, sio, - sit, sla, slo, - slv, sma, sme, - smi, smj, smn, - smo, sms, sna, - snd, snk, sog, - som, son, sot, - spa, srd, srn, - srp, srr, ssa, - ssw, suk, sun, - sus, sux, swa, - swe, syc, syr, - tah, tai, tam, - tat, tel, tem, - ter, tet, tgk, - tgl, tha, tib, - tig, tir, tiv, - tkl, tlh, tli, - tmh, tog, ton, - tpi, tsi, tsn, - tso, tuk, tum, - tup, tur, tut, - tvl, twi, tyv, - udm, uga, uig, - ukr, umb, und, - urd, uzb, vai, - ven, vie, vol, - vot, wak, wal, - war, was, wel, - wen, wln, wol, - xal, xho, yao, - yap, yid, yor, - ypk, zap, zbl, - zen, zgh, zha, - znd, zul, zun, - zxx, zza + qaaqtz, + que, + raj, + rap, + rar, + roa, + roh, + rom, + rum, + run, + rup, + rus, + sad, + sag, + sah, + sai, + sal, + sam, + san, + sas, + sat, + scn, + sco, + sel, + sem, + sga, + sgn, + shn, + sid, + sin, + sio, + sit, + sla, + slo, + slv, + sma, + sme, + smi, + smj, + smn, + smo, + sms, + sna, + snd, + snk, + sog, + som, + son, + sot, + spa, + srd, + srn, + srp, + srr, + ssa, + ssw, + suk, + sun, + sus, + sux, + swa, + swe, + syc, + syr, + tah, + tai, + tam, + tat, + tel, + tem, + ter, + tet, + tgk, + tgl, + tha, + tib, + tig, + tir, + tiv, + tkl, + tlh, + tli, + tmh, + tog, + ton, + tpi, + tsi, + tsn, + tso, + tuk, + tum, + tup, + tur, + tut, + tvl, + twi, + tyv, + udm, + uga, + uig, + ukr, + umb, + und, + urd, + uzb, + vai, + ven, + vie, + vol, + vot, + wak, + wal, + war, + was, + wel, + wen, + wln, + wol, + xal, + xho, + yao, + yap, + yid, + yor, + ypk, + zap, + zbl, + zen, + zgh, + zha, + znd, + zul, + zun, + zxx, + zza } \ No newline at end of file diff --git a/AaruMetadata/Layers.cs b/AaruMetadata/Layers.cs index 12dc3dd..83c9490 100644 --- a/AaruMetadata/Layers.cs +++ b/AaruMetadata/Layers.cs @@ -75,10 +75,12 @@ public class Layers } } -[SuppressMessage("ReSharper", "InconsistentNaming"), JsonConverter(typeof(JsonStringEnumMemberConverter))] +[SuppressMessage("ReSharper", "InconsistentNaming")] +[JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum LayerType { - PTP, OTP + PTP, + OTP } public class LayeredText @@ -87,11 +89,15 @@ public class LayeredText public string Text { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator LayeredText(LayeredTextType cicm) => cicm is null ? null : new LayeredText - { - Layer = cicm.layerSpecified ? cicm.layer : null, - Text = cicm.Value - }; + public static implicit operator LayeredText(LayeredTextType cicm) => cicm is null + ? null + : new LayeredText + { + Layer = cicm.layerSpecified + ? cicm.layer + : null, + Text = cicm.Value + }; } public class Sectors @@ -100,9 +106,12 @@ public class Sectors public ulong Value { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Sectors(SectorsType cicm) => cicm is null ? null : new Sectors - { - Layer = cicm.layerSpecified ? cicm.layer : null, - Value = cicm.Value - }; -} + public static implicit operator Sectors(SectorsType cicm) => cicm is null + ? null + : new Sectors + { + Layer = + cicm.layerSpecified ? cicm.layer : null, + Value = cicm.Value + }; +} \ No newline at end of file diff --git a/AaruMetadata/LinearMedia.cs b/AaruMetadata/LinearMedia.cs index 4c55119..37533b5 100644 --- a/AaruMetadata/LinearMedia.cs +++ b/AaruMetadata/LinearMedia.cs @@ -119,4 +119,4 @@ public class LinearMedia return linearMedia; } -} +} \ No newline at end of file diff --git a/AaruMetadata/Magazine.cs b/AaruMetadata/Magazine.cs index 1edd8e3..31fd828 100644 --- a/AaruMetadata/Magazine.cs +++ b/AaruMetadata/Magazine.cs @@ -91,4 +91,4 @@ public class Magazine return magazine; } -} +} \ No newline at end of file diff --git a/AaruMetadata/MultiMediaCard.cs b/AaruMetadata/MultiMediaCard.cs index fab493f..24d0ee6 100644 --- a/AaruMetadata/MultiMediaCard.cs +++ b/AaruMetadata/MultiMediaCard.cs @@ -52,11 +52,13 @@ public class MultiMediaCard public Dump OCR { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator MultiMediaCard(MultiMediaCardType cicm) => cicm is null ? null : new MultiMediaCard - { - CSD = cicm.CSD, - CID = cicm.CID, - ExtendedCSD = cicm.ExtendedCSD, - OCR = cicm.OCR - }; -} + public static implicit operator MultiMediaCard(MultiMediaCardType cicm) => cicm is null + ? null + : new MultiMediaCard + { + CSD = cicm.CSD, + CID = cicm.CID, + ExtendedCSD = cicm.ExtendedCSD, + OCR = cicm.OCR + }; +} \ No newline at end of file diff --git a/AaruMetadata/OpticalDisc.cs b/AaruMetadata/OpticalDisc.cs index d9c5649..37e4206 100644 --- a/AaruMetadata/OpticalDisc.cs +++ b/AaruMetadata/OpticalDisc.cs @@ -309,11 +309,13 @@ public class TrackSequence public uint Session { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator TrackSequence(TrackSequenceType cicm) => cicm is null ? null : new TrackSequence - { - Number = cicm.TrackNumber, - Session = cicm.Session - }; + public static implicit operator TrackSequence(TrackSequenceType cicm) => cicm is null + ? null + : new TrackSequence + { + Number = cicm.TrackNumber, + Session = cicm.Session + }; } public class TrackIndex @@ -322,11 +324,13 @@ public class TrackIndex public int Value { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator TrackIndex(TrackIndexType cicm) => cicm is null ? null : new TrackIndex - { - Index = cicm.index, - Value = cicm.Value - }; + public static implicit operator TrackIndex(TrackIndexType cicm) => cicm is null + ? null + : new TrackIndex + { + Index = cicm.index, + Value = cicm.Value + }; } public class TrackFlags @@ -337,21 +341,29 @@ public class TrackFlags public bool PreEmphasis { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator TrackFlags(TrackFlagsType cicm) => cicm is null ? null : new TrackFlags - { - CopyPermitted = cicm.CopyPermitted, - Data = cicm.Data, - PreEmphasis = cicm.PreEmphasis, - Quadraphonic = cicm.Quadraphonic - }; + public static implicit operator TrackFlags(TrackFlagsType cicm) => cicm is null + ? null + : new TrackFlags + { + CopyPermitted = cicm.CopyPermitted, + Data = cicm.Data, + PreEmphasis = cicm.PreEmphasis, + Quadraphonic = cicm.Quadraphonic + }; } [JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum TrackType { - Audio, Mode0, Mode1, - Mode2, Mode2Form1, Mode2Form2, - Dvd, HdDvd, Bluray, + Audio, + Mode0, + Mode1, + Mode2, + Mode2Form1, + Mode2Form2, + Dvd, + HdDvd, + Bluray, Ddcd } @@ -383,4 +395,4 @@ public class SubChannel return subchannel; } -} +} \ No newline at end of file diff --git a/AaruMetadata/PCI.cs b/AaruMetadata/PCI.cs index 229b0a6..b3bfae7 100644 --- a/AaruMetadata/PCI.cs +++ b/AaruMetadata/PCI.cs @@ -55,11 +55,13 @@ public class Pci public LinearMedia ExpansionRom { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Pci(PCIType cicm) => cicm is null ? null : new Pci - { - VendorID = cicm.VendorID, - DeviceID = cicm.DeviceID, - Configuration = cicm.Configuration, - ExpansionRom = cicm.ExpansionROM - }; -} + public static implicit operator Pci(PCIType cicm) => cicm is null + ? null + : new Pci + { + VendorID = cicm.VendorID, + DeviceID = cicm.DeviceID, + Configuration = cicm.Configuration, + ExpansionRom = cicm.ExpansionROM + }; +} \ No newline at end of file diff --git a/AaruMetadata/PCMCIA.cs b/AaruMetadata/PCMCIA.cs index cfccfc4..c4148d2 100644 --- a/AaruMetadata/PCMCIA.cs +++ b/AaruMetadata/PCMCIA.cs @@ -56,14 +56,25 @@ public class Pcmcia public List AdditionalInformation { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Pcmcia(PCMCIAType cicm) => cicm is null ? null : new Pcmcia - { - Cis = cicm.CIS, - Compliance = cicm.Compliance, - ManufacturerCode = cicm.ManufacturerCodeSpecified ? cicm.ManufacturerCode : null, - CardCode = cicm.CardCodeSpecified ? cicm.CardCode : null, - Manufacturer = cicm.Manufacturer, - ProductName = cicm.ProductName, - AdditionalInformation = cicm.AdditionalInformation is null ? null : new List(cicm.AdditionalInformation) - }; -} + public static implicit operator Pcmcia(PCMCIAType cicm) => cicm is null + ? null + : new Pcmcia + { + Cis = cicm.CIS, + Compliance = cicm.Compliance, + ManufacturerCode = + cicm.ManufacturerCodeSpecified + ? cicm.ManufacturerCode + : null, + CardCode = cicm.CardCodeSpecified + ? cicm.CardCode + : null, + Manufacturer = cicm.Manufacturer, + ProductName = cicm.ProductName, + AdditionalInformation = + cicm.AdditionalInformation is null + ? null + : new List( + cicm.AdditionalInformation) + }; +} \ No newline at end of file diff --git a/AaruMetadata/PS3.cs b/AaruMetadata/PS3.cs index c0d3e28..bd3d1fc 100644 --- a/AaruMetadata/PS3.cs +++ b/AaruMetadata/PS3.cs @@ -50,9 +50,11 @@ public class Ps3Encryption public string Serial { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Ps3Encryption(PS3EncryptionType cicm) => cicm is null ? null : new Ps3Encryption - { - Key = cicm.Key, - Serial = cicm.Serial - }; -} + public static implicit operator Ps3Encryption(PS3EncryptionType cicm) => cicm is null + ? null + : new Ps3Encryption + { + Key = cicm.Key, + Serial = cicm.Serial + }; +} \ No newline at end of file diff --git a/AaruMetadata/Partition.cs b/AaruMetadata/Partition.cs index da5819b..9927b37 100644 --- a/AaruMetadata/Partition.cs +++ b/AaruMetadata/Partition.cs @@ -81,4 +81,4 @@ public class Partition return part; } -} +} \ No newline at end of file diff --git a/AaruMetadata/ReleaseType.cs b/AaruMetadata/ReleaseType.cs index 5679448..ac5d1c9 100644 --- a/AaruMetadata/ReleaseType.cs +++ b/AaruMetadata/ReleaseType.cs @@ -46,8 +46,16 @@ namespace Aaru.CommonTypes.AaruMetadata; [JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum ReleaseType { - Retail, Bundle, Coverdisc, - Subscription, Demo, OEM, - Shareware, FOSS, Adware, - Donationware, DigitalDownload, SaaS -} + Retail, + Bundle, + Coverdisc, + Subscription, + Demo, + OEM, + Shareware, + FOSS, + Adware, + Donationware, + DigitalDownload, + SaaS +} \ No newline at end of file diff --git a/AaruMetadata/RequiredOperatingSystem.cs b/AaruMetadata/RequiredOperatingSystem.cs index 7501b37..de486ed 100644 --- a/AaruMetadata/RequiredOperatingSystem.cs +++ b/AaruMetadata/RequiredOperatingSystem.cs @@ -52,9 +52,11 @@ public class RequiredOperatingSystem [Obsolete("Will be removed in Aaru 7")] public static implicit operator RequiredOperatingSystem(RequiredOperatingSystemType cicm) => - cicm is null ? null : new RequiredOperatingSystem - { - Name = cicm.Name, - Versions = cicm.Version is null ? null : new List(cicm.Version) - }; -} + cicm is null + ? null + : new RequiredOperatingSystem + { + Name = cicm.Name, + Versions = cicm.Version is null ? null : new List(cicm.Version) + }; +} \ No newline at end of file diff --git a/AaruMetadata/SCSI.cs b/AaruMetadata/SCSI.cs index 67137c0..de503f4 100644 --- a/AaruMetadata/SCSI.cs +++ b/AaruMetadata/SCSI.cs @@ -109,4 +109,4 @@ public class Evpd return evpd; } -} +} \ No newline at end of file diff --git a/AaruMetadata/Scanning.cs b/AaruMetadata/Scanning.cs index 9a474ca..35b8995 100644 --- a/AaruMetadata/Scanning.cs +++ b/AaruMetadata/Scanning.cs @@ -135,25 +135,45 @@ public class Case public Scans Scans { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Case(Schemas.CaseType cicm) => cicm is null ? null : new Case - { - Type = (CaseType)cicm.CaseType1, - Scans = cicm.Scans - }; + public static implicit operator Case(Schemas.CaseType cicm) => cicm is null + ? null + : new Case + { + Type = (CaseType)cicm.CaseType1, + Scans = cicm.Scans + }; } [JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum CaseType { - Jewel, BigJewel, SlimJewel, - Sleeve, Qpack, Digisleeve, - DiscboxSlider, CompacPlus, KeepCase, - SnapCase, SoftCase, EcoPack, - Liftlock, Spindle, Ps2Case, - Ps3Case, BlurayKeepCase, PsCase, - DcCase, SaturnCase, XboxCase, - Xbox360Case, XboxOneCase, SaturnBigCase, - GcCase, WiiCase, Unknown + Jewel, + BigJewel, + SlimJewel, + Sleeve, + Qpack, + Digisleeve, + DiscboxSlider, + CompacPlus, + KeepCase, + SnapCase, + SoftCase, + EcoPack, + Liftlock, + Spindle, + Ps2Case, + Ps3Case, + BlurayKeepCase, + PsCase, + DcCase, + SaturnCase, + XboxCase, + Xbox360Case, + XboxOneCase, + SaturnBigCase, + GcCase, + WiiCase, + Unknown } public class Scans @@ -162,11 +182,13 @@ public class Scans public MediaScan Media { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Scans(ScansType cicm) => cicm is null ? null : new Scans - { - Case = cicm.CaseScan, - Media = cicm.Scan - }; + public static implicit operator Scans(ScansType cicm) => cicm is null + ? null + : new Scans + { + Case = cicm.CaseScan, + Media = cicm.Scan + }; } public class CaseScan @@ -175,19 +197,28 @@ public class CaseScan public Scan Scan { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator CaseScan(CaseScanType cicm) => cicm is null ? null : new CaseScan - { - Element = (CaseScanElement)cicm.CaseScanElement, - Scan = cicm.Scan - }; + public static implicit operator CaseScan(CaseScanType cicm) => cicm is null + ? null + : new CaseScan + { + Element = (CaseScanElement)cicm. + CaseScanElement, + Scan = cicm.Scan + }; } [JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum CaseScanElement { - Sleeve, Inner, Inlay, - FrontBack, FrontFull, BoxFront, - BoxBack, BoxSpine, External + Sleeve, + Inner, + Inlay, + FrontBack, + FrontFull, + BoxFront, + BoxBack, + BoxSpine, + External } public class MediaScan @@ -196,18 +227,25 @@ public class MediaScan public Scan Scan { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator MediaScan(MediaScanType cicm) => cicm is null ? null : new MediaScan - { - Element = (MediaScanElement)cicm.MediaScanElement, - Scan = cicm.Scan - }; + public static implicit operator MediaScan(MediaScanType cicm) => cicm is null + ? null + : new MediaScan + { + Element = (MediaScanElement)cicm. + MediaScanElement, + Scan = cicm.Scan + }; } [JsonConverter(typeof(JsonStringEnumMemberConverter))] public enum MediaScanElement { - Up, Down, Front, - Back, Left, Right + Up, + Down, + Front, + Back, + Left, + Right } public class Scanner @@ -220,15 +258,17 @@ public class Scanner public string SoftwareVersion { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Scanner(ScannerType cicm) => cicm is null ? null : new Scanner - { - Author = cicm.Author, - Manufacturer = cicm.Manufacturer, - Model = cicm.Model, - Serial = cicm.Serial, - Software = cicm.Software, - SoftwareVersion = cicm.SoftwareVersion - }; + public static implicit operator Scanner(ScannerType cicm) => cicm is null + ? null + : new Scanner + { + Author = cicm.Author, + Manufacturer = cicm.Manufacturer, + Model = cicm.Model, + Serial = cicm.Serial, + Software = cicm.Software, + SoftwareVersion = cicm.SoftwareVersion + }; } public class ScanProcessing @@ -238,12 +278,15 @@ public class ScanProcessing public string SoftwareVersion { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator ScanProcessing(ScanProcessingType cicm) => cicm is null ? null : new ScanProcessing - { - Author = cicm.Author, - Software = cicm.Software, - SoftwareVersion = cicm.SoftwareVersion - }; + public static implicit operator ScanProcessing(ScanProcessingType cicm) => cicm is null + ? null + : new ScanProcessing + { + Author = cicm.Author, + Software = cicm.Software, + SoftwareVersion = + cicm.SoftwareVersion + }; } public class OCR @@ -276,4 +319,4 @@ public class OCR return ocr; } -} +} \ No newline at end of file diff --git a/AaruMetadata/SecureDigital.cs b/AaruMetadata/SecureDigital.cs index ae607b8..c72ad3f 100644 --- a/AaruMetadata/SecureDigital.cs +++ b/AaruMetadata/SecureDigital.cs @@ -52,11 +52,13 @@ public class SecureDigital public Dump OCR { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator SecureDigital(SecureDigitalType cicm) => cicm is null ? null : new SecureDigital - { - CID = cicm.CID, - CSD = cicm.CSD, - SCR = cicm.SCR, - OCR = cicm.OCR - }; -} + public static implicit operator SecureDigital(SecureDigitalType cicm) => cicm is null + ? null + : new SecureDigital + { + CID = cicm.CID, + CSD = cicm.CSD, + SCR = cicm.SCR, + OCR = cicm.OCR + }; +} \ No newline at end of file diff --git a/AaruMetadata/Sequence.cs b/AaruMetadata/Sequence.cs index cd83461..eeb03d9 100644 --- a/AaruMetadata/Sequence.cs +++ b/AaruMetadata/Sequence.cs @@ -53,12 +53,16 @@ public class Sequence public byte? Layer { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Sequence(SequenceType cicm) => cicm is null ? null : new Sequence - { - Title = cicm.MediaTitle, - MediaSequence = cicm.MediaSequence, - TotalMedia = cicm.TotalMedia, - Side = cicm.SideSpecified ? cicm.Side : null, - Layer = cicm.LayerSpecified ? cicm.Layer : null - }; -} + public static implicit operator Sequence(SequenceType cicm) => cicm is null + ? null + : new Sequence + { + Title = cicm.MediaTitle, + MediaSequence = cicm.MediaSequence, + TotalMedia = cicm.TotalMedia, + Side = cicm.SideSpecified ? cicm.Side : null, + Layer = cicm.LayerSpecified + ? cicm.Layer + : null + }; +} \ No newline at end of file diff --git a/AaruMetadata/Tape.cs b/AaruMetadata/Tape.cs index 9d597ef..e6c0125 100644 --- a/AaruMetadata/Tape.cs +++ b/AaruMetadata/Tape.cs @@ -126,4 +126,4 @@ public class TapeFile return file; } -} +} \ No newline at end of file diff --git a/AaruMetadata/USB.cs b/AaruMetadata/USB.cs index a9be393..6ed63cd 100644 --- a/AaruMetadata/USB.cs +++ b/AaruMetadata/USB.cs @@ -51,10 +51,12 @@ public class Usb public Dump Descriptors { get; set; } [Obsolete("Will be removed in Aaru 7")] - public static implicit operator Usb(USBType cicm) => cicm is null ? null : new Usb - { - VendorID = cicm.VendorID, - ProductID = cicm.ProductID, - Descriptors = cicm.Descriptors - }; -} + public static implicit operator Usb(USBType cicm) => cicm is null + ? null + : new Usb + { + VendorID = cicm.VendorID, + ProductID = cicm.ProductID, + Descriptors = cicm.Descriptors + }; +} \ No newline at end of file diff --git a/AaruMetadata/UserManual.cs b/AaruMetadata/UserManual.cs index 78b4a67..e2f9e86 100644 --- a/AaruMetadata/UserManual.cs +++ b/AaruMetadata/UserManual.cs @@ -73,4 +73,4 @@ public class UserManual return manual; } -} +} \ No newline at end of file diff --git a/AaruMetadata/Xbox.cs b/AaruMetadata/Xbox.cs index e5551ad..87da2a5 100644 --- a/AaruMetadata/Xbox.cs +++ b/AaruMetadata/Xbox.cs @@ -79,10 +79,12 @@ public class XboxSecuritySector [Obsolete("Will be removed in Aaru 7")] public static implicit operator XboxSecuritySector(XboxSecuritySectorsType cicm) => - cicm is null ? null : new XboxSecuritySector - { - RequestNumber = cicm.RequestNumber, - RequestVersion = cicm.RequestVersion, - SecuritySectors = cicm.SecuritySectors - }; -} + cicm is null + ? null + : new XboxSecuritySector + { + RequestNumber = cicm.RequestNumber, + RequestVersion = cicm.RequestVersion, + SecuritySectors = cicm.SecuritySectors + }; +} \ No newline at end of file diff --git a/Delegates.cs b/Delegates.cs index 67ffa9b..50eb68f 100644 --- a/Delegates.cs +++ b/Delegates.cs @@ -61,7 +61,7 @@ public delegate void InitTwoProgressHandler(); /// Updates two progress indicators with text public delegate void UpdateTwoProgressHandler(string text, long current, long maximum, string text2, long current2, - long maximum2); + long maximum2); /// Pulses a progress indicator with indeterminate boundaries public delegate void PulseTwoProgressHandler(string text, string text2); diff --git a/Enums/ErrorNumber.cs b/Enums/ErrorNumber.cs index 9788d16..9f81071 100644 --- a/Enums/ErrorNumber.cs +++ b/Enums/ErrorNumber.cs @@ -41,8 +41,9 @@ using System.Diagnostics.CodeAnalysis; namespace Aaru.CommonTypes.Enums; /// Enumerates error codes. Negative for UNIX error number equivalents, positive for Aaru error numbers. -[SuppressMessage("ReSharper", "InconsistentNaming"), SuppressMessage("ReSharper", "UnusedMember.Global"), - SuppressMessage("ReSharper", "IdentifierTypo")] +[SuppressMessage("ReSharper", "InconsistentNaming")] +[SuppressMessage("ReSharper", "UnusedMember.Global")] +[SuppressMessage("ReSharper", "IdentifierTypo")] public enum ErrorNumber { /// Operation not permitted diff --git a/Enums/Nes.cs b/Enums/Nes.cs index 1f22a86..2f95717 100644 --- a/Enums/Nes.cs +++ b/Enums/Nes.cs @@ -4,58 +4,117 @@ namespace Aaru.CommonTypes.Enums; public enum NesConsoleType : byte { - Nes = 0, Vs = 1, Playchoice = 2, - Extended = 3 + Nes = 0, + Vs = 1, + Playchoice = 2, + Extended = 3 } public enum NesTimingMode : byte { - RP2C02 = 0, RP2C07 = 1, Multiple = 2, + RP2C02 = 0, + RP2C07 = 1, + Multiple = 2, UMC6527P = 3 } public enum NesVsPpuType : byte { - RP2C03B = 0, RP2C03G = 1, RP2C04_0001 = 2, - RP2C04_0002 = 3, RP2C04_0003 = 4, RP2C04_0004 = 5, - RC2C03B = 6, RC2C03C = 7, RC2C05_01 = 8, - RC2C05_02 = 9, RC2C05_03 = 10, RC2C05_04 = 11, + RP2C03B = 0, + RP2C03G = 1, + RP2C04_0001 = 2, + RP2C04_0002 = 3, + RP2C04_0003 = 4, + RP2C04_0004 = 5, + RC2C03B = 6, + RC2C03C = 7, + RC2C05_01 = 8, + RC2C05_02 = 9, + RC2C05_03 = 10, + RC2C05_04 = 11, RC2C05_05 = 12 } public enum NesVsHardwareType : byte { - Normal = 0, RBI = 1, TKO = 2, - SuperXevious = 3, IceClimber = 4, Dual = 5, + Normal = 0, + RBI = 1, + TKO = 2, + SuperXevious = 3, + IceClimber = 4, + Dual = 5, RaidOnBungeling = 6 } public enum NesExtendedConsoleType : byte { - Normal = 0, Vs = 1, Playchoice = 2, - DecimalMode = 3, VT01_Monochrome = 4, VT01 = 5, - VT02 = 6, VT03 = 7, VT09 = 8, - VT32 = 9, VT369 = 10, UM6578 = 11 + Normal = 0, + Vs = 1, + Playchoice = 2, + DecimalMode = 3, + VT01_Monochrome = 4, + VT01 = 5, + VT02 = 6, + VT03 = 7, + VT09 = 8, + VT32 = 9, + VT369 = 10, + UM6578 = 11 } public enum NesDefaultExpansionDevice : byte { - Unspecified = 0, Controller = 1, FourScore = 2, - FourPlayersAdapter = 3, Vs = 4, VsSystem = 5, - VsPinball = 6, VsZapper = 7, Zapper = 8, - TwoZappers = 9, HyperShotLightgun = 0xA, PowerPadSideA = 0xB, - PowerPadSideB = 0xC, FamilyTrainerSideA = 0xD, FamilyTrainerSideB = 0xE, - ArkanoidVaus = 0xF, ArkanoidVausFamicom = 0x10, TwoVausDataRecorder = 0x11, - HyperShotController = 0x12, CoconutsPachinko = 0x13, ExcitingBoxing = 0x14, - JissenMahjong = 0x15, PartyTap = 0x16, OekaKidsTablet = 0x17, - SunsoftBarcodeBattler = 0x18, PianoKeyboard = 0x19, PokkunMoguraa = 0x1A, - TopRider = 0x1B, DoubleFisted = 0x1C, Famicom3DSystem = 0x1D, - DoremikkoKeyboard = 0x1E, GyroSet = 0x1F, DataRecorder = 0x20, - TurboFile = 0x21, StorageBattleBox = 0x22, FamilyBASICKeyboardDataRecorder = 0x23, - DongdaKeyboard = 0x24, BitCorpKeyboard = 0x25, SuborKeyboard = 0x26, - SuborKeyboardMouse = 0x27, SuborKeyboardMouse24 = 0x28, SNESMouse = 0x29, - Multicart = 0x2A, SNESControllers = 0x2B, RacerMateBicycle = 0x2C, - UForce = 0x2D, StackUp = 0x2E, PatrolmanLightgun = 0x2F, - C1CassetteInterface = 0x30, SwappedController = 0x31, SudokuPad = 0x32, - ABLPinball = 0x33, GoldenNuggetCasino = 0x34 + Unspecified = 0, + Controller = 1, + FourScore = 2, + FourPlayersAdapter = 3, + Vs = 4, + VsSystem = 5, + VsPinball = 6, + VsZapper = 7, + Zapper = 8, + TwoZappers = 9, + HyperShotLightgun = 0xA, + PowerPadSideA = 0xB, + PowerPadSideB = 0xC, + FamilyTrainerSideA = 0xD, + FamilyTrainerSideB = 0xE, + ArkanoidVaus = 0xF, + ArkanoidVausFamicom = 0x10, + TwoVausDataRecorder = 0x11, + HyperShotController = 0x12, + CoconutsPachinko = 0x13, + ExcitingBoxing = 0x14, + JissenMahjong = 0x15, + PartyTap = 0x16, + OekaKidsTablet = 0x17, + SunsoftBarcodeBattler = 0x18, + PianoKeyboard = 0x19, + PokkunMoguraa = 0x1A, + TopRider = 0x1B, + DoubleFisted = 0x1C, + Famicom3DSystem = 0x1D, + DoremikkoKeyboard = 0x1E, + GyroSet = 0x1F, + DataRecorder = 0x20, + TurboFile = 0x21, + StorageBattleBox = 0x22, + FamilyBASICKeyboardDataRecorder = 0x23, + DongdaKeyboard = 0x24, + BitCorpKeyboard = 0x25, + SuborKeyboard = 0x26, + SuborKeyboardMouse = 0x27, + SuborKeyboardMouse24 = 0x28, + SNESMouse = 0x29, + Multicart = 0x2A, + SNESControllers = 0x2B, + RacerMateBicycle = 0x2C, + UForce = 0x2D, + StackUp = 0x2E, + PatrolmanLightgun = 0x2F, + C1CassetteInterface = 0x30, + SwappedController = 0x31, + SudokuPad = 0x32, + ABLPinball = 0x33, + GoldenNuggetCasino = 0x34 } \ No newline at end of file diff --git a/Extents/ExtentsByte.cs b/Extents/ExtentsByte.cs index 2400532..9ca1ee4 100644 --- a/Extents/ExtentsByte.cs +++ b/Extents/ExtentsByte.cs @@ -72,7 +72,7 @@ public class ExtentsByte Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Extents/ExtentsConverter.cs b/Extents/ExtentsConverter.cs index c74e256..1e98141 100644 --- a/Extents/ExtentsConverter.cs +++ b/Extents/ExtentsConverter.cs @@ -58,11 +58,13 @@ public static class ExtentsConverter List list = new(); for(ulong i = 0; i < (ulong)tuples.LongLength; i++) + { list.Add(new Extent { Start = tuples[i].Item1, End = tuples[i].Item2 }); + } return list; } @@ -75,8 +77,8 @@ public static class ExtentsConverter if(extents == null) return null; - List> tuples = extents.Select(extent => new Tuple(extent.Start, extent.End)). - ToList(); + var tuples = extents.Select(extent => new Tuple(extent.Start, extent.End)). + ToList(); return new ExtentsULong(tuples); } diff --git a/Extents/ExtentsInt.cs b/Extents/ExtentsInt.cs index bc0af02..43a865e 100644 --- a/Extents/ExtentsInt.cs +++ b/Extents/ExtentsInt.cs @@ -72,7 +72,7 @@ public class ExtentsInt Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Extents/ExtentsLong.cs b/Extents/ExtentsLong.cs index 4390fe7..bb2751c 100644 --- a/Extents/ExtentsLong.cs +++ b/Extents/ExtentsLong.cs @@ -72,7 +72,7 @@ public class ExtentsLong Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Extents/ExtentsSByte.cs b/Extents/ExtentsSByte.cs index 7c9784e..d318a57 100644 --- a/Extents/ExtentsSByte.cs +++ b/Extents/ExtentsSByte.cs @@ -72,7 +72,7 @@ public class ExtentsSByte Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Extents/ExtentsShort.cs b/Extents/ExtentsShort.cs index a324900..909bb0f 100644 --- a/Extents/ExtentsShort.cs +++ b/Extents/ExtentsShort.cs @@ -72,7 +72,7 @@ public class ExtentsShort Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Extents/ExtentsUInt.cs b/Extents/ExtentsUInt.cs index baef4d2..bcd02b2 100644 --- a/Extents/ExtentsUInt.cs +++ b/Extents/ExtentsUInt.cs @@ -72,7 +72,7 @@ public class ExtentsUInt Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Extents/ExtentsULong.cs b/Extents/ExtentsULong.cs index bf56eaf..3d247b0 100644 --- a/Extents/ExtentsULong.cs +++ b/Extents/ExtentsULong.cs @@ -72,7 +72,7 @@ public class ExtentsULong Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Extents/ExtentsUShort.cs b/Extents/ExtentsUShort.cs index 020c727..0fbde75 100644 --- a/Extents/ExtentsUShort.cs +++ b/Extents/ExtentsUShort.cs @@ -72,7 +72,7 @@ public class ExtentsUShort Tuple removeTwo = null; Tuple itemToAdd = null; - for(int i = 0; i < _backend.Count; i++) + for(var i = 0; i < _backend.Count; i++) { // Already contained in an extent if(item >= _backend[i].Item1 && diff --git a/Filters.cs b/Filters.cs index 0276044..92a6855 100644 --- a/Filters.cs +++ b/Filters.cs @@ -60,6 +60,7 @@ public sealed class FiltersList Filters = new SortedDictionary(); foreach(Type type in assembly.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IFilter)))) + { try { var filter = (IFilter)type.GetConstructor(Type.EmptyTypes)?.Invoke(Array.Empty()); @@ -72,6 +73,7 @@ public sealed class FiltersList { AaruConsole.ErrorWriteLine(Localization.Exception_0, exception); } + } } /// Gets the filter that allows to read the specified path @@ -82,6 +84,7 @@ public sealed class FiltersList IFilter noFilter = null; foreach(IFilter filter in Filters.Values) + { try { if(filter.Id != new Guid("12345678-AAAA-BBBB-CCCC-123456789000")) @@ -102,6 +105,7 @@ public sealed class FiltersList { // Ignore and continue } + } if(!noFilter?.Identify(path) == true) return null; diff --git a/Geometry.cs b/Geometry.cs index de7d398..72110da 100644 --- a/Geometry.cs +++ b/Geometry.cs @@ -132,7 +132,8 @@ public static class Geometry geom.bytesPerSector == geometry.bytesPerSector && geom.encoding == geometry.encoding && geom.variableSectorsPerTrack == - geometry.variableSectorsPerTrack select geom.type). + geometry.variableSectorsPerTrack + select geom.type). FirstOrDefault(); /// Gets the geometry for a given media type diff --git a/Interfaces/IBaseImage.cs b/Interfaces/IBaseImage.cs index e196464..046e91c 100644 --- a/Interfaces/IBaseImage.cs +++ b/Interfaces/IBaseImage.cs @@ -49,17 +49,23 @@ public interface IBaseImage { /// Plugin author string Author { get; } + /// Gets the Aaru Metadata for the image AaruMetadata.Metadata AaruMetadata { get; } + /// List of dump hardware used to create the image from real media List DumpHardware { get; } + /// Gets the image format. /// The image format. string Format { get; } + /// Plugin UUID. Guid Id { get; } + /// Image information ImageInfo Info { get; } + /// Plugin name. string Name { get; } diff --git a/Interfaces/IBaseWritableImage.cs b/Interfaces/IBaseWritableImage.cs index 30cf52b..08c8ada 100644 --- a/Interfaces/IBaseWritableImage.cs +++ b/Interfaces/IBaseWritableImage.cs @@ -50,16 +50,22 @@ public interface IBaseWritableImage : IBaseImage { /// Contains a description of the last error string ErrorMessage { get; } + /// If set to true means the image is opened for writing bool IsWriting { get; } + /// Gets a list of known extensions for format auto-choosing IEnumerable KnownExtensions { get; } + /// Gets a list of that are supported by the media image format IEnumerable SupportedMediaTags { get; } + /// Gets a list of that are supported by the media image format IEnumerable SupportedMediaTypes { get; } + /// Retrieves a list of options supported by the filesystem, with name, type and description IEnumerable<(string name, Type type, string description, object @default)> SupportedOptions { get; } + /// Gets a list of that are supported by the media image format IEnumerable SupportedSectorTags { get; } diff --git a/Interfaces/IFilesystem.cs b/Interfaces/IFilesystem.cs index b4a5db8..66336d8 100644 --- a/Interfaces/IFilesystem.cs +++ b/Interfaces/IFilesystem.cs @@ -47,8 +47,10 @@ public interface IFilesystem { /// Plugin name (translatable). string Name { get; } + /// Plugin UUID. Guid Id { get; } + /// Plugin author string Author { get; } @@ -64,6 +66,6 @@ public interface IFilesystem /// Which encoding to use for this filesystem. /// Filesystem information. /// Information about the filesystem as expected by Aaru Metadata - void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, + void GetInformation(IMediaImage imagePlugin, Partition partition, Encoding encoding, out string information, out FileSystem metadata); } \ No newline at end of file diff --git a/Interfaces/IFilter.cs b/Interfaces/IFilter.cs index 4c756a3..00d9c0c 100644 --- a/Interfaces/IFilter.cs +++ b/Interfaces/IFilter.cs @@ -50,8 +50,10 @@ public interface IFilter { /// Descriptive name of the plugin string Name { get; } + /// Unique UUID of the plugin Guid Id { get; } + /// Plugin author string Author { get; } diff --git a/Interfaces/IFloppyImage.cs b/Interfaces/IFloppyImage.cs index 4972330..ac42255 100644 --- a/Interfaces/IFloppyImage.cs +++ b/Interfaces/IFloppyImage.cs @@ -108,7 +108,7 @@ public interface IFloppyImage : IMediaImage /// Logical sector ID. /// Status of request. /// Buffer where the sector data will be stored. - ErrorNumber ReadSectorLong(ushort track, byte head, ushort sector, out FloppySectorStatus status, + ErrorNumber ReadSectorLong(ushort track, byte head, ushort sector, out FloppySectorStatus status, out byte[] buffer); /// Verifies a track. diff --git a/Interfaces/IFluxImage.cs b/Interfaces/IFluxImage.cs index 341f62f..be9d5b7 100644 --- a/Interfaces/IFluxImage.cs +++ b/Interfaces/IFluxImage.cs @@ -62,7 +62,7 @@ public interface IFluxImage : IBaseImage /// Physical sub-step of track (e.g. half-track) /// Which capture to read. See also /// The resolution of the index capture in picoseconds - ErrorNumber ReadFluxIndexResolution(uint head, ushort track, byte subTrack, uint captureIndex, + ErrorNumber ReadFluxIndexResolution(uint head, ushort track, byte subTrack, uint captureIndex, out ulong resolution); /// Reads the resolution (sample rate) of a data signal capture in picoseconds. diff --git a/Interfaces/IOpticalMediaImage.cs b/Interfaces/IOpticalMediaImage.cs index e5ecbca..6cb2430 100644 --- a/Interfaces/IOpticalMediaImage.cs +++ b/Interfaces/IOpticalMediaImage.cs @@ -49,6 +49,7 @@ public interface IOpticalMediaImage : IMediaImage, IPartitionableMediaImage, IVe /// Gets the disc track extents (start, length). /// The track extents. List Tracks { get; } + /// Gets the sessions (optical discs only). /// The sessions. List Sessions { get; } @@ -117,6 +118,6 @@ public interface IOpticalMediaImage : IMediaImage, IPartitionableMediaImage, IVe /// Track. /// List of incorrect sectors /// List of uncheckable sectors - bool? VerifySectors(ulong sectorAddress, uint length, uint track, out List failingLbas, + bool? VerifySectors(ulong sectorAddress, uint length, uint track, out List failingLbas, out List unknownLbas); } \ No newline at end of file diff --git a/Interfaces/IPartition.cs b/Interfaces/IPartition.cs index 5a08d76..f52a2ec 100644 --- a/Interfaces/IPartition.cs +++ b/Interfaces/IPartition.cs @@ -47,8 +47,10 @@ public interface IPartition { /// Plugin name. string Name { get; } + /// Plugin UUID. Guid Id { get; } + /// Plugin author string Author { get; } diff --git a/Interfaces/IReadOnlyFilesystem.cs b/Interfaces/IReadOnlyFilesystem.cs index d2910c8..5b171bb 100644 --- a/Interfaces/IReadOnlyFilesystem.cs +++ b/Interfaces/IReadOnlyFilesystem.cs @@ -71,8 +71,8 @@ public interface IReadOnlyFilesystem : IFilesystem /// Which encoding to use for this filesystem. /// Dictionary of key=value pairs containing options to pass to the filesystem /// Filename namespace - ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding, - Dictionary options, string @namespace); + ErrorNumber Mount(IMediaImage imagePlugin, Partition partition, Encoding encoding, + Dictionary options, string @namespace); /// Frees all internal structures created by ErrorNumber Unmount(); @@ -132,11 +132,11 @@ public interface IReadOnlyFilesystem : IFilesystem return ErrorNumber.InvalidArgument; long desiredPosition = origin switch - { - SeekOrigin.Begin => position, - SeekOrigin.End => node.Length + position, - _ => node.Offset + position - }; + { + SeekOrigin.Begin => position, + SeekOrigin.End => node.Length + position, + _ => node.Offset + position + }; if(desiredPosition < 0) return ErrorNumber.InvalidArgument; @@ -169,9 +169,11 @@ public interface IReadOnlyFilesystem : IFilesystem /// Reads the next entry in the directory. /// Represent an opened directory. - /// The next entry name. + /// + /// The next entry name. /// null - /// if there are no more entries. + /// if there are no more entries. + /// /// Error number. ErrorNumber ReadDir(IDirNode node, out string filename); } @@ -181,8 +183,10 @@ public interface IFileNode { /// Path to the file string Path { get; } + /// File length long Length { get; } + /// Current position in file long Offset { get; set; } } diff --git a/Interfaces/ITapeImage.cs b/Interfaces/ITapeImage.cs index 4420e6b..8fe17b1 100644 --- a/Interfaces/ITapeImage.cs +++ b/Interfaces/ITapeImage.cs @@ -48,8 +48,10 @@ public interface ITapeImage : IMediaImage { /// Gets a list of all the files registered in the image List Files { get; } + /// Gets a list of all the partitions registered in the image List TapePartitions { get; } + /// If the media is a really a tape, as some formats can store non-tapes bool IsTape { get; } } \ No newline at end of file diff --git a/Interfaces/IWritableFluxImage.cs b/Interfaces/IWritableFluxImage.cs index 0ad95ce..c7fe181 100644 --- a/Interfaces/IWritableFluxImage.cs +++ b/Interfaces/IWritableFluxImage.cs @@ -54,8 +54,8 @@ public interface IWritableFluxImage : IFluxImage, IWritableImage /// Physical track (position of the heads over the floppy media, 0-based) /// Physical sub-step of track (e.g. half-track) /// Which capture slot to write to. See also - ErrorNumber WriteFluxCapture(ulong indexResolution, ulong dataResolution, byte[] indexBuffer, byte[] dataBuffer, - uint head, ushort track, byte subTrack, uint captureIndex); + ErrorNumber WriteFluxCapture(ulong indexResolution, ulong dataResolution, byte[] indexBuffer, byte[] dataBuffer, + uint head, ushort track, byte subTrack, uint captureIndex); /// Writes a capture's index stream. /// Error number @@ -66,7 +66,7 @@ public interface IWritableFluxImage : IFluxImage, IWritableImage /// Physical sub-step of track (e.g. half-track) /// Which capture to read. See also ErrorNumber WriteFluxIndexCapture(ulong resolution, byte[] index, uint head, ushort track, byte subTrack, - uint captureIndex); + uint captureIndex); /// Writes a capture's data stream. /// Error number @@ -77,5 +77,5 @@ public interface IWritableFluxImage : IFluxImage, IWritableImage /// Physical sub-step of track (e.g. half-track) /// Which capture to read. See also ErrorNumber WriteFluxDataCapture(ulong resolution, byte[] data, uint head, ushort track, byte subTrack, - uint captureIndex); + uint captureIndex); } \ No newline at end of file diff --git a/Interop/DetectOS.cs b/Interop/DetectOS.cs index fc3f0f3..3ecd912 100644 --- a/Interop/DetectOS.cs +++ b/Interop/DetectOS.cs @@ -126,8 +126,10 @@ public static class DetectOS int error = uname(out utsname unixname); if(error != 0) + { throw new Exception(string.Format(Localization.Unhandled_exception_calling_uname_0, Marshal.GetLastWin32Error())); + } switch(unixname.sysname) { @@ -173,43 +175,63 @@ public static class DetectOS Marshal.FreeHGlobal(pLen); if(machine != null && - (machine.StartsWith("iPad", StringComparison.Ordinal) || - machine.StartsWith("iPod", StringComparison.Ordinal) || + (machine.StartsWith("iPad", StringComparison.Ordinal) || + machine.StartsWith("iPod", StringComparison.Ordinal) || machine.StartsWith("iPhone", StringComparison.Ordinal))) return PlatformID.iOS; return PlatformID.MacOSX; } - case "GNU": return PlatformID.Hurd; + case "GNU": + return PlatformID.Hurd; case "FreeBSD": - case "GNU/kFreeBSD": return PlatformID.FreeBSD; - case "DragonFly": return PlatformID.DragonFly; - case "Haiku": return PlatformID.Haiku; - case "HP-UX": return PlatformID.HPUX; - case "AIX": return PlatformID.AIX; - case "OS400": return PlatformID.OS400; + case "GNU/kFreeBSD": + return PlatformID.FreeBSD; + case "DragonFly": + return PlatformID.DragonFly; + case "Haiku": + return PlatformID.Haiku; + case "HP-UX": + return PlatformID.HPUX; + case "AIX": + return PlatformID.AIX; + case "OS400": + return PlatformID.OS400; case "IRIX": - case "IRIX64": return PlatformID.IRIX; - case "Minix": return PlatformID.Minix; - case "NetBSD": return PlatformID.NetBSD; - case "NONSTOP_KERNEL": return PlatformID.NonStop; - case "OpenBSD": return PlatformID.OpenBSD; - case "QNX": return PlatformID.QNX; - case "SINIX-Y": return PlatformID.SINIX; - case "SunOS": return PlatformID.Solaris; - case "OSF1": return PlatformID.Tru64; - case "ULTRIX": return PlatformID.Ultrix; - case "SCO_SV": return PlatformID.OpenServer; - case "UnixWare": return PlatformID.UnixWare; + case "IRIX64": + return PlatformID.IRIX; + case "Minix": + return PlatformID.Minix; + case "NetBSD": + return PlatformID.NetBSD; + case "NONSTOP_KERNEL": + return PlatformID.NonStop; + case "OpenBSD": + return PlatformID.OpenBSD; + case "QNX": + return PlatformID.QNX; + case "SINIX-Y": + return PlatformID.SINIX; + case "SunOS": + return PlatformID.Solaris; + case "OSF1": + return PlatformID.Tru64; + case "ULTRIX": + return PlatformID.Ultrix; + case "SCO_SV": + return PlatformID.OpenServer; + case "UnixWare": + return PlatformID.UnixWare; case "Interix": - case "UWIN-W7": return PlatformID.Win32NT; + case "UWIN-W7": + return PlatformID.Win32NT; default: { - if(unixname.sysname.StartsWith("CYGWIN_NT", StringComparison.Ordinal) || + if(unixname.sysname.StartsWith("CYGWIN_NT", StringComparison.Ordinal) || unixname.sysname.StartsWith("MINGW32_NT", StringComparison.Ordinal) || - unixname.sysname.StartsWith("MSYS_NT", StringComparison.Ordinal) || - unixname.sysname.StartsWith("UWIN", StringComparison.Ordinal)) + unixname.sysname.StartsWith("MSYS_NT", StringComparison.Ordinal) || + unixname.sysname.StartsWith("UWIN", StringComparison.Ordinal)) return PlatformID.Win32NT; return PlatformID.Unknown; @@ -234,20 +256,25 @@ public static class DetectOS switch(Environment.OSVersion.Version.Minor) { - case 3: return "10.0"; - case 4: return "10.1"; + case 3: + return "10.0"; + case 4: + return "10.1"; } goto default; case PlatformID.Win32NT: // From Windows 8.1 the reported version is simply falsified... if(Environment.OSVersion.Version.Major is 6 and >= 2 or > 6) + { return FileVersionInfo. GetVersionInfo(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.System), "KERNEL32.DLL")).ProductVersion; + } return environ; - default: return environ; + default: + return environ; } } @@ -259,15 +286,24 @@ public static class DetectOS { switch(id) { - case PlatformID.AIX: return "AIX"; - case PlatformID.Android: return "Android"; - case PlatformID.DragonFly: return "DragonFly BSD"; - case PlatformID.FreeBSD: return "FreeBSD"; - case PlatformID.Haiku: return "Haiku"; - case PlatformID.HPUX: return "HP/UX"; - case PlatformID.Hurd: return "Hurd"; - case PlatformID.iOS: return "iOS"; - case PlatformID.IRIX: return "IRIX"; + case PlatformID.AIX: + return "AIX"; + case PlatformID.Android: + return "Android"; + case PlatformID.DragonFly: + return "DragonFly BSD"; + case PlatformID.FreeBSD: + return "FreeBSD"; + case PlatformID.Haiku: + return "Haiku"; + case PlatformID.HPUX: + return "HP/UX"; + case PlatformID.Hurd: + return "Hurd"; + case PlatformID.iOS: + return "iOS"; + case PlatformID.IRIX: + return "IRIX"; case PlatformID.Linux: if(!File.Exists("/proc/version")) return "Linux"; @@ -294,24 +330,42 @@ public static class DetectOS return minor >= 8 ? "OS X" : "Mac OS X"; - case PlatformID.Minix: return "MINIX"; - case PlatformID.NetBSD: return "NetBSD"; - case PlatformID.NonStop: return "NonStop OS"; - case PlatformID.OpenBSD: return "OpenBSD"; - case PlatformID.OpenServer: return "SCO OpenServer"; - case PlatformID.OS400: return "OS/400"; - case PlatformID.PlayStation3: return "Sony CellOS"; - case PlatformID.PlayStation4: return "Sony Orbis OS"; - case PlatformID.QNX: return "QNX"; - case PlatformID.SINIX: return "SINIX"; - case PlatformID.Solaris: return "Sun Solaris"; - case PlatformID.Tizen: return "Samsung Tizen"; - case PlatformID.Tru64: return "Tru64 UNIX"; - case PlatformID.Ultrix: return "Ultrix"; - case PlatformID.Unix: return "UNIX"; - case PlatformID.UnixWare: return "SCO UnixWare"; - case PlatformID.Wii: return "Nintendo Wii"; - case PlatformID.WiiU: return "Nintendo Wii U"; + case PlatformID.Minix: + return "MINIX"; + case PlatformID.NetBSD: + return "NetBSD"; + case PlatformID.NonStop: + return "NonStop OS"; + case PlatformID.OpenBSD: + return "OpenBSD"; + case PlatformID.OpenServer: + return "SCO OpenServer"; + case PlatformID.OS400: + return "OS/400"; + case PlatformID.PlayStation3: + return "Sony CellOS"; + case PlatformID.PlayStation4: + return "Sony Orbis OS"; + case PlatformID.QNX: + return "QNX"; + case PlatformID.SINIX: + return "SINIX"; + case PlatformID.Solaris: + return "Sun Solaris"; + case PlatformID.Tizen: + return "Samsung Tizen"; + case PlatformID.Tru64: + return "Tru64 UNIX"; + case PlatformID.Ultrix: + return "Ultrix"; + case PlatformID.Unix: + return "UNIX"; + case PlatformID.UnixWare: + return "SCO UnixWare"; + case PlatformID.Wii: + return "Nintendo Wii"; + case PlatformID.WiiU: + return "Nintendo Wii U"; case PlatformID.Win32NT: if(string.IsNullOrEmpty(version)) return "Windows NT/2000/XP/Vista/7/10"; @@ -344,10 +398,12 @@ public static class DetectOS if(version.StartsWith("10.0", StringComparison.Ordinal)) return "Windows 10"; - return version.StartsWith("11.0", StringComparison.Ordinal) ? "Windows 11" + return version.StartsWith("11.0", StringComparison.Ordinal) + ? "Windows 11" : "Windows NT/2000/XP/Vista/7/10/11"; - case PlatformID.Win32S: return "Windows 3.x with win32s"; + case PlatformID.Win32S: + return "Windows 3.x with win32s"; case PlatformID.Win32Windows: if(string.IsNullOrEmpty(version)) return "Windows 9x/Me"; @@ -363,14 +419,21 @@ public static class DetectOS return version.StartsWith("4.9", StringComparison.Ordinal) ? "Windows Me" : "Windows 9x/Me"; - case PlatformID.WinCE: return "Windows CE/Mobile"; - case PlatformID.WindowsPhone: return "Windows Phone"; - case PlatformID.Xbox: return "Xbox OS"; - case PlatformID.zOS: return "z/OS"; - default: return id.ToString(); + case PlatformID.WinCE: + return "Windows CE/Mobile"; + case PlatformID.WindowsPhone: + return "Windows Phone"; + case PlatformID.Xbox: + return "Xbox OS"; + case PlatformID.zOS: + return "z/OS"; + default: + return id.ToString(); } } +#region Nested type: utsname + /// POSIX uname structure, size from OSX, big enough to handle extra fields [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] struct utsname @@ -391,4 +454,6 @@ public static class DetectOS [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)] public readonly string machine; } + +#endregion } \ No newline at end of file diff --git a/Interop/Version.cs b/Interop/Version.cs index 47d3fb6..aa2af7e 100644 --- a/Interop/Version.cs +++ b/Interop/Version.cs @@ -55,10 +55,7 @@ public static class Version { Assembly assembly = typeof(GCSettings).Assembly; - string[] assemblyPath = assembly.CodeBase?.Split(new[] - { - '/', '\\' - }, StringSplitOptions.RemoveEmptyEntries); + string[] assemblyPath = assembly.CodeBase?.Split(new[] { '/', '\\' }, StringSplitOptions.RemoveEmptyEntries); if(assemblyPath is null) return null; diff --git a/Localization/Localization.es.resx b/Localization/Localization.es.resx index 6edab84..1208ed5 100644 --- a/Localization/Localization.es.resx +++ b/Localization/Localization.es.resx @@ -1,621 +1,631 @@ - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + El fabricante es SyQuest, el medio tiene 1961069 bloques de 512 bytes, estableciendo tipo como SparQ. - + Excepción {0} - + La respuesta a IDENTIFY es diferente de 512, no se decodificará. - + La respuesta a INQUIRY es de {0} bytes, menor del mínimo de 36 bytes, los datos decodificados podrían ser incorrect, no se decodificará. - + El tamaño de la respuesta a INQUIRY ({0} bytes) es diferente a la especificada en el campo de longitud ({1} bytes), los datos decodificados podrían ser incorrectos, no se decodificará. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 5¼" en formato Acorn. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 5¼" y 80 pistas en formato Acorn. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de densidad sencilla de 5¼" en formato Acorn. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 3½" en formato Acorn. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 3½" en formato Acorn. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 3½" en formato Amiga. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 3½" en formato Amiga. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" en formato Apple DOS 3.2. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" de doble cara en formato Apple DOS 3.2 - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" en formato Apple DOS 3.3 - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" de doble cara en formato Apple DOS 3.3 - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad y una cara de 3½" en formato Apple. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 3½" en formato Apricot. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de densidad sencilla de 5¼" en formato Atari. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 5¼" en formato Acorn. - + El fabricante es IOMEGA, el medio tiene {0} bloques de 256 bytes, estableciendo tipo como Bernoulli Box de 10Mb. - + El fabricante es IOMEGA, el medio tiene 294918 bloques de 512 bytes, estableciendo tipo como Bernoulli Box II de 150Mb. - + El fabricante es IOMEGA, el medio tiene 87040 bloques de 512 bytes, estableciendo tipo como Bernoulli Box II de 44Mb. - + El fabricante es IOMEGA, el medio tiene 175856 bloques de 512 bytes, estableciendo tipo como Bernoulli Box II de 90Mb. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dlt", estableciendo tipo como CompacTape. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dlt", estableciendo tipo como CompacTape II. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dlt", estableciendo tipo como DLTtapeIII. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dlt", estableciendo tipo como DLTtape IIIxt. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dlt", estableciendo tipo como DLTtape IV. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dat", estableciendo tipo como DAT72. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dat", estableciendo tipo como DDS-2. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dat", estableciendo tipo como DDS-3. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, el modelo de la unidad comienza con "dat", estableciendo tipo como DDS-4. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como DDS. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como DDS-2. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como DDS-3. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como DDS-4. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete DEC RX02. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 3½" en formato Microsoft DMF. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 3½" conforme con ECMA-154 / ISO 10090. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 3½" conforme con ECMA-201 / ISO 13963. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico estampado de 3½" conforme con ECMA-201 / ISO 13963. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 3½" conforme con ECMA-223. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 3½" conforme con ECMA-239 / ISO 15498. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 3½" en formato FDFORMAT. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 3½" en formato FDFORMAT. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 3½" modelo GigaMO. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 3½" modelo GigaMO 2. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad y una cara de 3½" con formato IBM. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad y una cara de 3½" con formato IBM (8 sectores). - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 3½" con formato IBM. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 3½" con formato IBM (8 sectores). - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de densidad extra de 3½" con formato IBM. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 3½" con formato IBM. - + El modelo de la unidad es LS (SuperDisk), el medio tiene 2880 bloques de 512 bytes, estableciendo tipo como disquete de alta densidad de 3½" con formato PC-98. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 3½" con formato PC-98. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ECMA-183 / ISO 13481. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ECMA-184 / ISO 13549. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ECMA-195 / ISO 13482. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ECMA-238 / ISO 15486. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ECMA-280 / ISO 18093. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ECMA-322 / ISO 22092. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 356mm conforme con ECMA-260 / ISO 15898. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 300mm conforme con ECMA-317 / ISO 20162. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 5¼" en formato ECMA-56. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" en formato ECMA-66. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" en formato ECMA-70. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" en formato ECMA-78. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 5¼" en formato ECMA-99. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 8" en formato ECMA-54. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 8" en formato ECMA-59. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 8" en formato ECMA-69. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 5¼" en formato FDFORMAT. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad y una cara de 5¼" en formato IBM. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad y una cara de 5¼" en formato IBM (8 sectores). - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 5¼" en formato IBM. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad de 5¼" en formato IBM (8 sectores. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 5¼" en formato IBM. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ISO 10089. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ISO 14517. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 3½" conforme con ISO 15041. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico de 5¼" conforme con ISO 15286. - + El modelo de la unidad es LS (SuperDisk), el medio tiene 246528 bloques de 512 bytes, estableciendo tipo como LS-120. - + El modelo de la unidad es LS (SuperDisk), el medio tiene 469504 bloques de 512 bytes, estableciendo tipo como LS-120. - + El fabricante de la unidad es IOMEGA, el modelo es JAZ y el medio tiene 2091050 bloques de 512 bytes, estableciendo tipo como JAZ de 1Gb. - + El fabricante de la unidad es IOMEGA, el modelo es JAZ y el medio tiene 3915600 bloques de 512 bytes, estableciendo tipo como JAZ de 2Gb. - + El fabricante de la unidad es IOMEGA, el modelo es ZIP y el medio tiene 196608 bloques de 512 bytes, estableciendo tipo como ZIP de 100Mb. - + El fabricante de la unidad es IOMEGA, el modelo es ZIP y el medio tiene 196608 bloques de 512 bytes, estableciendo tipo como ZIP de 250Mb. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como LTO. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como LTO-2. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como QIC-11. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como QIC-120. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como QIC-150. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como QIC-24. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como Travan 5. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como Travan 4. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T10000A. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T10000B. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T10000C. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T10000D. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T9840A. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T9840D. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T9940A. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T9940B. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante es StorageTek, estableciendo tipo como T9840C. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 106m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 112m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 125m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 150m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 15m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape XL de 160m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 170m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 225m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 22m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape AME de 22m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 28m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 40m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 45m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 54m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 75m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 76. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "exb", estableciendo tipo como Exatape de 80m. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-2. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-3. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-4. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-5. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-6. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-7. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "sdz", estableciendo tipo como Super AIT. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "dlt", estableciendo tipo como SuperDLT. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "dlt", estableciendo tipo como SuperDLT 2. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "stt", estableciendo tipo como Travan 5. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "stt", estableciendo tipo como Travan 7. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "dlt", estableciendo tipo como VStape I. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "vxa", estableciendo tipo como VXA. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "vxa", estableciendo tipo como VXA 2. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "vxa", estableciendo tipo como VXA 3. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como WORM LTO-3. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como WORM LTO-4. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como WORM LTO-5. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como WORM LTO-6. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "uly", estableciendo tipo como WORM LTO-7. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-2. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-3. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-4. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el modelo de la unidad comienza por "ult", estableciendo tipo como LTO-5. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como Floptical. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como Sony HiMD. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como MiniDisc de 60 minutos. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como MiniDisc de 74 minutos. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como MiniDisc de 80 minutos. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como REV de 120Gb. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como REV de 35Gb. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como REV de 70Gb. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como UDO. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como UDO2. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como desconocido. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como magneto-óptico desconocido. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como WORM UDO 2. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como PD-650. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como WORM PD-650. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 8" en formato IBM 23FD. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 8" en formato IBM 33FD. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 8" en formato IBM 43FD. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de 8" en formato IBM 53FD. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 5¼" en formato PC-98. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de alta densidad de 3½" con formato Sharp. - + El medio tiene 46956 bloques de 256 bytes, estableciendo tipo como HyperFlex de 12Mb. - + El medio tiene 46956 bloques de 256 bytes, estableciendo tipo como HyperFlex de 24Mb. - + El modelo de la unidad es Castlewood Orb, el medio tiene 4307184 bloques de 512 bytes, estableciendo tipo como Orb. - + El modelo de la unidad es RDX, el medio tiene {0} bloques de {1} bytes, estableciendo tipo como RDX320. - + El fabricante de la unidad es SyQuest, el medio tiene 390696 bloques de 512 bytes, estableciendo tipo como SQ2000. - + El fabricante de la unidad es SyQuest, el medio tiene 215440 bloques de 512 bytes, estableciendo tipo como SQ310. - + El fabricante de la unidad es SyQuest, el medio tiene 524288 bloques de 512 bytes, estableciendo tipo como SQ327. - + El fabricante de la unidad es SyQuest, el medio tiene 87600 bloques de 512 bytes, estableciendo tipo como SQ400. - + El fabricante de la unidad es SyQuest, el medio tiene 173456 bloques de 512 bytes, estableciendo tipo como SQ800. - + El fabricante de la unidad es SyQuest, el medio tiene 2929800 bloques de 512 bytes, estableciendo tipo como SyJet. - + El fabricante de la unidad es IOMEGA, el medio tiene 78882 bloques de 512 bytes, estableciendo tipo como PocketZIP. - + El modelo de la unidad es HiFD, el medio tiene 393380 bloques de 512 bytes, estableciendo tipo como HiFD. - + El modelo de la unidad es LS (SuperDisk), el medio tiene 65536 bloques de 512 bytes, estableciendo tipo como FD32MB. - + El fabricante es SyQuest, el medio tiene 262144 bloques de 512 bytes, estableciendo tipo como EZ135. - + El fabricante es SyQuest, el medio tiene 450560 bloques de 512 bytes, estableciendo tipo como EZ230. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como IBM 3490. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h, estableciendo tipo como IBM 3490E. - + El tipo de medio SCSI es {0:X2}h, el código de densidad es {1:X2}h y el fabricante de la unidad es IBM, estableciendo tipo como IBM 3592. - + El tipo de periférico SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como MiniDisc de 60 minutos. - + El tipo de periférico SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como MiniDisc de 74 minutos. - + El tipo de periférico SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como MiniDisc de 80 minutos. - + El tipo de periférico SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como MiniDisc for Data. - + El tipo de medio SCSI es {0:X2}h, el medio tiene {1} bloques de {2} bytes, estableciendo tipo como disquete de doble densidad y una cara de 5¼" en formato MetaFloppy. - + El tipo de periférico SCSI es {0:X2}h, estableciendo tipo como dispositivo de zonas de bloques gestionado. - + El tipo de medio SCSI es {0:X2}h y el dispositivo es USB, estableciendo tipo como unidad Flash. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como CD-R. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como CD-RW. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como CD+. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como CD-ROM. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como Compact Disc. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como Compact Disc Digital Audio. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como Photo CD. - + El tipo de medio SCSI es {0:X2}h, estableciendo tipo como magneto-óptico desconocido. - + Excepción no manejada llamando a uname: {0} \ No newline at end of file diff --git a/Localization/Localization.resx b/Localization/Localization.resx index bac93f3..5bbf14e 100644 --- a/Localization/Localization.resx +++ b/Localization/Localization.resx @@ -1,636 +1,638 @@ - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, - PublicKeyToken=b77a5c561934e089 - - - + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + + + Unhandled exception calling uname: {0} - + Drive manufacturer is SyQuest, media has 1961069 blocks of 512 bytes, setting media type to SparQ. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to WORM PD-650. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to PD-650. - + SCSI medium type is {0:X2}h, setting media type to Compact Disc. - + SCSI medium type is {0:X2}h, setting media type to CD-ROM. - + SCSI medium type is {0:X2}h, setting media type to Compact Disc Digital Audio. - + SCSI medium type is {0:X2}h, setting media type to CD+. - + SCSI medium type is {0:X2}h, setting media type to Photo CD. - + SCSI medium type is {0:X2}h, setting media type to CD-R. - + SCSI medium type is {0:X2}h, setting media type to CD-RW. - + SCSI medium type is {0:X2}h and device is USB, setting media type to Flash Drive. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive starts with "ult", setting media type to LTO-2. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive starts with "ult", setting media type to LTO-3. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive starts with "ult", setting media type to LTO-4. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive starts with "ult", setting media type to LTO-5. - + SCSI medium type is {0:X2}h, setting media type to unknown magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-154 / ISO 10090 conforming 3½" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-201 / ISO 13963 conforming 3½" embossed magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-201 / ISO 13963 conforming 3½" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-223 conforming 3½" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-183 / ISO 13481 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 15041 conforming 3½" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-184 / ISO 13549 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-195 / ISO 13842 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 14517 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to unknown magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 10089 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-238 / ISO 15486 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ISO 15286 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-322 / ISO 22092 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-260 / ISO 15898 conforming 356mm magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-239 / ISO 15498 conforming 3½" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to GigaMO 3½" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to GigaMO 2 3½" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-280 / ISO 18093 conforming 5¼" magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-317 / ISO 20162 conforming 300mm magneto-optical. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to UDO. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to WORM UDO2. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to UDO2. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-54 formatted 8" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-59 formatted 8" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-69 formatted 8" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to unknown. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-66 formatted 5¼" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-70 formatted 5¼" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-78 formatted 5¼" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-99 formatted 5¼" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 3½" double density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 120Gb REV. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 70Gb REV. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 35Gb REV. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to PC-98 formatted 3½" high density floppy (15 sectors). - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 3½" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Atari formatted 5¼" single density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Atari formatted 5¼" double density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 8" (33FD) floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 8" (43FD) floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to ECMA-56 formatted 5¼" double density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Acorn formatted 5¼" single density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Apple DOS 3.2 formatted 5¼" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Apple DOS 3.3 formatted 5¼" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Acorn formatted 5¼" double density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Apple DOS 3.2 formatted 5¼" double sided floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Apple DOS 3.3 formatted 5¼" double sided floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to MetaFloppy formatted 5¼" double density single sided floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Acorn formatted 5¼" double density floppy with 80 tracks. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to DEC RX02 floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 8" (53FD) floppy. - + Drive manufacturer is IOMEGA, media has {0} blocks of 256 bytes, setting media type to 10Mb Bernoulli Box. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 8" (23FD) floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 5¼" double density single sided floppy (8 sectors). - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 5¼" double density single sided floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Apricot formatted 3½" floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 3½" double density single sided floppy (8 sectors). - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 5¼" double density floppy (8 sectors). - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 3½" double density single sided floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 5¼" double density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Apple formatted 3½" double density single sided floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 3½" double density floppy (8 sectors). - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to FDFORMAT formatted 3½" double density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Amiga formatted 3½" double density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 5¼" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to FDFORMAT formatted 5¼" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Microsoft DMF formatted 3½" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to FDFORMAT formatted 3½" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Amiga formatted 3½" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to IBM formatted 3½" extra density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Floptical. - + Drive model is LS (SuperDisk), media has 65536 blocks of 512 bytes, setting media type to FD32MB. - + Drive manufacturer is IOMEGA, media has 78882 blocks of 512 bytes, setting media type to PocketZIP. - + Drive manufacturer is SyQuest, media has 86700 blocks of 512 bytes, setting media type to SQ400. - + Drive manufacturer is IOMEGA, media has 87040 blocks of 512 bytes, setting media type to 44Mb Bernoulli Box II. - + Drive manufacturer is SyQuest, media has 173456 blocks of 512 bytes, setting media type to SQ800. - + Drive manufacturer is IOMEGA, media has 175856 blocks of 512 bytes, setting media type to 90Mb Bernoulli Box II. - + Drive manufacturer is IOMEGA, drive model is ZIP, media has 196608 blocks of 512 bytes, setting media type to 100Mb ZIP. - + Drive manufacturer is SyQuest, media has 215440 blocks of 512 bytes, setting media type to SQ310. - + Drive model is LS (SuperDisk), media has 246528 blocks of 512 bytes, setting media type to LS-120. - + Drive manufacturer is SyQuest, media has 262144 blocks of 512 bytes, setting media type to EZ135. - + Drive manufacturer is IOMEGA, media has 294918 blocks of 512 bytes, setting media type to 150Mb Bernoulli Box II. - + Drive manufacturer is SyQuest, media has 390696 blocks of 512 bytes, setting media type to SQ2000. - + Drive model is HiFD, media has 393380 blocks of 512 bytes, setting media type to HiFD. - + Drive manufacturer is SyQuest, media has 450560 blocks of 512 bytes, setting media type to EZ230. - + Drive model is LS (SuperDisk), media has 469504 blocks of 512 bytes, setting media type to LS-240. - + Drive manufacturer is IOMEGA, drive model is ZIP, media has 489532 blocks of 512 bytes, setting media type to 250Mb ZIP. - + Drive manufacturer is SyQuest, media has 524288 blocks of 512 bytes, setting media type to SQ327. - + Drive manufacturer is IOMEGA, drive model is JAZ, media has 2091050 blocks of 512 bytes, setting media type to 1Gb JAZ. - + Drive manufacturer is SyQuest, media has 2929800 blocks of 512 bytes, setting media type to SyJet. - + Drive manufacturer is IOMEGA, drive model is JAZ, media has 3915600 blocks of 512 bytes, setting media type to 2Gb JAZ. - + Drive model is Castlewood Orb, media has 4307184 blocks of 512 bytes, setting media type to Orb. - + Drive model is RDX, media has {0} blocks of {1} bytes, setting media type to RDX320. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Acorn formatted 3½" double density floppy. - + Drive model is LS (SuperDisk), media has 2880 blocks of 512 bytes, setting media type to PC-98 formatted 3½" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Sharp formatted 3½" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to PC-98 formatted 5¼" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Acorn formatted 3½" high density floppy. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 60 minute MiniDisc. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 74 minute MiniDisc. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 80 minute MiniDisc. - + SCSI medium type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to Sony HiMD. - + SCSI peripheral type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to MiniDisc for Data. - + SCSI peripheral type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 60 minute MiniDisc. - + SCSI peripheral type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 74 minute MiniDisc. - + SCSI peripheral type is {0:X2}h, media has {1} blocks of {2} bytes, setting media type to 80 minute MiniDisc. - + SCSI peripheral type is {0:X2}h, setting media type to host managed zoned block device. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to QIC-11. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to QIC-24. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to IBM 3490. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to QIC-120. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to QIC-150. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to DDS. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to DDS-2. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to DDS-3. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to DDS-4. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to IBM 3490E. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to LTO. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "sdz" setting media type to Super AIT. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to LTO-2. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T9840A. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T9940A. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to LTO-3. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T9940B. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T9840C. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to LTO-4. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T9840D. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T10000A. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T10000B. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T10000C. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is StorageTek, setting media type to T10000D. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to LTO-5. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to WORM LTO-3. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to WORM LTO-4. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to WORM LTO-5. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to LTO. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to LTO-2. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dat" setting media type to DDS-3. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dat" setting media type to DDS-4. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dat" setting media type to DAT72. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dat" setting media type to DDS-2. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to LTO-6. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to WORM LTO-6. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to LTO-7. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "ult" setting media type to WORM LTO-7. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 15m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive manufacturer is IBM, setting media type to IBM 3592. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "vxa" setting media type to VXA. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 28m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to CompactTape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to CompactTape II. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "vxa" setting media type to VXA 2. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "vxa" setting media type to VXA 3. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 54m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to DLTtape III. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to DLTtape IIIxt. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 106m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to DLTtape IV. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "stt" setting media type to Travan 5. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 160m Exatape XL. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to SuperDLT. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to SuperDLT 2. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "dlt" setting media type to VStape I. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "stt" setting media type to Travan 7. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to Travan 4. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, setting media type to Travan 5. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 22m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 40m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 76m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 112m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 22m Exatape AME. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 170m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 125m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 45m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 225m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 150m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 75m Exatape. - + SCSI medium type is {0:X2}h, density code is {1:X2}h, drive model starts with "exb" setting media type to 80m Exatape. - + IDENTIFY response is different than 512 bytes, not decoding. - + INQUIRY response is {0} bytes, less than minimum of 36 bytes, decoded data can be incorrect, not decoding. - + INQUIRY response length ({0} bytes) is different than specified in length field ({1} bytes), decoded data can be incorrect, not decoding. - + Exception {0} - + Media has 46956 blocks of 256 bytes, setting media type to 12Mb HyperFlex. - + Media has 78936 blocks of 256 bytes, setting media type to 24Mb HyperFlex. \ No newline at end of file diff --git a/MediaType.cs b/MediaType.cs index 125bef8..3f5bf6b 100644 --- a/MediaType.cs +++ b/MediaType.cs @@ -50,14 +50,19 @@ namespace Aaru.CommonTypes; public enum MediaEncoding { - Unknown, FM, MFM, - M2FM, AppleGCR, CommodoreGCR + Unknown, + FM, + MFM, + M2FM, + AppleGCR, + CommodoreGCR } /// Contains an enumeration of all known types of media. public enum MediaType : uint { - #region Generics, types 0 to 9 +#region Generics, types 0 to 9 + /// Unknown disk type Unknown = 0, /// Unknown magneto-optical @@ -72,9 +77,11 @@ public enum MediaType : uint FlashDrive = 5, /// Unknown data tape UnknownTape = 6, - #endregion Generics, types 0 to 9 - #region Somewhat standard Compact Disc formats, types 10 to 39 +#endregion Generics, types 0 to 9 + +#region Somewhat standard Compact Disc formats, types 10 to 39 + /// Any unknown or standard violating CD CD = 10, /// CD Digital Audio (Red Book) @@ -127,10 +134,13 @@ public enum MediaType : uint /// CD-i Ready, contains a track before the first TOC track, in mode 2, and all TOC tracks are Audio. Subchannel /// marks track as audio pause. /// - CDIREADY = 34, FMTOWNS = 35, - #endregion Somewhat standard Compact Disc formats, types 10 to 39 + CDIREADY = 34, + FMTOWNS = 35, + +#endregion Somewhat standard Compact Disc formats, types 10 to 39 + +#region Standard DVD formats, types 40 to 50 - #region Standard DVD formats, types 40 to 50 /// DVD-ROM (applies to DVD Video and DVD Audio) DVDROM = 40, /// DVD-R @@ -153,9 +163,11 @@ public enum MediaType : uint DVDRWDL = 49, /// DVD-Download DVDDownload = 50, - #endregion Standard DVD formats, types 40 to 50 - #region Standard HD-DVD formats, types 51 to 59 +#endregion Standard DVD formats, types 40 to 50 + +#region Standard HD-DVD formats, types 51 to 59 + /// HD DVD-ROM (applies to HD DVD Video) HDDVDROM = 51, /// HD DVD-RAM @@ -168,9 +180,11 @@ public enum MediaType : uint HDDVDRDL = 55, /// HD DVD-RW DL HDDVDRWDL = 56, - #endregion Standard HD-DVD formats, types 51 to 59 - #region Standard Blu-ray formats, types 60 to 69 +#endregion Standard HD-DVD formats, types 51 to 59 + +#region Standard Blu-ray formats, types 60 to 69 + /// BD-ROM (and BD Video) BDROM = 60, /// BD-R @@ -183,9 +197,11 @@ public enum MediaType : uint BDREXL = 64, /// Ultra HD Blu-ray UHDBD = 65, - #endregion Standard Blu-ray formats, types 60 to 69 - #region Rare or uncommon optical standards, types 70 to 79 +#endregion Standard Blu-ray formats, types 60 to 69 + +#region Rare or uncommon optical standards, types 70 to 79 + /// Enhanced Versatile Disc EVD = 70, /// Forward Versatile Disc @@ -204,18 +220,25 @@ public enum MediaType : uint FDDVD = 77, /// China Video Disc CVD = 78, - #endregion Rare or uncommon optical standards, types 70 to 79 - #region LaserDisc based, types 80 to 89 +#endregion Rare or uncommon optical standards, types 70 to 79 + +#region LaserDisc based, types 80 to 89 + /// Pioneer LaserDisc LD = 80, /// Pioneer LaserDisc data - LDROM = 81, LDROM2 = 82, LVROM = 83, MegaLD = 84, + LDROM = 81, + LDROM2 = 82, + LVROM = 83, + MegaLD = 84, /// Writable LaserDisc with support for component video CRVdisc = 85, - #endregion LaserDisc based, types 80 to 89 - #region MiniDisc based, types 90 to 99 +#endregion LaserDisc based, types 80 to 89 + +#region MiniDisc based, types 90 to 99 + /// Sony Hi-MD HiMD = 90, /// Sony MiniDisc @@ -230,19 +253,24 @@ public enum MediaType : uint MD74 = 95, /// Sony MiniDisc, 80 minutes, formatted with Hi-MD format MD80 = 96, - #endregion MiniDisc based, types 90 to 99 - #region Plasmon UDO, types 100 to 109 +#endregion MiniDisc based, types 90 to 99 + +#region Plasmon UDO, types 100 to 109 + /// 5.25", Phase-Change, 1834348 sectors, 8192 bytes/sector, Ultra Density Optical, ECMA-350, ISO 17345 UDO = 100, /// 5.25", Phase-Change, 3669724 sectors, 8192 bytes/sector, Ultra Density Optical 2, ECMA-380, ISO 11976 UDO2 = 101, /// 5.25", Write-Once, 3668759 sectors, 8192 bytes/sector, Ultra Density Optical 2, ECMA-380, ISO 11976 UDO2_WORM = 102, - #endregion Plasmon UDO, types 100 to 109 - #region Sony game media, types 110 to 129 - PlayStationMemoryCard = 110, PlayStationMemoryCard2 = 111, +#endregion Plasmon UDO, types 100 to 109 + +#region Sony game media, types 110 to 129 + + PlayStationMemoryCard = 110, + PlayStationMemoryCard2 = 111, /// Sony PlayStation game CD PS1CD = 112, /// Sony PlayStation 2 game CD @@ -256,12 +284,15 @@ public enum MediaType : uint /// Sony PlayStation 4 game Blu-ray PS4BD = 117, /// Sony PlayStation Portable Universal Media Disc (ECMA-365) - UMD = 118, PlayStationVitaGameCard = 119, + UMD = 118, + PlayStationVitaGameCard = 119, /// Sony PlayStation 5 game Ultra HD Blu-ray PS5BD = 120, - #endregion Sony game media, types 110 to 129 - #region Microsoft game media, types 130 to 149 +#endregion Sony game media, types 110 to 129 + +#region Microsoft game media, types 130 to 149 + /// Microsoft X-box Game Disc XGD = 130, /// Microsoft X-box 360 Game Disc @@ -270,9 +301,11 @@ public enum MediaType : uint XGD3 = 132, /// Microsoft X-box One Game Disc XGD4 = 133, - #endregion Microsoft game media, types 130 to 149 - #region Sega game media, types 150 to 169 +#endregion Microsoft game media, types 130 to 149 + +#region Sega game media, types 150 to 169 + /// Sega MegaCD MEGACD = 150, /// Sega Saturn disc @@ -280,12 +313,20 @@ public enum MediaType : uint /// Sega/Yamaha Gigabyte Disc GDROM = 152, /// Sega/Yamaha recordable Gigabyte Disc - GDR = 153, SegaCard = 154, MilCD = 155, MegaDriveCartridge = 156, - _32XCartridge = 157, SegaPicoCartridge = 158, MasterSystemCartridge = 159, - GameGearCartridge = 160, SegaSaturnCartridge = 161, - #endregion Sega game media, types 150 to 169 + GDR = 153, + SegaCard = 154, + MilCD = 155, + MegaDriveCartridge = 156, + _32XCartridge = 157, + SegaPicoCartridge = 158, + MasterSystemCartridge = 159, + GameGearCartridge = 160, + SegaSaturnCartridge = 161, + +#endregion Sega game media, types 150 to 169 + +#region Other game media, types 170 to 179 - #region Other game media, types 170 to 179 /// PC-Engine / TurboGrafx cartridge HuCard = 170, /// PC-Engine / TurboGrafx CD @@ -306,9 +347,11 @@ public enum MediaType : uint Nuon = 178, /// Bandai Playdia Playdia = 179, - #endregion Other game media, types 170 to 179 - #region Apple standard floppy format, types 180 to 189 +#endregion Other game media, types 170 to 179 + +#region Apple standard floppy format, types 180 to 189 + /// 5.25", SS, DD, 35 tracks, 13 spt, 256 bytes/sector, GCR Apple32SS = 180, /// 5.25", DS, DD, 35 tracks, 13 spt, 256 bytes/sector, GCR @@ -323,9 +366,11 @@ public enum MediaType : uint AppleSonyDS = 185, /// 5.25", DS, ?D, ?? tracks, ?? spt, 512 bytes/sector, GCR, opposite side heads, aka Twiggy AppleFileWare = 186, - #endregion Apple standard floppy format - #region IBM/Microsoft PC floppy formats, types 190 to 209 +#endregion Apple standard floppy format + +#region IBM/Microsoft PC floppy formats, types 190 to 209 + /// 5.25", SS, DD, 40 tracks, 8 spt, 512 bytes/sector, MFM DOS_525_SS_DD_8 = 190, /// 5.25", SS, DD, 40 tracks, 9 spt, 512 bytes/sector, MFM @@ -362,9 +407,11 @@ public enum MediaType : uint /// bytes/sector, falsified to DOS as 23 spt, 512 bps /// XDF_35 = 204, - #endregion IBM/Microsoft PC standard floppy formats, types 190 to 209 - #region IBM standard floppy formats, types 210 to 219 +#endregion IBM/Microsoft PC standard floppy formats, types 190 to 209 + +#region IBM standard floppy formats, types 210 to 219 + /// 8", SS, SD, 32 tracks, 8 spt, 319 bytes/sector, FM IBM23FD = 210, /// 8", SS, SD, 73 tracks, 26 spt, 128 bytes/sector, FM @@ -392,9 +439,11 @@ public enum MediaType : uint /// side 1 = 26 sectors, 256 bytes/sector /// IBM53FD_1024 = 218, - #endregion IBM standard floppy formats, types 210 to 219 - #region DEC standard floppy formats, types 220 to 229 +#endregion IBM standard floppy formats, types 210 to 219 + +#region DEC standard floppy formats, types 220 to 229 + /// 8", SS, DD, 77 tracks, 26 spt, 128 bytes/sector, FM RX01 = 220, /// 8", SS, DD, 77 tracks, 26 spt, 256 bytes/sector, FM/MFM @@ -403,9 +452,11 @@ public enum MediaType : uint RX03 = 222, /// 5.25", SS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM RX50 = 223, - #endregion DEC standard floppy formats, types 220 to 229 - #region Acorn standard floppy formats, types 230 to 239 +#endregion DEC standard floppy formats, types 220 to 229 + +#region Acorn standard floppy formats, types 230 to 239 + /// 5,25", SS, SD, 40 tracks, 10 spt, 256 bytes/sector, FM ACORN_525_SS_SD_40 = 230, /// 5,25", SS, SD, 80 tracks, 10 spt, 256 bytes/sector, FM @@ -420,9 +471,11 @@ public enum MediaType : uint ACORN_35_DS_DD = 235, /// 3,5", DS, HD, 80 tracks, 10 spt, 1024 bytes/sector, MFM ACORN_35_DS_HD = 236, - #endregion Acorn standard floppy formats, types 230 to 239 - #region Atari standard floppy formats, types 240 to 249 +#endregion Acorn standard floppy formats, types 230 to 239 + +#region Atari standard floppy formats, types 240 to 249 + /// 5,25", SS, SD, 40 tracks, 18 spt, 128 bytes/sector, FM ATARI_525_SD = 240, /// 5,25", SS, ED, 40 tracks, 26 spt, 128 bytes/sector, MFM @@ -437,9 +490,11 @@ public enum MediaType : uint ATARI_35_SS_DD_11 = 245, /// 3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM ATARI_35_DS_DD_11 = 246, - #endregion Atari standard floppy formats, types 240 to 249 - #region Commodore standard floppy formats, types 250 to 259 +#endregion Atari standard floppy formats, types 240 to 249 + +#region Commodore standard floppy formats, types 250 to 259 + /// 3,5", DS, DD, 80 tracks, 10 spt, 512 bytes/sector, MFM (1581) CBM_35_DD = 250, /// 3,5", DS, DD, 80 tracks, 11 spt, 512 bytes/sector, MFM (Amiga) @@ -452,9 +507,11 @@ public enum MediaType : uint CBM_1540_Ext = 254, /// 5,25", DS, DD, 35 tracks, GCR CBM_1571 = 255, - #endregion Commodore standard floppy formats, types 250 to 259 - #region NEC/SHARP standard floppy formats, types 260 to 269 +#endregion Commodore standard floppy formats, types 250 to 259 + +#region NEC/SHARP standard floppy formats, types 260 to 269 + /// 8", DS, SD, 77 tracks, 26 spt, 128 bytes/sector, FM NEC_8_SD = 260, /// 8", DS, DD, 77 tracks, 26 spt, 256 bytes/sector, MFM @@ -479,9 +536,11 @@ public enum MediaType : uint SHARP_35 = NEC_35_HD_8, /// 3,5", DS, HD, 80 tracks, 9 spt, 1024 bytes/sector, MFM SHARP_35_9 = 269, - #endregion NEC/SHARP standard floppy formats, types 260 to 269 - #region ECMA floppy standards, types 270 to 289 +#endregion NEC/SHARP standard floppy formats, types 260 to 269 + +#region ECMA floppy standards, types 270 to 289 + /// /// 5,25", DS, DD, 80 tracks, 8 spt, 1024 bytes/sector, MFM, track 0 side 0 = 26 sectors, 128 bytes/sector, track /// 0 side 1 = 26 sectors, 256 bytes/sector @@ -536,9 +595,11 @@ public enum MediaType : uint ECMA_78 = 280, /// 5,25", DS, DD, 80 tracks, 9 spt, 512 bytes/sector, FM ECMA_78_2 = 281, - #endregion ECMA floppy standards, types 270 to 289 - #region Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308 +#endregion ECMA floppy standards, types 270 to 289 + +#region Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308 + /// 5,25", DS, DD, 82 tracks, 10 spt, 512 bytes/sector, MFM FDFORMAT_525_DD = 290, /// 5,25", DS, HD, 82 tracks, 17 spt, 512 bytes/sector, MFM @@ -547,35 +608,61 @@ public enum MediaType : uint FDFORMAT_35_DD = 292, /// 3,5", DS, HD, 82 tracks, 21 spt, 512 bytes/sector, MFM FDFORMAT_35_HD = 293, - #endregion Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308 - #region Apricot ACT standard floppy formats, type 309 +#endregion Non-standard PC formats (FDFORMAT, 2M, etc), types 290 to 308 + +#region Apricot ACT standard floppy formats, type 309 + /// 3.5", DS, DD, 70 tracks, 9 spt, 512 bytes/sector, MFM Apricot_35 = 309, - #endregion Apricot ACT standard floppy formats, type 309 - #region OnStream ADR, types 310 to 319 - ADR2120 = 310, ADR260 = 311, ADR30 = 312, +#endregion Apricot ACT standard floppy formats, type 309 + +#region OnStream ADR, types 310 to 319 + + ADR2120 = 310, + ADR260 = 311, + ADR30 = 312, ADR50 = 313, - #endregion OnStream ADR, types 310 to 319 - #region Advanced Intelligent Tape, types 320 to 339 - AIT1 = 320, AIT1Turbo = 321, AIT2 = 322, - AIT2Turbo = 323, AIT3 = 324, AIT3Ex = 325, - AIT3Turbo = 326, AIT4 = 327, AIT5 = 328, - AITETurbo = 329, SAIT1 = 330, SAIT2 = 331, - #endregion Advanced Intelligent Tape, types 320 to 339 +#endregion OnStream ADR, types 310 to 319 + +#region Advanced Intelligent Tape, types 320 to 339 + + AIT1 = 320, + AIT1Turbo = 321, + AIT2 = 322, + AIT2Turbo = 323, + AIT3 = 324, + AIT3Ex = 325, + AIT3Turbo = 326, + AIT4 = 327, + AIT5 = 328, + AITETurbo = 329, + SAIT1 = 330, + SAIT2 = 331, + +#endregion Advanced Intelligent Tape, types 320 to 339 + +#region Iomega, types 340 to 359 - #region Iomega, types 340 to 359 /// Obsolete type for 8"x11" Bernoulli Box disk [Obsolete] Bernoulli = 340, /// Obsolete type for 5⅓" Bernoulli Box II disks [Obsolete] - Bernoulli2 = 341, Ditto = 342, DittoMax = 343, Jaz = 344, - Jaz2 = 345, PocketZip = 346, REV120 = 347, - REV35 = 348, REV70 = 349, ZIP100 = 350, - ZIP250 = 351, ZIP750 = 352, + Bernoulli2 = 341, + Ditto = 342, + DittoMax = 343, + Jaz = 344, + Jaz2 = 345, + PocketZip = 346, + REV120 = 347, + REV35 = 348, + REV70 = 349, + ZIP100 = 350, + ZIP250 = 351, + ZIP750 = 352, /// 5⅓" Bernoulli Box II disk with 35Mb capacity Bernoulli35 = 353, /// 5⅓" Bernoulli Box II disk with 44Mb capacity @@ -590,50 +677,94 @@ public enum MediaType : uint Bernoulli150 = 358, /// 5⅓" Bernoulli Box II disk with 230Mb capacity Bernoulli230 = 359, - #endregion Iomega, types 340 to 359 - #region Audio or video media, types 360 to 369 - CompactCassette = 360, Data8 = 361, MiniDV = 362, +#endregion Iomega, types 340 to 359 + +#region Audio or video media, types 360 to 369 + + CompactCassette = 360, + Data8 = 361, + MiniDV = 362, /// D/CAS-25: Digital data on Compact Cassette form factor, special magnetic media, 9-track Dcas25 = 363, /// D/CAS-85: Digital data on Compact Cassette form factor, special magnetic media, 17-track Dcas85 = 364, /// D/CAS-103: Digital data on Compact Cassette form factor, special magnetic media, 21-track Dcas103 = 365, - #endregion Audio media, types 360 to 369 - #region CompactFlash Association, types 370 to 379 - CFast = 370, CompactFlash = 371, CompactFlashType2 = 372, - #endregion CompactFlash Association, types 370 to 379 +#endregion Audio media, types 360 to 369 - #region Digital Audio Tape / Digital Data Storage, types 380 to 389 - DigitalAudioTape = 380, DAT160 = 381, DAT320 = 382, - DAT72 = 383, DDS1 = 384, DDS2 = 385, - DDS3 = 386, DDS4 = 387, - #endregion Digital Audio Tape / Digital Data Storage, types 380 to 389 +#region CompactFlash Association, types 370 to 379 - #region DEC, types 390 to 399 - CompactTapeI = 390, CompactTapeII = 391, DECtapeII = 392, - DLTtapeIII = 393, DLTtapeIIIxt = 394, DLTtapeIV = 395, - DLTtapeS4 = 396, SDLT1 = 397, SDLT2 = 398, - VStapeI = 399, - #endregion DEC, types 390 to 399 + CFast = 370, + CompactFlash = 371, + CompactFlashType2 = 372, - #region Exatape, types 400 to 419 - Exatape15m = 400, Exatape22m = 401, Exatape22mAME = 402, - Exatape28m = 403, Exatape40m = 404, Exatape45m = 405, - Exatape54m = 406, Exatape75m = 407, Exatape76m = 408, - Exatape80m = 409, Exatape106m = 410, Exatape160mXL = 411, - Exatape112m = 412, Exatape125m = 413, Exatape150m = 414, - Exatape170m = 415, Exatape225m = 416, - #endregion Exatape, types 400 to 419 +#endregion CompactFlash Association, types 370 to 379 - #region PCMCIA / ExpressCard, types 420 to 429 - ExpressCard34 = 420, ExpressCard54 = 421, PCCardTypeI = 422, - PCCardTypeII = 423, PCCardTypeIII = 424, PCCardTypeIV = 425, - #endregion PCMCIA / ExpressCard, types 420 to 429 +#region Digital Audio Tape / Digital Data Storage, types 380 to 389 + + DigitalAudioTape = 380, + DAT160 = 381, + DAT320 = 382, + DAT72 = 383, + DDS1 = 384, + DDS2 = 385, + DDS3 = 386, + DDS4 = 387, + +#endregion Digital Audio Tape / Digital Data Storage, types 380 to 389 + +#region DEC, types 390 to 399 + + CompactTapeI = 390, + CompactTapeII = 391, + DECtapeII = 392, + DLTtapeIII = 393, + DLTtapeIIIxt = 394, + DLTtapeIV = 395, + DLTtapeS4 = 396, + SDLT1 = 397, + SDLT2 = 398, + VStapeI = 399, + +#endregion DEC, types 390 to 399 + +#region Exatape, types 400 to 419 + + Exatape15m = 400, + Exatape22m = 401, + Exatape22mAME = 402, + Exatape28m = 403, + Exatape40m = 404, + Exatape45m = 405, + Exatape54m = 406, + Exatape75m = 407, + Exatape76m = 408, + Exatape80m = 409, + Exatape106m = 410, + Exatape160mXL = 411, + Exatape112m = 412, + Exatape125m = 413, + Exatape150m = 414, + Exatape170m = 415, + Exatape225m = 416, + +#endregion Exatape, types 400 to 419 + +#region PCMCIA / ExpressCard, types 420 to 429 + + ExpressCard34 = 420, + ExpressCard54 = 421, + PCCardTypeI = 422, + PCCardTypeII = 423, + PCCardTypeIII = 424, + PCCardTypeIV = 425, + +#endregion PCMCIA / ExpressCard, types 420 to 429 + +#region SyQuest, types 430 to 449 - #region SyQuest, types 430 to 449 /// SyQuest 135Mb cartridge for use in EZ135 and EZFlyer drives EZ135 = 430, /// SyQuest EZFlyer 230Mb cartridge for use in EZFlyer drive @@ -663,84 +794,173 @@ public enum MediaType : uint SQ2000 = 442, /// SyQuest 1.5Gb cartridge for SyJet drive SyJet = 443, - #endregion SyQuest, types 430 to 449 - #region Nintendo, types 450 to 469 - FamicomGamePak = 450, GameBoyAdvanceGamePak = 451, GameBoyGamePak = 452, +#endregion SyQuest, types 430 to 449 + +#region Nintendo, types 450 to 469 + + FamicomGamePak = 450, + GameBoyAdvanceGamePak = 451, + GameBoyGamePak = 452, /// Nintendo GameCube Optical Disc - GOD = 453, N64DD = 454, N64GamePak = 455, NESGamePak = 456, - Nintendo3DSGameCard = 457, NintendoDiskCard = 458, NintendoDSGameCard = 459, - NintendoDSiGameCard = 460, SNESGamePak = 461, SNESGamePakUS = 462, + GOD = 453, + N64DD = 454, + N64GamePak = 455, + NESGamePak = 456, + Nintendo3DSGameCard = 457, + NintendoDiskCard = 458, + NintendoDSGameCard = 459, + NintendoDSiGameCard = 460, + SNESGamePak = 461, + SNESGamePakUS = 462, /// Nintendo Wii Optical Disc WOD = 463, /// Nintendo Wii U Optical Disc - WUOD = 464, SwitchGameCard = 465, - #endregion Nintendo, types 450 to 469 + WUOD = 464, + SwitchGameCard = 465, - #region IBM Tapes, types 470 to 479 - IBM3470 = 470, IBM3480 = 471, IBM3490 = 472, - IBM3490E = 473, IBM3592 = 474, - #endregion IBM Tapes, types 470 to 479 +#endregion Nintendo, types 450 to 469 - #region LTO Ultrium, types 480 to 509 - LTO = 480, LTO2 = 481, LTO3 = 482, - LTO3WORM = 483, LTO4 = 484, LTO4WORM = 485, - LTO5 = 486, LTO5WORM = 487, LTO6 = 488, - LTO6WORM = 489, LTO7 = 490, LTO7WORM = 491, - #endregion LTO Ultrium, types 480 to 509 +#region IBM Tapes, types 470 to 479 - #region MemoryStick, types 510 to 519 - MemoryStick = 510, MemoryStickDuo = 511, MemoryStickMicro = 512, - MemoryStickPro = 513, MemoryStickProDuo = 514, - #endregion MemoryStick, types 510 to 519 + IBM3470 = 470, + IBM3480 = 471, + IBM3490 = 472, + IBM3490E = 473, + IBM3592 = 474, - #region SecureDigital, types 520 to 529 - microSD = 520, miniSD = 521, SecureDigital = 522, - #endregion SecureDigital, types 520 to 529 +#endregion IBM Tapes, types 470 to 479 - #region MultiMediaCard, types 530 to 539 - MMC = 530, MMCmicro = 531, RSMMC = 532, - MMCplus = 533, MMCmobile = 534, - #endregion MultiMediaCard, types 530 to 539 +#region LTO Ultrium, types 480 to 509 - #region SLR, types 540 to 569 - MLR1 = 540, MLR1SL = 541, MLR3 = 542, - SLR1 = 543, SLR2 = 544, SLR3 = 545, - SLR32 = 546, SLR32SL = 547, SLR4 = 548, - SLR5 = 549, SLR5SL = 550, SLR6 = 551, - SLRtape7 = 552, SLRtape7SL = 553, SLRtape24 = 554, - SLRtape24SL = 555, SLRtape40 = 556, SLRtape50 = 557, - SLRtape60 = 558, SLRtape75 = 559, SLRtape100 = 560, + LTO = 480, + LTO2 = 481, + LTO3 = 482, + LTO3WORM = 483, + LTO4 = 484, + LTO4WORM = 485, + LTO5 = 486, + LTO5WORM = 487, + LTO6 = 488, + LTO6WORM = 489, + LTO7 = 490, + LTO7WORM = 491, + +#endregion LTO Ultrium, types 480 to 509 + +#region MemoryStick, types 510 to 519 + + MemoryStick = 510, + MemoryStickDuo = 511, + MemoryStickMicro = 512, + MemoryStickPro = 513, + MemoryStickProDuo = 514, + +#endregion MemoryStick, types 510 to 519 + +#region SecureDigital, types 520 to 529 + + microSD = 520, + miniSD = 521, + SecureDigital = 522, + +#endregion SecureDigital, types 520 to 529 + +#region MultiMediaCard, types 530 to 539 + + MMC = 530, + MMCmicro = 531, + RSMMC = 532, + MMCplus = 533, + MMCmobile = 534, + +#endregion MultiMediaCard, types 530 to 539 + +#region SLR, types 540 to 569 + + MLR1 = 540, + MLR1SL = 541, + MLR3 = 542, + SLR1 = 543, + SLR2 = 544, + SLR3 = 545, + SLR32 = 546, + SLR32SL = 547, + SLR4 = 548, + SLR5 = 549, + SLR5SL = 550, + SLR6 = 551, + SLRtape7 = 552, + SLRtape7SL = 553, + SLRtape24 = 554, + SLRtape24SL = 555, + SLRtape40 = 556, + SLRtape50 = 557, + SLRtape60 = 558, + SLRtape75 = 559, + SLRtape100 = 560, SLRtape140 = 561, - #endregion SLR, types 540 to 569 - #region QIC, types 570 to 589 - QIC11 = 570, QIC120 = 571, QIC1350 = 572, - QIC150 = 573, QIC24 = 574, QIC3010 = 575, - QIC3020 = 576, QIC3080 = 577, QIC3095 = 578, - QIC320 = 579, QIC40 = 580, QIC525 = 581, +#endregion SLR, types 540 to 569 + +#region QIC, types 570 to 589 + + QIC11 = 570, + QIC120 = 571, + QIC1350 = 572, + QIC150 = 573, + QIC24 = 574, + QIC3010 = 575, + QIC3020 = 576, + QIC3080 = 577, + QIC3095 = 578, + QIC320 = 579, + QIC40 = 580, + QIC525 = 581, QIC80 = 582, - #endregion QIC, types 570 to 589 - #region StorageTek tapes, types 590 to 609 - STK4480 = 590, STK4490 = 591, STK9490 = 592, - T9840A = 593, T9840B = 594, T9840C = 595, - T9840D = 596, T9940A = 597, T9940B = 598, - T10000A = 599, T10000B = 600, T10000C = 601, +#endregion QIC, types 570 to 589 + +#region StorageTek tapes, types 590 to 609 + + STK4480 = 590, + STK4490 = 591, + STK9490 = 592, + T9840A = 593, + T9840B = 594, + T9840C = 595, + T9840D = 596, + T9940A = 597, + T9940B = 598, + T10000A = 599, + T10000B = 600, + T10000C = 601, T10000D = 602, - #endregion StorageTek tapes, types 590 to 609 - #region Travan, types 610 to 619 - Travan = 610, Travan1Ex = 611, Travan3 = 612, - Travan3Ex = 613, Travan4 = 614, Travan5 = 615, +#endregion StorageTek tapes, types 590 to 609 + +#region Travan, types 610 to 619 + + Travan = 610, + Travan1Ex = 611, + Travan3 = 612, + Travan3Ex = 613, + Travan4 = 614, + Travan5 = 615, Travan7 = 616, - #endregion Travan, types 610 to 619 - #region VXA, types 620 to 629 - VXA1 = 620, VXA2 = 621, VXA3 = 622, - #endregion VXA, types 620 to 629 +#endregion Travan, types 610 to 619 + +#region VXA, types 620 to 629 + + VXA1 = 620, + VXA2 = 621, + VXA3 = 622, + +#endregion VXA, types 620 to 629 + +#region Magneto-optical, types 630 to 659 - #region Magneto-optical, types 630 to 659 /// 5,25", M.O., WORM, 650Mb, 318750 sectors, 1024 bytes/sector, ECMA-153, ISO 11560 ECMA_153 = 630, /// 5,25", M.O., WORM, 600Mb, 581250 sectors, 512 bytes/sector, ECMA-153, ISO 11560 @@ -801,33 +1021,62 @@ public enum MediaType : uint ISO_10089 = 658, /// 5,25", M.O., ?????? sectors, 512 bytes/sector, ISO 10089, 594Mb/cart ISO_10089_512 = 659, - #endregion Magneto-optical, types 630 to 659 - #region Other floppy standards, types 660 to 689 - CompactFloppy = 660, DemiDiskette = 661, +#endregion Magneto-optical, types 630 to 659 + +#region Other floppy standards, types 660 to 689 + + CompactFloppy = 660, + DemiDiskette = 661, /// 3.5", 652 tracks, 2 sides, 512 bytes/sector, Floptical, ECMA-207, ISO 14169 - Floptical = 662, HiFD = 663, QuickDisk = 664, UHD144 = 665, - VideoFloppy = 666, Wafer = 667, ZXMicrodrive = 668, + Floptical = 662, + HiFD = 663, + QuickDisk = 664, + UHD144 = 665, + VideoFloppy = 666, + Wafer = 667, + ZXMicrodrive = 668, /// 5.25", SS, DD, 77 tracks, 16 spt, 256 bytes/sector, MFM, 100 tpi, 300rpm MetaFloppy_Mod_II = 669, - #endregion Other floppy standards, types 660 to 669 - #region Miscellaneous, types 670 to 689 - BeeCard = 670, Borsu = 671, DataStore = 672, - DIR = 673, DST = 674, DTF = 675, - DTF2 = 676, Flextra3020 = 677, Flextra3225 = 678, - HiTC1 = 679, HiTC2 = 680, LT1 = 681, - MiniCard = 872, Orb = 683, Orb5 = 684, - SmartMedia = 685, xD = 686, XQD = 687, - DataPlay = 688, - #endregion Miscellaneous, types 670 to 689 +#endregion Other floppy standards, types 660 to 669 - #region Apple specific media, types 690 to 699 - AppleProfile = 690, AppleWidget = 691, AppleHD20 = 692, - PriamDataTower = 693, Pippin = 694, - #endregion Apple specific media, types 690 to 699 +#region Miscellaneous, types 670 to 689 + + BeeCard = 670, + Borsu = 671, + DataStore = 672, + DIR = 673, + DST = 674, + DTF = 675, + DTF2 = 676, + Flextra3020 = 677, + Flextra3225 = 678, + HiTC1 = 679, + HiTC2 = 680, + LT1 = 681, + MiniCard = 872, + Orb = 683, + Orb5 = 684, + SmartMedia = 685, + xD = 686, + XQD = 687, + DataPlay = 688, + +#endregion Miscellaneous, types 670 to 689 + +#region Apple specific media, types 690 to 699 + + AppleProfile = 690, + AppleWidget = 691, + AppleHD20 = 692, + PriamDataTower = 693, + Pippin = 694, + +#endregion Apple specific media, types 690 to 699 + +#region DEC hard disks, types 700 to 729 - #region DEC hard disks, types 700 to 729 /// /// 2382 cylinders, 4 tracks/cylinder, 42 sectors/track, 128 words/sector, 32 bits/word, 512 bytes/sector, /// 204890112 bytes @@ -963,33 +1212,49 @@ public enum MediaType : uint /// 178387200 bytes /// RP06_18 = 726, - #endregion DEC hard disks, types 700 to 729 - #region Imation, types 730 to 739 - LS120 = 730, LS240 = 731, FD32MB = 732, - RDX = 733, +#endregion DEC hard disks, types 700 to 729 + +#region Imation, types 730 to 739 + + LS120 = 730, + LS240 = 731, + FD32MB = 732, + RDX = 733, /// Imation 320Gb RDX RDX320 = 734, - #endregion Imation, types 730 to 739 - #region VideoNow, types 740 to 749 - VideoNow = 740, VideoNowColor = 741, VideoNowXp = 742, - #endregion +#endregion Imation, types 730 to 739 + +#region VideoNow, types 740 to 749 + + VideoNow = 740, + VideoNowColor = 741, + VideoNowXp = 742, + +#endregion + +#region Iomega, types 750 to 759 - #region Iomega, types 750 to 759 /// 8"x11" Bernoulli Box disk with 10Mb capacity Bernoulli10 = 750, /// 8"x11" Bernoulli Box disk with 20Mb capacity Bernoulli20 = 751, /// 5⅓" Bernoulli Box II disk with 20Mb capacity BernoulliBox2_20 = 752, - #endregion Iomega, types 750 to 759 - #region Kodak, types 760 to 769 - KodakVerbatim3 = 760, KodakVerbatim6 = 761, KodakVerbatim12 = 762, - #endregion Kodak, types 760 to 769 +#endregion Iomega, types 750 to 759 + +#region Kodak, types 760 to 769 + + KodakVerbatim3 = 760, + KodakVerbatim6 = 761, + KodakVerbatim12 = 762, + +#endregion Kodak, types 760 to 769 + +#region Sony and Panasonic Blu-ray derived, types 770 to 799 - #region Sony and Panasonic Blu-ray derived, types 770 to 799 /// Professional Disc for video, single layer, rewritable, 23Gb ProfessionalDisc = 770, /// Professional Disc for video, dual layer, rewritable, 50Gb @@ -1024,9 +1289,11 @@ public enum MediaType : uint ODC3300R = 785, /// Optical Disc archive, 5th gen., write once, 5500Gb ODC5500R = 786, - #endregion Sony and Panasonic Blu-ray derived, types 770 to 799 - #region Magneto-optical, types 800 to 819 +#endregion Sony and Panasonic Blu-ray derived, types 770 to 799 + +#region Magneto-optical, types 800 to 819 + /// 5,25", M.O., 4383356 sectors, 1024 bytes/sector, ECMA-322, ISO 22092, 9.1Gb/cart ECMA_322_1k = 800, /// 5,25", M.O., ??????? sectors, 512 bytes/sector, ECMA-322, ISO 22092, 9.1Gb/cart @@ -1037,16 +1304,20 @@ public enum MediaType : uint ISO_14517_512 = 803, /// 3,5", M.O., 1041500 sectors, 512 bytes/sector, ISO 15041, 540Mb/cart ISO_15041_512 = 804, - #endregion Magneto-optical, types 800 to 819 - #region More floppy formats, types 820 to deprecated +#endregion Magneto-optical, types 800 to 819 + +#region More floppy formats, types 820 to deprecated + /// 5.25", SS, DD, 35 tracks, 16 spt, 256 bytes/sector, MFM, 48 tpi, ???rpm MetaFloppy_Mod_I = 820, /// HyperFlex (12Mb), 5.25", DS, 301 tracks, 78 spt, 256 bytes/sector, MFM, 333 tpi, 600rpm HF12 = 823, /// HyperFlex (24Mb), 5.25", DS, 506 tracks, 78 spt, 256 bytes/sector, MFM, 666 tpi, 720rpm HF24 = 824, - #endregion - AtariLynxCard = 821, AtariJaguarCartridge = 822 +#endregion + + AtariLynxCard = 821, + AtariJaguarCartridge = 822 } \ No newline at end of file diff --git a/MediaTypeFromDevice/FromAta.cs b/MediaTypeFromDevice/FromAta.cs index 2a9364f..10fae59 100644 --- a/MediaTypeFromDevice/FromAta.cs +++ b/MediaTypeFromDevice/FromAta.cs @@ -47,7 +47,7 @@ public static partial class MediaTypeFromDevice /// Number of blocks in device /// The media type public static MediaType GetFromAta(string manufacturer, string model, bool removable, bool compactFlash, - bool pcmcia, ulong blocks) + bool pcmcia, ulong blocks) { if(!removable) { diff --git a/MediaTypeFromDevice/FromMmc.cs b/MediaTypeFromDevice/FromMmc.cs index 18846bd..36bbd4c 100644 --- a/MediaTypeFromDevice/FromMmc.cs +++ b/MediaTypeFromDevice/FromMmc.cs @@ -50,12 +50,13 @@ public static partial class MediaTypeFromDevice /// Is the media an optical disc /// Media type static MediaType GetFromMmc(string model, byte mediumType, byte densityCode, ulong blocks, uint blockSize, - bool isUsb, bool opticalDisc) + bool isUsb, bool opticalDisc) { switch(mediumType) { case 0x00: if(blockSize == 512) + { if(blocks == 1281856) { AaruConsole.DebugWriteLine(MODULE_NAME, @@ -74,6 +75,7 @@ public static partial class MediaTypeFromDevice return MediaType.PD650; } + } AaruConsole.DebugWriteLine(MODULE_NAME, Localization.SCSI_medium_type_is_0_setting_media_type_to_Compact_Disc, @@ -144,6 +146,7 @@ public static partial class MediaTypeFromDevice return MediaType.FlashDrive; case 0x80: if(model.ToLowerInvariant().StartsWith("ult", StringComparison.Ordinal)) + { switch(densityCode) { case 0x42: @@ -175,6 +178,7 @@ public static partial class MediaTypeFromDevice return MediaType.LTO5; } + } break; } diff --git a/MediaTypeFromDevice/FromScsi.cs b/MediaTypeFromDevice/FromScsi.cs index 14460ae..6e7b2bd 100644 --- a/MediaTypeFromDevice/FromScsi.cs +++ b/MediaTypeFromDevice/FromScsi.cs @@ -67,15 +67,18 @@ public static partial class MediaTypeFromDevice return GetFromSbc(vendor, model, mediumType, blocks, blockSize); // Sequential access device - case 0x01: return GetFromSsc(scsiPeripheralType, vendor, model, mediumType, densityCode, blocks, blockSize); + case 0x01: + return GetFromSsc(scsiPeripheralType, vendor, model, mediumType, densityCode, blocks, blockSize); // Write-once device case 0x04: // Optical device - case 0x07: return GetFromOdc(mediumType, blocks, blockSize); + case 0x07: + return GetFromOdc(mediumType, blocks, blockSize); // MultiMedia Device - case 0x05: return GetFromMmc(model, mediumType, densityCode, blocks, blockSize, isUsb, opticalDisc); + case 0x05: + return GetFromMmc(model, mediumType, densityCode, blocks, blockSize, isUsb, opticalDisc); // MD DATA drives case 0x10 when model.StartsWith("MDM", StringComparison.Ordinal) || diff --git a/MediaTypeFromDevice/FromSsc.cs b/MediaTypeFromDevice/FromSsc.cs index 000fbce..8f5c8ae 100644 --- a/MediaTypeFromDevice/FromSsc.cs +++ b/MediaTypeFromDevice/FromSsc.cs @@ -49,7 +49,7 @@ public static partial class MediaTypeFromDevice /// Size of a block in bytes /// Media type public static MediaType GetFromSsc(byte scsiPeripheralType, string vendor, string model, byte mediumType, - byte densityCode, ulong blocks, uint blockSize) + byte densityCode, ulong blocks, uint blockSize) { switch(mediumType) { @@ -1073,8 +1073,8 @@ public static partial class MediaTypeFromDevice return MediaType.Exatape106m; } - if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || - model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || + if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || + model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || model.ToLowerInvariant().StartsWith("superdlt", StringComparison.Ordinal)) { AaruConsole.DebugWriteLine(MODULE_NAME, @@ -1127,8 +1127,8 @@ public static partial class MediaTypeFromDevice case 0x88: case 0x89: { - if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || - model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || + if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || + model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || model.ToLowerInvariant().StartsWith("superdlt", StringComparison.Ordinal)) { AaruConsole.DebugWriteLine(MODULE_NAME, @@ -1174,8 +1174,8 @@ public static partial class MediaTypeFromDevice return MediaType.Exatape160mXL; } - if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || - model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || + if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || + model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || model.ToLowerInvariant().StartsWith("superdlt", StringComparison.Ordinal)) { AaruConsole.DebugWriteLine(MODULE_NAME, Localization.SCSI_Media_Type_Description_SDLT, @@ -1205,8 +1205,8 @@ public static partial class MediaTypeFromDevice case 0x92: case 0x93: { - if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || - model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || + if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || + model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || model.ToLowerInvariant().StartsWith("superdlt", StringComparison.Ordinal)) { AaruConsole.DebugWriteLine(MODULE_NAME, Localization.SCSI_Media_Type_Description_SDLT, @@ -1228,8 +1228,8 @@ public static partial class MediaTypeFromDevice case 0x00: case 0x4A: { - if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || - model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || + if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || + model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || model.ToLowerInvariant().StartsWith("superdlt", StringComparison.Ordinal)) { AaruConsole.DebugWriteLine(MODULE_NAME, @@ -1254,8 +1254,8 @@ public static partial class MediaTypeFromDevice case 0x98: case 0x99: { - if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || - model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || + if(model.ToLowerInvariant().StartsWith("dlt", StringComparison.Ordinal) || + model.ToLowerInvariant().StartsWith("sdlt", StringComparison.Ordinal) || model.ToLowerInvariant().StartsWith("superdlt", StringComparison.Ordinal)) { AaruConsole.DebugWriteLine(MODULE_NAME, diff --git a/Metadata/CdOffset.cs b/Metadata/CdOffset.cs index 58c8b17..2f3ab25 100644 --- a/Metadata/CdOffset.cs +++ b/Metadata/CdOffset.cs @@ -45,12 +45,16 @@ public class CdOffset { /// Drive manufacturer public string Manufacturer { get; set; } + /// Drive model public string Model { get; set; } + /// Reading offset public short Offset { get; set; } + /// Number of times this offset has been submitted public int Submissions { get; set; } + /// Percentage of submissions in agreement with this offset [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:P0}")] public float Agreement { get; set; } diff --git a/Metadata/DeviceReport.cs b/Metadata/DeviceReport.cs index 5fc0f14..cfc0b31 100644 --- a/Metadata/DeviceReport.cs +++ b/Metadata/DeviceReport.cs @@ -58,7 +58,6 @@ using Aaru.CommonTypes.Structs.Devices.SCSI.Modes; namespace Aaru.CommonTypes.Metadata; - // ReSharper disable once PartialTypeWithSinglePart [JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull, IncludeFields = true)] @@ -68,7 +67,8 @@ public partial class DeviceReportContext : JsonSerializerContext; public class DeviceReport { [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public virtual Usb USB { get; set; } public virtual FireWire FireWire { get; set; } public virtual Pcmcia PCMCIA { get; set; } @@ -90,29 +90,43 @@ public class Usb { [JsonIgnore] public int Id { get; set; } - [DisplayName("Vendor ID"), DisplayFormat(DataFormatString = "0x{0:X4}")] + + [DisplayName("Vendor ID")] + [DisplayFormat(DataFormatString = "0x{0:X4}")] public ushort VendorID { get; set; } - [DisplayName("Product ID"), DisplayFormat(DataFormatString = "0x{0:X4}")] - public ushort ProductID { get; set; } + + [DisplayName("Product ID")] + [DisplayFormat(DataFormatString = "0x{0:X4}")] + public ushort ProductID { get; set; } + public string Manufacturer { get; set; } public string Product { get; set; } + [DisplayName("Removable media")] public bool RemovableMedia { get; set; } - public byte[] Descriptors { get; set; } + + public byte[] Descriptors { get; set; } } public class FireWire { [JsonIgnore] public int Id { get; set; } - [DisplayName("Vendor ID"), DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "0x{0:X8}")] + + [DisplayName("Vendor ID")] + [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "0x{0:X8}")] public uint VendorID { get; set; } - [DisplayName("Product ID"), DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "0x{0:X8}")] + + [DisplayName("Product ID")] + [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "0x{0:X8}")] public uint ProductID { get; set; } + [DisplayFormat(NullDisplayText = "Unknown")] public string Manufacturer { get; set; } + [DisplayFormat(NullDisplayText = "Unknown")] public string Product { get; set; } + [DisplayName("Is media removable?")] public bool RemovableMedia { get; set; } } @@ -122,7 +136,8 @@ public class Ata public Identify.IdentifyDevice? IdentifyDevice => Structs.Devices.ATA.Identify.Decode(Identify); [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public byte[] Identify { get; set; } public virtual TestedMedia ReadCapabilities { get; set; } public virtual List RemovableMedias { get; set; } @@ -131,7 +146,8 @@ public class Ata public class Chs { [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public ushort Cylinders { get; set; } public ushort Heads { get; set; } public ushort Sectors { get; set; } @@ -143,30 +159,42 @@ public class Scsi [JsonIgnore] public int Id { get; set; } + [DisplayName("Data from INQUIRY command")] - public byte[] InquiryData { get; set; } + public byte[] InquiryData { get; set; } + public virtual List EVPDPages { get; set; } + [DisplayName("Supports MODE SENSE(6)")] public bool SupportsModeSense6 { get; set; } + [DisplayName("Supports MODE SENSE(10)")] public bool SupportsModeSense10 { get; set; } + [DisplayName("Supports MODE SENSE with subpages")] - public bool SupportsModeSubpages { get; set; } + public bool SupportsModeSubpages { get; set; } + public virtual ScsiMode ModeSense { get; set; } public virtual Mmc MultiMediaDevice { get; set; } public virtual TestedMedia ReadCapabilities { get; set; } public virtual List RemovableMedias { get; set; } public virtual Ssc SequentialDevice { get; set; } + [DisplayName("Data from MODE SENSE(6) command")] public byte[] ModeSense6Data { get; set; } + [DisplayName("Data from MODE SENSE(10) command")] public byte[] ModeSense10Data { get; set; } + [DisplayName("Data from MODE SENSE(6) command (current)")] public byte[] ModeSense6CurrentData { get; set; } + [DisplayName("Data from MODE SENSE(10) command (current)")] public byte[] ModeSense10CurrentData { get; set; } + [DisplayName("Data from MODE SENSE(6) command (changeable)")] public byte[] ModeSense6ChangeableData { get; set; } + [DisplayName("Data from MODE SENSE(10) command (changeable)")] public byte[] ModeSense10ChangeableData { get; set; } @@ -178,27 +206,36 @@ public class ScsiMode { [JsonIgnore] public int Id { get; set; } + [DisplayName("Medium type code")] public byte? MediumType { get; set; } + [DisplayName("Write protected")] - public bool WriteProtected { get; set; } + public bool WriteProtected { get; set; } + public virtual List BlockDescriptors { get; set; } public byte? Speed { get; set; } + [DisplayName("Buffered mode")] public byte? BufferedMode { get; set; } + [DisplayName("Blank check enabled")] public bool BlankCheckEnabled { get; set; } + [DisplayName("DPO and FUA")] - public bool DPOandFUA { get; set; } + public bool DPOandFUA { get; set; } + public virtual List ModePages { get; set; } } public class BlockDescriptor { [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public byte Density { get; set; } public ulong? Blocks { get; set; } + [DisplayName("Block length (bytes)")] public uint? BlockLength { get; set; } } @@ -206,7 +243,8 @@ public class BlockDescriptor public class ScsiPage { [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public byte page { get; set; } public byte? subpage { get; set; } public byte[] value { get; set; } @@ -216,10 +254,12 @@ public class Mmc { [JsonIgnore] public int Id { get; set; } + public virtual ModePage_2A ModeSense2A => ModePage_2A.Decode(ModeSense2AData); public virtual MmcFeatures Features { get; set; } public virtual List TestedMedia { get; set; } public byte[] ModeSense2AData { get; set; } + [JsonIgnore] public int? FeaturesId { get; set; } } @@ -228,254 +268,379 @@ public class MmcFeatures { [JsonIgnore] public int Id { get; set; } + [DisplayName("AACS version")] public byte? AACSVersion { get; set; } + [DisplayName("AGIDs")] public byte? AGIDs { get; set; } + [DisplayName("Binding nonce blocks")] public byte? BindingNonceBlocks { get; set; } + [DisplayName("Blocks per readable unit")] public ushort? BlocksPerReadableUnit { get; set; } + [DisplayName("Buffer under-run free in DVD writing")] public bool BufferUnderrunFreeInDVD { get; set; } + [DisplayName("Buffer under-run free in SAO writing")] public bool BufferUnderrunFreeInSAO { get; set; } + [DisplayName("Buffer under-run free in TAO writing")] public bool BufferUnderrunFreeInTAO { get; set; } + [DisplayName("Can audio scan")] public bool CanAudioScan { get; set; } + [DisplayName("Can eject")] public bool CanEject { get; set; } + [DisplayName("Can erase sectors")] public bool CanEraseSector { get; set; } + [DisplayName("Can expand BD-RE spare area")] public bool CanExpandBDRESpareArea { get; set; } + [DisplayName("Can format media")] public bool CanFormat { get; set; } + [DisplayName("Can format BD-RE without spare area")] public bool CanFormatBDREWithoutSpare { get; set; } + [DisplayName("Can do a fully certified format")] public bool CanFormatCert { get; set; } + [DisplayName("Can do a FRF format")] public bool CanFormatFRF { get; set; } + [DisplayName("Can do a quick certified format")] public bool CanFormatQCert { get; set; } + [DisplayName("Can do a RRM format")] public bool CanFormatRRM { get; set; } + [DisplayName("Can generate binding nonce")] public bool CanGenerateBindingNonce { get; set; } + [DisplayName("Can load")] public bool CanLoad { get; set; } + [DisplayName("Can mute separate channels")] public bool CanMuteSeparateChannels { get; set; } + [DisplayName("Can overwrite track in SAO")] public bool CanOverwriteSAOTrack { get; set; } + [DisplayName("Can overwrite track in TAO")] public bool CanOverwriteTAOTrack { get; set; } + [DisplayName("Can play CD-DA")] public bool CanPlayCDAudio { get; set; } + [DisplayName("Can pseudo-overwrite BD-R")] public bool CanPseudoOverwriteBDR { get; set; } + [DisplayName("Can read all dual-layer recordables")] public bool CanReadAllDualR { get; set; } + [DisplayName("Can read all dual-layer rewritables")] public bool CanReadAllDualRW { get; set; } + [DisplayName("Can read Blu-ray")] public bool CanReadBD { get; set; } + [DisplayName("Can read BD-R")] public bool CanReadBDR { get; set; } + [DisplayName("Can read BD-RE v1")] public bool CanReadBDRE1 { get; set; } + [DisplayName("Can read BD-RE v2")] public bool CanReadBDRE2 { get; set; } + [DisplayName("Can read BD-ROM")] public bool CanReadBDROM { get; set; } + [DisplayName("Can read BCA from Blu-ray")] public bool CanReadBluBCA { get; set; } + [DisplayName("Can read CD")] public bool CanReadCD { get; set; } + [DisplayName("Can read CD-MRW")] public bool CanReadCDMRW { get; set; } + [DisplayName("Can read CPRM's MKB")] public bool CanReadCPRM_MKB { get; set; } + [DisplayName("Can read DDCD")] public bool CanReadDDCD { get; set; } + [DisplayName("Can read DVD")] public bool CanReadDVD { get; set; } + [DisplayName("Can read DVD+MRW")] public bool CanReadDVDPlusMRW { get; set; } + [DisplayName("Can read DVD+R")] public bool CanReadDVDPlusR { get; set; } + [DisplayName("Can read DVD+R DL")] public bool CanReadDVDPlusRDL { get; set; } + [DisplayName("Can read DVD+RW")] public bool CanReadDVDPlusRW { get; set; } + [DisplayName("Can read DVD+RW DL")] public bool CanReadDVDPlusRWDL { get; set; } + [DisplayName("Can read drive's AACS certificate")] public bool CanReadDriveAACSCertificate { get; set; } + [DisplayName("Can read HD DVD")] public bool CanReadHDDVD { get; set; } + [DisplayName("Can read HD DVD-R")] public bool CanReadHDDVDR { get; set; } + [DisplayName("Can read HD DVD-RAM")] public bool CanReadHDDVDRAM { get; set; } + [DisplayName("Can read Lead-In's CD-TEXT")] public bool CanReadLeadInCDText { get; set; } + [DisplayName("Can read old generation BD-R")] public bool CanReadOldBDR { get; set; } + [DisplayName("Can read old generation BD-RE")] public bool CanReadOldBDRE { get; set; } + [DisplayName("Can read old generation BD-ROM")] public bool CanReadOldBDROM { get; set; } + [DisplayName("Can read spare area information")] public bool CanReadSpareAreaInformation { get; set; } + [DisplayName("Can report drive serial number")] public bool CanReportDriveSerial { get; set; } + [DisplayName("Can report media serial number")] public bool CanReportMediaSerial { get; set; } + [DisplayName("Can test write DDCD-R")] public bool CanTestWriteDDCDR { get; set; } + [DisplayName("Can test write DVD")] public bool CanTestWriteDVD { get; set; } + [DisplayName("Can test write in SAO mode")] public bool CanTestWriteInSAO { get; set; } + [DisplayName("Can test write in TAO mode")] public bool CanTestWriteInTAO { get; set; } + [DisplayName("Can upgrade firmware")] public bool CanUpgradeFirmware { get; set; } + [DisplayName("Can write Blu-ray")] public bool CanWriteBD { get; set; } + [DisplayName("Can write BD-R")] public bool CanWriteBDR { get; set; } + [DisplayName("Can write BD-RE v1")] public bool CanWriteBDRE1 { get; set; } + [DisplayName("Can write BD-RE v2")] public bool CanWriteBDRE2 { get; set; } + [DisplayName("Can write bus encrypted blocks")] public bool CanWriteBusEncryptedBlocks { get; set; } + [DisplayName("Can write CD-MRW")] public bool CanWriteCDMRW { get; set; } + [DisplayName("Can write CD-RW")] public bool CanWriteCDRW { get; set; } + [DisplayName("Can write CD-RW CAV")] public bool CanWriteCDRWCAV { get; set; } + [DisplayName("Can write CD in SAO mode")] public bool CanWriteCDSAO { get; set; } + [DisplayName("Can write CD in TAO mode")] public bool CanWriteCDTAO { get; set; } + [DisplayName("Can write CSS managed DVD")] public bool CanWriteCSSManagedDVD { get; set; } + [DisplayName("Can write DDCD-R")] public bool CanWriteDDCDR { get; set; } + [DisplayName("Can write DDCD-RW")] public bool CanWriteDDCDRW { get; set; } + [DisplayName("Can write DVD+MRW")] public bool CanWriteDVDPlusMRW { get; set; } + [DisplayName("Can write DVD+R")] public bool CanWriteDVDPlusR { get; set; } + [DisplayName("Can write DVD+R DL")] public bool CanWriteDVDPlusRDL { get; set; } + [DisplayName("Can write DVD+RW")] public bool CanWriteDVDPlusRW { get; set; } + [DisplayName("Can write DVD+RW DL")] public bool CanWriteDVDPlusRWDL { get; set; } + [DisplayName("Can write DVD-R")] public bool CanWriteDVDR { get; set; } + [DisplayName("Can write DVD-R DL")] public bool CanWriteDVDRDL { get; set; } + [DisplayName("Can write DVD-RW")] public bool CanWriteDVDRW { get; set; } + [DisplayName("Can write HD DVD-R")] public bool CanWriteHDDVDR { get; set; } + [DisplayName("Can write HD DVD-RAM")] public bool CanWriteHDDVDRAM { get; set; } + [DisplayName("Can write old generation BD-R")] public bool CanWriteOldBDR { get; set; } + [DisplayName("Can write old generation BD-RE")] public bool CanWriteOldBDRE { get; set; } + [DisplayName("Can write packet subchannel in TAO")] public bool CanWritePackedSubchannelInTAO { get; set; } + [DisplayName("Can write RW subchannel in SAO")] public bool CanWriteRWSubchannelInSAO { get; set; } + [DisplayName("Can write RW subchannel in TAO")] public bool CanWriteRWSubchannelInTAO { get; set; } + [DisplayName("Can write RAW-96 sectors")] public bool CanWriteRaw { get; set; } + [DisplayName("Can write RAW-96 sectors in multisession")] public bool CanWriteRawMultiSession { get; set; } + [DisplayName("Can write RAW-96 sectors in TAO")] public bool CanWriteRawSubchannelInTAO { get; set; } + [DisplayName("Changer is side change capable")] public bool ChangerIsSideChangeCapable { get; set; } + [DisplayName("Changer slots")] public byte ChangerSlots { get; set; } + [DisplayName("Changer supports disc present")] public bool ChangerSupportsDiscPresent { get; set; } + [DisplayName("CPRM version")] public byte? CPRMVersion { get; set; } + [DisplayName("CSS version")] public byte? CSSVersion { get; set; } + [DisplayName("DBML")] public bool DBML { get; set; } + [DisplayName("DVD Multi-Read Specification")] public bool DVDMultiRead { get; set; } + [DisplayName("Has an embedded changer")] public bool EmbeddedChanger { get; set; } + [DisplayName("Has error recovery page")] public bool ErrorRecoveryPage { get; set; } + [DisplayName("Firmware date")] public DateTime? FirmwareDate { get; set; } + [DisplayName("Loading mechanism type")] public byte? LoadingMechanismType { get; set; } + [DisplayName("Locked")] public bool Locked { get; set; } + [DisplayName("Logical block size")] public uint? LogicalBlockSize { get; set; } + [DisplayName("Multi-Read Specification")] public bool MultiRead { get; set; } + [DisplayName("Physical interface standard")] public PhysicalInterfaces? PhysicalInterfaceStandard => (PhysicalInterfaces?)PhysicalInterfaceStandardNumber; + [DisplayName("Physical interface standard number")] public uint? PhysicalInterfaceStandardNumber { get; set; } + [DisplayName("Prevent eject jumper")] public bool PreventJumper { get; set; } + [DisplayName("Supports AACS")] public bool SupportsAACS { get; set; } + [DisplayName("Supports bus encryption")] public bool SupportsBusEncryption { get; set; } + [DisplayName("Supports C2 pointers")] public bool SupportsC2 { get; set; } + [DisplayName("Supports CPRM")] public bool SupportsCPRM { get; set; } + [DisplayName("Supports CSS")] public bool SupportsCSS { get; set; } + [DisplayName("Supports DAP")] public bool SupportsDAP { get; set; } + [DisplayName("Supports device busy event")] public bool SupportsDeviceBusyEvent { get; set; } + [DisplayName("Supports hybrid discs")] public bool SupportsHybridDiscs { get; set; } + [DisplayName("Supports MODE PAGE 1Ch")] public bool SupportsModePage1Ch { get; set; } + [DisplayName("Supports OSSC")] public bool SupportsOSSC { get; set; } + [DisplayName("Supports PWP")] public bool SupportsPWP { get; set; } + [DisplayName("Supports SWPP")] public bool SupportsSWPP { get; set; } + [DisplayName("Supports SecurDisc")] public bool SupportsSecurDisc { get; set; } + [DisplayName("Support separate volume levels")] public bool SupportsSeparateVolume { get; set; } + [DisplayName("Supports VCPS")] public bool SupportsVCPS { get; set; } + [DisplayName("Supports write inhibit DCB")] public bool SupportsWriteInhibitDCB { get; set; } + [DisplayName("Supports write protect PAC")] public bool SupportsWriteProtectPAC { get; set; } + [DisplayName("Volume levels")] public ushort? VolumeLevels { get; set; } + [DisplayName("MMC FEATURES binary data")] public byte[] BinaryData { get; set; } } @@ -486,363 +651,523 @@ public class TestedMedia [JsonIgnore] public int Id { get; set; } + [DisplayName("IDENTIFY DEVICE data")] public byte[] IdentifyData { get; set; } + [DisplayName("Blocks")] public ulong? Blocks { get; set; } + [DisplayName("Bytes per block")] public uint? BlockSize { get; set; } + [DisplayName("Can read AACS")] public bool? CanReadAACS { get; set; } + [DisplayName("Can read ADIP")] public bool? CanReadADIP { get; set; } + [DisplayName("Can read ATIP")] public bool? CanReadATIP { get; set; } + [DisplayName("Can read BCA")] public bool? CanReadBCA { get; set; } + [DisplayName("Can read C2 pointers")] public bool? CanReadC2Pointers { get; set; } + [DisplayName("Can read Copyright Management Information")] public bool? CanReadCMI { get; set; } + [DisplayName("Can read corrected subchannel")] public bool? CanReadCorrectedSubchannel { get; set; } + [DisplayName("Can read corrected subchannel with C2 pointers")] public bool? CanReadCorrectedSubchannelWithC2 { get; set; } + [DisplayName("Can read DCBs")] public bool? CanReadDCB { get; set; } + [DisplayName("Can read DDS")] public bool? CanReadDDS { get; set; } + [DisplayName("Can read DMI")] public bool? CanReadDMI { get; set; } + [DisplayName("Can read disc information")] public bool? CanReadDiscInformation { get; set; } + [DisplayName("Can read full TOC")] public bool? CanReadFullTOC { get; set; } + [DisplayName("Can read HD-DVD Copyright Management Information")] public bool? CanReadHDCMI { get; set; } + [DisplayName("Can read layer capacity")] public bool? CanReadLayerCapacity { get; set; } + [DisplayName("Can read into first track pregap")] public bool? CanReadFirstTrackPreGap { get; set; } + [DisplayName("Can read into Lead-In")] public bool? CanReadLeadIn { get; set; } + [DisplayName("Can read into Lead-Out")] public bool? CanReadLeadOut { get; set; } + [DisplayName("Can read media ID")] public bool? CanReadMediaID { get; set; } + [DisplayName("Can read media serial number")] public bool? CanReadMediaSerial { get; set; } + [DisplayName("Can read PAC")] public bool? CanReadPAC { get; set; } + [DisplayName("Can read PFI")] public bool? CanReadPFI { get; set; } + [DisplayName("Can read PMA")] public bool? CanReadPMA { get; set; } + [DisplayName("Can read PQ subchannel")] public bool? CanReadPQSubchannel { get; set; } + [DisplayName("Can read PQ subchannel with C2 pointers")] public bool? CanReadPQSubchannelWithC2 { get; set; } + [DisplayName("Can read pre-recorded information")] public bool? CanReadPRI { get; set; } + [DisplayName("Can read RW subchannel")] public bool? CanReadRWSubchannel { get; set; } + [DisplayName("Can read RW subchannel with C2 pointers")] public bool? CanReadRWSubchannelWithC2 { get; set; } + [DisplayName("Can read recordable PFI")] public bool? CanReadRecordablePFI { get; set; } + [DisplayName("Can read spare area information")] public bool? CanReadSpareAreaInformation { get; set; } + [DisplayName("Can read TOC")] public bool? CanReadTOC { get; set; } + [DisplayName("Density code")] public byte? Density { get; set; } + [DisplayName("Bytes per block in READ LONG commands")] public uint? LongBlockSize { get; set; } + [DisplayName("Media manufacturer")] public string Manufacturer { get; set; } + [DisplayName("Media recognized by drive?")] public bool MediaIsRecognized { get; set; } + [DisplayName("Medium type code")] public byte? MediumType { get; set; } + [DisplayName("Media type")] public string MediumTypeName { get; set; } + [DisplayName("Media model")] public string Model { get; set; } + [DisplayName("Can read scrambled DVD sectors using HL-DT-ST cache trick")] public bool? SupportsHLDTSTReadRawDVD { get; set; } + [DisplayName("Supports NEC READ CD-DA command")] public bool? SupportsNECReadCDDA { get; set; } + [DisplayName("Supports Pioneer READ CD-DA command")] public bool? SupportsPioneerReadCDDA { get; set; } + [DisplayName("Supports Pioneer READ CD-DA MSF command")] public bool? SupportsPioneerReadCDDAMSF { get; set; } + [DisplayName("Supports Plextor READ CD-DA command")] public bool? SupportsPlextorReadCDDA { get; set; } + [DisplayName("Can read scrambled DVD sectors using Plextor vendor command")] public bool? SupportsPlextorReadRawDVD { get; set; } + [DisplayName("Supports READ(10) command")] public bool? SupportsRead10 { get; set; } + [DisplayName("Supports READ(12) command")] public bool? SupportsRead12 { get; set; } + [DisplayName("Supports READ(16) command")] public bool? SupportsRead16 { get; set; } + [DisplayName("Supports READ(6) command")] public bool? SupportsRead6 { get; set; } + [DisplayName("Supports READ CAPACITY(16) command")] public bool? SupportsReadCapacity16 { get; set; } + [DisplayName("Supports READ CAPACITY command")] public bool? SupportsReadCapacity { get; set; } + [DisplayName("Supports READ CD command")] public bool? SupportsReadCd { get; set; } + [DisplayName("Supports READ CD MSF command")] public bool? SupportsReadCdMsf { get; set; } + [DisplayName("Supports full sector in READ CD command")] public bool? SupportsReadCdRaw { get; set; } + [DisplayName("Supports full sector in READ CD MSF command")] public bool? SupportsReadCdMsfRaw { get; set; } + [DisplayName("Supports READ LONG(16) command")] public bool? SupportsReadLong16 { get; set; } + [DisplayName("Supports READ LONG command")] public bool? SupportsReadLong { get; set; } [DisplayName("Data from MODE SENSE(6) command")] public byte[] ModeSense6Data { get; set; } + [DisplayName("Data from MODE SENSE(10) command")] public byte[] ModeSense10Data { get; set; } public virtual Chs CHS { get; set; } public virtual Chs CurrentCHS { get; set; } + [DisplayName("Sectors in 28-bit LBA mode")] public uint? LBASectors { get; set; } + [DisplayName("Sectors in 48-bit LBA mode")] public ulong? LBA48Sectors { get; set; } + [DisplayName("Logical alignment")] public ushort? LogicalAlignment { get; set; } + [DisplayName("Nominal rotation rate")] public ushort? NominalRotationRate { get; set; } + [DisplayName("Bytes per block, physical")] public uint? PhysicalBlockSize { get; set; } + [DisplayName("Is it a SSD?")] public bool? SolidStateDevice { get; set; } + [DisplayName("Bytes per unformatted track")] public ushort? UnformattedBPT { get; set; } + [DisplayName("Bytes per unformatted sector")] public ushort? UnformattedBPS { get; set; } [DisplayName("Supports READ DMA (LBA) command")] public bool? SupportsReadDmaLba { get; set; } + [DisplayName("Supports READ DMA RETRY (LBA) command")] public bool? SupportsReadDmaRetryLba { get; set; } + [DisplayName("Supports READ SECTORS (LBA) command")] public bool? SupportsReadLba { get; set; } + [DisplayName("Supports READ SECTORS RETRY (LBA) command")] public bool? SupportsReadRetryLba { get; set; } + [DisplayName("Supports READ SECTORS LONG (LBA) command")] public bool? SupportsReadLongLba { get; set; } + [DisplayName("Supports READ SECTORS LONG RETRY (LBA) command")] public bool? SupportsReadLongRetryLba { get; set; } + [DisplayName("Supports SEEK (LBA) command")] public bool? SupportsSeekLba { get; set; } [DisplayName("Supports READ DMA EXT command")] public bool? SupportsReadDmaLba48 { get; set; } + [DisplayName("Supports READ SECTORS EXT command")] public bool? SupportsReadLba48 { get; set; } [DisplayName("Supports READ DMA command")] public bool? SupportsReadDma { get; set; } + [DisplayName("Supports READ DMA RETRY command")] public bool? SupportsReadDmaRetry { get; set; } + [DisplayName("Supports READ SECTORS RETRY command")] public bool? SupportsReadRetry { get; set; } + [DisplayName("Supports READ SECTORS command")] public bool? SupportsReadSectors { get; set; } + [DisplayName("Supports READ SECTORS LONG RETRY command")] public bool? SupportsReadLongRetry { get; set; } + [DisplayName("Supports SEEK command")] public bool? SupportsSeek { get; set; } [DisplayName("Can read into inter-session Lead-In")] public bool? CanReadingIntersessionLeadIn { get; set; } + [DisplayName("Can read into inter-session Lead-Out")] public bool? CanReadingIntersessionLeadOut { get; set; } + [DisplayName("Data from inter-session Lead-In")] public byte[] IntersessionLeadInData { get; set; } + [DisplayName("Data from inter-session Lead-Out")] public byte[] IntersessionLeadOutData { get; set; } [DisplayName("Can read scrambled data using READ CD command")] public bool? CanReadCdScrambled { get; set; } + [DisplayName("Data from scrambled READ CD command")] public byte[] ReadCdScrambledData { get; set; } [DisplayName("Can read from cache using F1h command subcommand 06h")] public bool? CanReadF1_06 { get; set; } + [DisplayName("Can read from cache using F1h command subcommand 06h")] public byte[] ReadF1_06Data { get; set; } + [DisplayName("Can read from cache using F1h command subcommand 06h targeting Lead-Out")] public bool? CanReadF1_06LeadOut { get; set; } + [DisplayName("Can read from cache using F1h command subcommand 06h targeting Lead-Out")] public byte[] ReadF1_06LeadOutData { get; set; } [JsonIgnore] public int? AtaId { get; set; } + [JsonIgnore] public int? ScsiId { get; set; } + [JsonIgnore] public int? MmcId { get; set; } - #region SCSI data +#region SCSI data + [DisplayName("Data from READ(6) command")] public byte[] Read6Data { get; set; } + [DisplayName("Data from READ(10) command")] public byte[] Read10Data { get; set; } + [DisplayName("Data from READ(12) command")] public byte[] Read12Data { get; set; } + [DisplayName("Data from READ(16) command")] public byte[] Read16Data { get; set; } + [DisplayName("Data from READ LONG(10) command")] public byte[] ReadLong10Data { get; set; } + [DisplayName("Data from READ LONG(16) command")] public byte[] ReadLong16Data { get; set; } - #endregion - #region ATA data +#endregion + +#region ATA data + [DisplayName("Data from READ SECTORS command")] public byte[] ReadSectorsData { get; set; } + [DisplayName("Data from READ SECTORS RETRY command")] public byte[] ReadSectorsRetryData { get; set; } + [DisplayName("Data from READ DMA command")] public byte[] ReadDmaData { get; set; } + [DisplayName("Data from READ DMA RETRY command")] public byte[] ReadDmaRetryData { get; set; } + [DisplayName("Data from READ SECTORS (LBA) command")] public byte[] ReadLbaData { get; set; } + [DisplayName("Data from READ SECTORS RETRY (LBA) command")] public byte[] ReadRetryLbaData { get; set; } + [DisplayName("Data from READ DMA (LBA) command")] public byte[] ReadDmaLbaData { get; set; } + [DisplayName("Data from READ DMA RETRY (LBA) command")] public byte[] ReadDmaRetryLbaData { get; set; } + [DisplayName("Data from READ SECTORS EXT command")] public byte[] ReadLba48Data { get; set; } + [DisplayName("Data from READ DMA EXT command")] public byte[] ReadDmaLba48Data { get; set; } + [DisplayName("Data from READ SECTORS LONG command")] public byte[] ReadLongData { get; set; } + [DisplayName("Data from READ SECTORS LONG RETRY command")] public byte[] ReadLongRetryData { get; set; } + [DisplayName("Data from READ SECTORS LONG (LBA) command")] public byte[] ReadLongLbaData { get; set; } + [DisplayName("Data from READ SECTORS LONG RETRY (LBA) command")] public byte[] ReadLongRetryLbaData { get; set; } - #endregion - #region CompactDisc data +#endregion + +#region CompactDisc data + [DisplayName("Data from READ TOC command")] public byte[] TocData { get; set; } + [DisplayName("Data from READ FULL TOC command")] public byte[] FullTocData { get; set; } + [DisplayName("Data from READ ATIP command")] public byte[] AtipData { get; set; } + [DisplayName("Data from READ PMA command")] public byte[] PmaData { get; set; } + [DisplayName("Data from READ CD command")] public byte[] ReadCdData { get; set; } + [DisplayName("Data from READ CD MSF command")] public byte[] ReadCdMsfData { get; set; } + [DisplayName("Data from READ CD (full sector) command")] public byte[] ReadCdFullData { get; set; } + [DisplayName("Data from READ CD MSF (full sector) command")] public byte[] ReadCdMsfFullData { get; set; } + [DisplayName("Data from track 1 pregap")] public byte[] Track1PregapData { get; set; } + [DisplayName("Data from Lead-In")] public byte[] LeadInData { get; set; } + [DisplayName("Data from Lead-Out")] public byte[] LeadOutData { get; set; } + [DisplayName("Data from reading C2 pointers")] public byte[] C2PointersData { get; set; } + [DisplayName("Data from reading with PQ subchannels")] public byte[] PQSubchannelData { get; set; } + [DisplayName("Data from reading with RW subchannels")] public byte[] RWSubchannelData { get; set; } + [DisplayName("Data from reading with corrected subchannels")] public byte[] CorrectedSubchannelData { get; set; } + [DisplayName("Data from reading with PQ subchannels and C2 pointers")] public byte[] PQSubchannelWithC2Data { get; set; } + [DisplayName("Data from reading with RW subchannels and C2 pointers")] public byte[] RWSubchannelWithC2Data { get; set; } + [DisplayName("Data from reading with corrected subchannels and C2 pointers")] public byte[] CorrectedSubchannelWithC2Data { get; set; } - #endregion - #region DVD data +#endregion + +#region DVD data + [DisplayName("Data from PFI")] public byte[] PfiData { get; set; } + [DisplayName("Data from DMI")] public byte[] DmiData { get; set; } + [DisplayName("Data from DVD's Copyright Management Information")] public byte[] CmiData { get; set; } + [DisplayName("Data from DVD's BCA")] public byte[] DvdBcaData { get; set; } + [DisplayName("Data from DVD's AACS")] public byte[] DvdAacsData { get; set; } + [DisplayName("Data from DVD's DDS")] public byte[] DvdDdsData { get; set; } + [DisplayName("Data from DVD's Spare Area Information")] public byte[] DvdSaiData { get; set; } + [DisplayName("Data from DVD's pre-recorded information")] public byte[] PriData { get; set; } + [DisplayName("Data from embossed PFI")] public byte[] EmbossedPfiData { get; set; } + [DisplayName("Data from ADIP")] public byte[] AdipData { get; set; } + [DisplayName("Data from DCBs")] public byte[] DcbData { get; set; } + [DisplayName("Data from HD-DVD's Copyright Management Information")] public byte[] HdCmiData { get; set; } + [DisplayName("Data from DVD's layer information")] public byte[] DvdLayerData { get; set; } - #endregion - #region Blu-ray data +#endregion + +#region Blu-ray data + [DisplayName("Data from Blu-ray's BCA")] public byte[] BluBcaData { get; set; } + [DisplayName("Data from Blu-ray's DDS")] public byte[] BluDdsData { get; set; } + [DisplayName("Data from Blu-ray's Spare Area Information")] public byte[] BluSaiData { get; set; } + [DisplayName("Data from Blu-ray's Disc Information")] public byte[] BluDiData { get; set; } + [DisplayName("Data from Blu-ray's PAC")] public byte[] BluPacData { get; set; } - #endregion - #region Vendor data +#endregion + +#region Vendor data + [DisplayName("Data from Plextor's READ CD-DA command")] public byte[] PlextorReadCddaData { get; set; } + [DisplayName("Data from Pioneer's READ CD-DA command")] public byte[] PioneerReadCddaData { get; set; } + [DisplayName("Data from Pioneer's READ CD-DA MSF command")] public byte[] PioneerReadCddaMsfData { get; set; } + [DisplayName("Data from NEC's READ CD-DA command")] public byte[] NecReadCddaData { get; set; } + [DisplayName("Data from Plextor's scrambled DVD reading command")] public byte[] PlextorReadRawDVDData { get; set; } + [DisplayName("Data from HL-DT-ST's scrambled DVD reading trick")] public byte[] HLDTSTReadRawDVDData { get; set; } - #endregion + +#endregion } public class Ssc { [JsonIgnore] public int Id { get; set; } + [DisplayName("Block size granularity")] public byte? BlockSizeGranularity { get; set; } + [DisplayName("Maximum block length")] public uint? MaxBlockLength { get; set; } + [DisplayName("Minimum block length")] public uint? MinBlockLength { get; set; } @@ -855,17 +1180,24 @@ public class TestedSequentialMedia { [JsonIgnore] public int Id { get; set; } + [DisplayName("Can read media serial?")] public bool? CanReadMediaSerial { get; set; } + [DisplayName("Density code")] - public byte? Density { get; set; } + public byte? Density { get; set; } + public string Manufacturer { get; set; } + [DisplayName("Media recognized by drive?")] public bool MediaIsRecognized { get; set; } + [DisplayName("Medium type code")] public byte? MediumType { get; set; } + [DisplayName("Medium type")] - public string MediumTypeName { get; set; } + public string MediumTypeName { get; set; } + public string Model { get; set; } public virtual List SupportedDensities { get; set; } public virtual List SupportedMediaTypes { get; set; } @@ -882,14 +1214,19 @@ public class Pcmcia public string[] AdditionalInformation; [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public byte[] CIS { get; set; } public string Compliance { get; set; } + [DisplayName("Manufacturer code")] public ushort? ManufacturerCode { get; set; } + [DisplayName("Card code")] - public ushort? CardCode { get; set; } + public ushort? CardCode { get; set; } + public string Manufacturer { get; set; } + [DisplayName("Product name")] public string ProductName { get; set; } } @@ -897,7 +1234,8 @@ public class Pcmcia public class MmcSd { [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public byte[] CID { get; set; } public byte[] CSD { get; set; } public byte[] OCR { get; set; } @@ -908,7 +1246,8 @@ public class MmcSd public class SscSupportedMedia { [JsonIgnore] - public int Id { get; set; } + public int Id { get; set; } + public byte MediumType { get; set; } public virtual List DensityCodes { get; set; } public ushort Width { get; set; } @@ -920,11 +1259,14 @@ public class SscSupportedMedia public class DensityCode : IEquatable { - [JsonIgnore, Key] + [JsonIgnore] + [Key] public int Id { get; set; } public int Code { get; set; } +#region IEquatable Members + public bool Equals(DensityCode other) { if(ReferenceEquals(null, other)) @@ -936,6 +1278,8 @@ public class DensityCode : IEquatable return Code == other.Code; } +#endregion + public override bool Equals(object obj) { if(ReferenceEquals(null, obj)) @@ -953,7 +1297,8 @@ public class DensityCode : IEquatable public class GdRomSwapDiscCapabilities { - [JsonIgnore, Key] + [JsonIgnore] + [Key] public int Id { get; set; } public bool RecognizedSwapDisc { get; set; } @@ -1160,20 +1505,28 @@ public class SupportedDensity { [JsonIgnore] public int Id { get; set; } + [DisplayName("Primary density code")] public byte PrimaryCode { get; set; } + [DisplayName("Secondary density code")] public byte SecondaryCode { get; set; } - public bool Writable { get; set; } - public bool Duplicate { get; set; } + + public bool Writable { get; set; } + public bool Duplicate { get; set; } + [DisplayName("Default density code")] public bool DefaultDensity { get; set; } + [DisplayName("Bits per mm")] public uint BitsPerMm { get; set; } - public ushort Width { get; set; } - public ushort Tracks { get; set; } + + public ushort Width { get; set; } + public ushort Tracks { get; set; } + [DisplayName("Nominal capacity (MiB)")] - public uint Capacity { get; set; } + public uint Capacity { get; set; } + public string Organization { get; set; } public string Name { get; set; } public string Description { get; set; } diff --git a/Metadata/Resume.cs b/Metadata/Resume.cs index 89eadaf..7aaca0c 100644 --- a/Metadata/Resume.cs +++ b/Metadata/Resume.cs @@ -57,12 +57,19 @@ public class ResumeJson } /// Information that allows to resume a dump -[Serializable, XmlRoot("DicResume", Namespace = "", IsNullable = false)] +[Serializable] +[XmlRoot("DicResume", Namespace = "", IsNullable = false)] public class Resume { /// List of blocks that returned an error on reading [XmlArrayItem("Block")] public List BadBlocks; + /// List of CD subchannels that did not read correctly + [XmlArrayItem("Block")] + public List BadSubchannels; + /// Extents of BLANK sectors for magneto-opticals + [XmlArrayItem("Extent")] + public Extent[] BlankExtents; /// Date/time this resume file was created [XmlElement(DataType = "dateTime")] public DateTime CreationDate; @@ -71,21 +78,15 @@ public class Resume /// Date/time this resume file was last written to [XmlElement(DataType = "dateTime")] public DateTime LastWriteDate; + /// Title keys that has not been read + [XmlArrayItem("Block")] + public List MissingTitleKeys; /// Next block to read public ulong NextBlock; /// Is media removable? public bool Removable; /// Is media a tape? public bool Tape; - /// List of CD subchannels that did not read correctly - [XmlArrayItem("Block")] - public List BadSubchannels; - /// Extents of BLANK sectors for magneto-opticals - [XmlArrayItem("Extent")] - public Extent[] BlankExtents; - /// Title keys that has not been read - [XmlArrayItem("Block")] - public List MissingTitleKeys; /// List of dump tries [XmlArrayItem("DumpTry")] public List Tries; diff --git a/Metadata/Statistics.cs b/Metadata/Statistics.cs index bce1883..58bad04 100644 --- a/Metadata/Statistics.cs +++ b/Metadata/Statistics.cs @@ -52,34 +52,45 @@ public class Stats { /// Executed commands public CommandsStats Commands; + /// Operating systems Aaru has run from [XmlArrayItem("OperatingSystem")] public List OperatingSystems { get; set; } + /// Aaru versions [XmlArrayItem("Version")] public List Versions { get; set; } + /// Detected filesystems [XmlArrayItem("Filesystem")] public List Filesystems { get; set; } + /// Detected partitioning schemes [XmlArrayItem("Scheme")] public List Partitions { get; set; } + /// Media image formats [XmlArrayItem("Format")] public List MediaImages { get; set; } + /// Used filters [XmlArrayItem("Filter", IsNullable = true)] public List Filters { get; set; } + /// Found devices [XmlArrayItem("Device", IsNullable = true)] public List Devices { get; set; } + /// Found media types, real, and in image [XmlArrayItem("Media")] public List Medias { get; set; } + /// Benchmark statistics public BenchmarkStats Benchmark { get; set; } + /// Media scanning statistics public MediaScanStats MediaScan { get; set; } + /// Image verification statistics public VerifyStats Verify { get; set; } } @@ -96,26 +107,37 @@ public class StatsDto { /// Executed commands public List Commands { get; set; } + /// Operating systems Aaru has run from public List OperatingSystems { get; set; } + /// Aaru versions public List Versions { get; set; } + /// Detected filesystems public List Filesystems { get; set; } + /// Detected partitioning schemes public List Partitions { get; set; } + /// Media image formats public List MediaFormats { get; set; } + /// Used filters public List Filters { get; set; } + /// Found devices public List Devices { get; set; } + /// Found media types, real, and in image public List Medias { get; set; } + /// Remote applications public List RemoteApplications { get; set; } + /// Remote application architectures public List RemoteArchitectures { get; set; } + /// Operating systems where a remote application has been running public List RemoteOperatingSystems { get; set; } } @@ -260,13 +282,13 @@ public class BenchmarkStats [SuppressMessage("ReSharper", "InconsistentNaming")] public class MediaStats { - /// Found in a real device? - [XmlAttribute] - public bool real; /// Media type [XmlAttribute(AttributeName = "type")] [JsonPropertyName("type")] public string MediaType; + /// Found in a real device? + [XmlAttribute] + public bool real; /// Number of times it has been found [XmlText] public long Value; @@ -278,12 +300,16 @@ public class DeviceStats /// Is manufacturer null? [XmlIgnore] public bool ManufacturerSpecified; + /// Manufacturer string public string Manufacturer { get; set; } + /// Model string public string Model { get; set; } + /// Revision or firmware version public string Revision { get; set; } + /// Bus the device was attached to public string Bus { get; set; } } @@ -295,6 +321,7 @@ public class NameValueStats /// Name [XmlAttribute] public string name { get; set; } + /// Number of times it has been used/found [XmlText] public long Value { get; set; } @@ -307,9 +334,11 @@ public class OsStats /// Operating system name [XmlAttribute] public string name { get; set; } + /// Operating system version [XmlAttribute] public string version { get; set; } + /// Number of times Aaru run on it [XmlText] public long Value { get; set; } diff --git a/Partition.cs b/Partition.cs index af75511..907c128 100644 --- a/Partition.cs +++ b/Partition.cs @@ -61,8 +61,10 @@ public struct Partition : IEquatable, IComparable public ulong Length; /// Information that does not find space in this struct public string Description; + /// LBA of last partition sector public readonly ulong End => Start + Length - 1; + /// Name of partition scheme that contains this partition public string Scheme; diff --git a/Structs/Devices/ATA/Identify.cs b/Structs/Devices/ATA/Identify.cs index a45bc36..d705ed8 100644 --- a/Structs/Devices/ATA/Identify.cs +++ b/Structs/Devices/ATA/Identify.cs @@ -55,11 +55,12 @@ namespace Aaru.CommonTypes.Structs.Devices.ATA; /// T13-1699D rev. 3f (ATA8-ACS) T13-1699D rev. 4a (ATA8-ACS) T13-2015D rev. 2 (ACS-2) T13-2161D rev. 5 (ACS-3) CF+ /// & CF Specification rev. 1.4 (CFA) /// -[SuppressMessage("ReSharper", "InconsistentNaming"), SuppressMessage("ReSharper", "MemberCanBeInternal"), - SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] +[SuppressMessage("ReSharper", "InconsistentNaming")] +[SuppressMessage("ReSharper", "MemberCanBeInternal")] +[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] public static class Identify { - const string MODULE_NAME = "ATA/ATAPI IDENTIFY decoder"; +#region CapabilitiesBit enum /// Capabilities flag bits. [Flags] @@ -101,6 +102,10 @@ public static class Identify PhysicalAlignment0 = 0x0001 } +#endregion + +#region CapabilitiesBit2 enum + /// More capabilities flag bits. [Flags] public enum CapabilitiesBit2 : ushort @@ -109,17 +114,29 @@ public static class Identify MustBeClear = 0x8000, /// MUST be set MustBeSet = 0x4000, - #pragma warning disable 1591 - Reserved13 = 0x2000, Reserved12 = 0x1000, Reserved11 = 0x0800, - Reserved10 = 0x0400, Reserved09 = 0x0200, Reserved08 = 0x0100, - Reserved07 = 0x0080, Reserved06 = 0x0040, Reserved05 = 0x0020, - Reserved04 = 0x0010, Reserved03 = 0x0008, Reserved02 = 0x0004, + #pragma warning disable 1591 + Reserved13 = 0x2000, + Reserved12 = 0x1000, + Reserved11 = 0x0800, + Reserved10 = 0x0400, + Reserved09 = 0x0200, + Reserved08 = 0x0100, + Reserved07 = 0x0080, + Reserved06 = 0x0040, + Reserved05 = 0x0020, + Reserved04 = 0x0010, + Reserved03 = 0x0008, + Reserved02 = 0x0004, Reserved01 = 0x0002, - #pragma warning restore 1591 + #pragma warning restore 1591 /// Indicates a device specific minimum standby timer value SpecificStandbyTimer = 0x0001 } +#endregion + +#region CapabilitiesBit3 enum + /// Even more capabilities flag bits. [Flags] public enum CapabilitiesBit3 : byte @@ -136,13 +153,17 @@ public static class Identify SanitizeCommands = 0x0008, /// SANITIZE ANTIFREEZE LOCK EXT is supported SanitizeAntifreeze = 0x0004, - #pragma warning disable 1591 + #pragma warning disable 1591 Reserved01 = 0x0002, - #pragma warning restore 1591 + #pragma warning restore 1591 /// Multiple logical sector setting is valid MultipleValid = 0x0001 } +#endregion + +#region CommandSetBit enum + /// Command set flag bits. [Flags] public enum CommandSetBit : ushort @@ -181,6 +202,10 @@ public static class Identify SMART = 0x0001 } +#endregion + +#region CommandSetBit2 enum + /// More command set flag bits. [Flags] public enum CommandSetBit2 : ushort @@ -219,6 +244,10 @@ public static class Identify DownloadMicrocode = 0x0001 } +#endregion + +#region CommandSetBit3 enum + /// Even more command set flag bits. [Flags] public enum CommandSetBit3 : ushort @@ -257,6 +286,10 @@ public static class Identify SMARTLog = 0x0001 } +#endregion + +#region CommandSetBit4 enum + /// Yet more command set flag bits. [Flags] public enum CommandSetBit4 : ushort @@ -265,10 +298,12 @@ public static class Identify MustBeClear = 0x8000, /// MUST be set MustBeSet = 0x4000, - #pragma warning disable 1591 - Reserved13 = 0x2000, Reserved12 = 0x1000, Reserved11 = 0x0800, + #pragma warning disable 1591 + Reserved13 = 0x2000, + Reserved12 = 0x1000, + Reserved11 = 0x0800, Reserved10 = 0x0400, - #pragma warning restore 1591 + #pragma warning restore 1591 /// DSN feature set is supported DSN = 0x0200, /// Accessible Max Address Configuration is supported @@ -291,6 +326,10 @@ public static class Identify DT1825 = 0x0001 } +#endregion + +#region CommandSetBit5 enum + /// Yet again more command set flag bits. [Flags] public enum CommandSetBit5 : ushort @@ -329,21 +368,39 @@ public static class Identify ZonedBit0 = 0x0001 } +#endregion + +#region DataSetMgmtBit enum + /// Data set management flag bits. [Flags] public enum DataSetMgmtBit : ushort { - #pragma warning disable 1591 - Reserved15 = 0x8000, Reserved14 = 0x4000, Reserved13 = 0x2000, - Reserved12 = 0x1000, Reserved11 = 0x0800, Reserved10 = 0x0400, - Reserved09 = 0x0200, Reserved08 = 0x0100, Reserved07 = 0x0080, - Reserved06 = 0x0040, Reserved05 = 0x0020, Reserved04 = 0x0010, - Reserved03 = 0x0008, Reserved02 = 0x0004, Reserved01 = 0x0002, - #pragma warning restore 1591 + #pragma warning disable 1591 + Reserved15 = 0x8000, + Reserved14 = 0x4000, + Reserved13 = 0x2000, + Reserved12 = 0x1000, + Reserved11 = 0x0800, + Reserved10 = 0x0400, + Reserved09 = 0x0200, + Reserved08 = 0x0100, + Reserved07 = 0x0080, + Reserved06 = 0x0040, + Reserved05 = 0x0020, + Reserved04 = 0x0010, + Reserved03 = 0x0008, + Reserved02 = 0x0004, + Reserved01 = 0x0002, + #pragma warning restore 1591 /// TRIM is supported Trim = 0x0001 } +#endregion + +#region DeviceFormFactorEnum enum + /// Device form factor public enum DeviceFormFactorEnum : ushort { @@ -361,6 +418,10 @@ public static class Identify LessThanOnePointEight = 5 } +#endregion + +#region ExtendedIdentifyBit enum + /// Extended identify flag bits. [Flags] public enum ExtendedIdentifyBit : byte @@ -383,6 +444,10 @@ public static class Identify Words54to58Valid = 0x01 } +#endregion + +#region GeneralConfigurationBit enum + /// General configuration flag bits. [Flags] public enum GeneralConfigurationBit : ushort @@ -423,14 +488,20 @@ public static class Identify Reserved = 0x0001 } +#endregion + +#region MajorVersionBit enum + /// Word 80 Major version [Flags] public enum MajorVersionBit : ushort { - #pragma warning disable 1591 - Reserved15 = 0x8000, Reserved14 = 0x4000, Reserved13 = 0x2000, + #pragma warning disable 1591 + Reserved15 = 0x8000, + Reserved14 = 0x4000, + Reserved13 = 0x2000, Reserved12 = 0x1000, - #pragma warning restore 1591 + #pragma warning restore 1591 /// ACS-4 ACS4 = 0x0800, /// ACS-3 @@ -453,11 +524,15 @@ public static class Identify Ata2 = 0x0004, /// ATA-1 Ata1 = 0x0002, - #pragma warning disable 1591 + #pragma warning disable 1591 Reserved00 = 0x0001 - #pragma warning restore 1591 + #pragma warning restore 1591 } +#endregion + +#region SATACapabilitiesBit enum + /// SATA capabilities flags [Flags] public enum SATACapabilitiesBit : ushort @@ -478,10 +553,12 @@ public static class Identify PowerReceipt = 0x0200, /// Supports NCQ NCQ = 0x0100, - #pragma warning disable 1591 - Reserved07 = 0x0080, Reserved06 = 0x0040, Reserved05 = 0x0020, + #pragma warning disable 1591 + Reserved07 = 0x0080, + Reserved06 = 0x0040, + Reserved05 = 0x0020, Reserved04 = 0x0010, - #pragma warning restore 1591 + #pragma warning restore 1591 /// Supports SATA Gen. 3 Signaling Speed (6.0Gb/s) Gen3Speed = 0x0008, /// Supports SATA Gen. 2 Signaling Speed (3.0Gb/s) @@ -492,15 +569,25 @@ public static class Identify Clear = 0x0001 } +#endregion + +#region SATACapabilitiesBit2 enum + /// More SATA capabilities flags [Flags] public enum SATACapabilitiesBit2 : ushort { - #pragma warning disable 1591 - Reserved15 = 0x8000, Reserved14 = 0x4000, Reserved13 = 0x2000, - Reserved12 = 0x1000, Reserved11 = 0x0800, Reserved10 = 0x0400, - Reserved09 = 0x0200, Reserved08 = 0x0100, Reserved07 = 0x0080, - #pragma warning restore 1591 + #pragma warning disable 1591 + Reserved15 = 0x8000, + Reserved14 = 0x4000, + Reserved13 = 0x2000, + Reserved12 = 0x1000, + Reserved11 = 0x0800, + Reserved10 = 0x0400, + Reserved09 = 0x0200, + Reserved08 = 0x0100, + Reserved07 = 0x0080, + #pragma warning restore 1591 /// Supports RECEIVE FPDMA QUEUED and SEND FPDMA QUEUED FPDMAQ = 0x0040, /// Supports NCQ Queue Management @@ -521,15 +608,24 @@ public static class Identify Clear = 0x0001 } +#endregion + +#region SATAFeaturesBit enum + /// SATA features flags [Flags] public enum SATAFeaturesBit : ushort { - #pragma warning disable 1591 - Reserved15 = 0x8000, Reserved14 = 0x4000, Reserved13 = 0x2000, - Reserved12 = 0x1000, Reserved11 = 0x0800, Reserved10 = 0x0400, - Reserved09 = 0x0200, Reserved08 = 0x0100, - #pragma warning restore 1591 + #pragma warning disable 1591 + Reserved15 = 0x8000, + Reserved14 = 0x4000, + Reserved13 = 0x2000, + Reserved12 = 0x1000, + Reserved11 = 0x0800, + Reserved10 = 0x0400, + Reserved09 = 0x0200, + Reserved08 = 0x0100, + #pragma warning restore 1591 /// Supports NCQ autosense NCQAutoSense = 0x0080, /// Automatic Partial to Slumber transitions are enabled @@ -552,16 +648,26 @@ public static class Identify Clear = 0x0001 } +#endregion + +#region SCTCommandTransportBit enum + /// SCT Command Transport flags [Flags] public enum SCTCommandTransportBit : ushort { - #pragma warning disable 1591 - Vendor15 = 0x8000, Vendor14 = 0x4000, Vendor13 = 0x2000, - Vendor12 = 0x1000, Reserved11 = 0x0800, Reserved10 = 0x0400, - Reserved09 = 0x0200, Reserved08 = 0x0100, Reserved07 = 0x0080, + #pragma warning disable 1591 + Vendor15 = 0x8000, + Vendor14 = 0x4000, + Vendor13 = 0x2000, + Vendor12 = 0x1000, + Reserved11 = 0x0800, + Reserved10 = 0x0400, + Reserved09 = 0x0200, + Reserved08 = 0x0100, + Reserved07 = 0x0080, Reserved06 = 0x0040, - #pragma warning restore 1591 + #pragma warning restore 1591 /// SCT Command Transport Data Tables supported DataTables = 0x0020, /// SCT Command Transport Features Control supported @@ -576,20 +682,29 @@ public static class Identify Supported = 0x0001 } +#endregion + +#region SecurityStatusBit enum + /// Security status flag bits. [Flags] public enum SecurityStatusBit : ushort { - #pragma warning disable 1591 - Reserved15 = 0x8000, Reserved14 = 0x4000, Reserved13 = 0x2000, - Reserved12 = 0x1000, Reserved11 = 0x0800, Reserved10 = 0x0400, + #pragma warning disable 1591 + Reserved15 = 0x8000, + Reserved14 = 0x4000, + Reserved13 = 0x2000, + Reserved12 = 0x1000, + Reserved11 = 0x0800, + Reserved10 = 0x0400, Reserved09 = 0x0200, - #pragma warning restore 1591 + #pragma warning restore 1591 /// Maximum security level Maximum = 0x0100, - #pragma warning disable 1591 - Reserved07 = 0x0080, Reserved06 = 0x0040, - #pragma warning restore 1591 + #pragma warning disable 1591 + Reserved07 = 0x0080, + Reserved06 = 0x0040, + #pragma warning restore 1591 /// Supports enhanced security erase Enhanced = 0x0020, /// Security count expired @@ -604,6 +719,10 @@ public static class Identify Supported = 0x0001 } +#endregion + +#region SpecificConfigurationEnum enum + /// Specific configuration flags public enum SpecificConfigurationEnum : ushort { @@ -617,17 +736,30 @@ public static class Identify NotRequiresSetCompleteResponse = 0xC837 } +#endregion + +#region TransferMode enum + /// Transfer mode flags [Flags] public enum TransferMode : byte { - #pragma warning disable 1591 - Mode7 = 0x80, Mode6 = 0x40, Mode5 = 0x20, - Mode4 = 0x10, Mode3 = 0x08, Mode2 = 0x04, - Mode1 = 0x02, Mode0 = 0x01 - #pragma warning restore 1591 + #pragma warning disable 1591 + Mode7 = 0x80, + Mode6 = 0x40, + Mode5 = 0x20, + Mode4 = 0x10, + Mode3 = 0x08, + Mode2 = 0x04, + Mode1 = 0x02, + Mode0 = 0x01 + #pragma warning restore 1591 } +#endregion + +#region TrustedComputingBit enum + /// Trusted Computing flags [Flags] public enum TrustedComputingBit : ushort @@ -636,17 +768,158 @@ public static class Identify Clear = 0x8000, /// MUST be set Set = 0x4000, - #pragma warning disable 1591 - Reserved13 = 0x2000, Reserved12 = 0x1000, Reserved11 = 0x0800, - Reserved10 = 0x0400, Reserved09 = 0x0200, Reserved08 = 0x0100, - Reserved07 = 0x0080, Reserved06 = 0x0040, Reserved05 = 0x0020, - Reserved04 = 0x0010, Reserved03 = 0x0008, Reserved02 = 0x0004, + #pragma warning disable 1591 + Reserved13 = 0x2000, + Reserved12 = 0x1000, + Reserved11 = 0x0800, + Reserved10 = 0x0400, + Reserved09 = 0x0200, + Reserved08 = 0x0100, + Reserved07 = 0x0080, + Reserved06 = 0x0040, + Reserved05 = 0x0020, + Reserved04 = 0x0010, + Reserved03 = 0x0008, + Reserved02 = 0x0004, Reserved01 = 0x0002, - #pragma warning restore 1591 + #pragma warning restore 1591 /// Trusted Computing feature set is supported TrustedComputing = 0x0001 } +#endregion + + const string MODULE_NAME = "ATA/ATAPI IDENTIFY decoder"; + + /// Decodes a raw IDENTIFY DEVICE response + /// Raw IDENTIFY DEVICE response + /// Decoded IDENTIFY DEVICE + public static IdentifyDevice? Decode(byte[] IdentifyDeviceResponse) + { + if(IdentifyDeviceResponse == null) + return null; + + if(IdentifyDeviceResponse.Length != 512) + { + AaruConsole.DebugWriteLine(MODULE_NAME, + Localization.IDENTIFY_response_is_different_than_512_bytes_not_decoding); + + return null; + } + + IdentifyDevice ATAID = Marshal.ByteArrayToStructureLittleEndian(IdentifyDeviceResponse); + + ATAID.WWN = DescrambleWWN(ATAID.WWN); + ATAID.WWNExtension = DescrambleWWN(ATAID.WWNExtension); + + ATAID.SerialNumber = DescrambleATAString(IdentifyDeviceResponse, 10 * 2, 20); + ATAID.FirmwareRevision = DescrambleATAString(IdentifyDeviceResponse, 23 * 2, 8); + ATAID.Model = DescrambleATAString(IdentifyDeviceResponse, 27 * 2, 40); + ATAID.AdditionalPID = DescrambleATAString(IdentifyDeviceResponse, 170 * 2, 8); + ATAID.MediaSerial = DescrambleATAString(IdentifyDeviceResponse, 176 * 2, 40); + ATAID.MediaManufacturer = DescrambleATAString(IdentifyDeviceResponse, 196 * 2, 20); + + return ATAID; + } + + /// Encodes a raw IDENTIFY DEVICE response + /// Decoded IDENTIFY DEVICE + /// Raw IDENTIFY DEVICE response + public static byte[] Encode(IdentifyDevice? identify) + { + if(identify is null) + return null; + + IdentifyDevice ataId = identify.Value; + + ataId.WWN = DescrambleWWN(ataId.WWN); + ataId.WWNExtension = DescrambleWWN(ataId.WWNExtension); + + var buf = new byte[512]; + nint ptr = System.Runtime.InteropServices.Marshal.AllocHGlobal(512); + System.Runtime.InteropServices.Marshal.StructureToPtr(ataId, ptr, false); + System.Runtime.InteropServices.Marshal.Copy(ptr, buf, 0, 512); + System.Runtime.InteropServices.Marshal.FreeHGlobal(ptr); + + byte[] str = ScrambleATAString(ataId.SerialNumber, 20); + Array.Copy(str, 0, buf, 10 * 2, 20); + str = ScrambleATAString(ataId.FirmwareRevision, 8); + Array.Copy(str, 0, buf, 23 * 2, 8); + str = ScrambleATAString(ataId.Model, 40); + Array.Copy(str, 0, buf, 27 * 2, 40); + str = ScrambleATAString(ataId.AdditionalPID, 8); + Array.Copy(str, 0, buf, 170 * 2, 8); + str = ScrambleATAString(ataId.MediaSerial, 40); + Array.Copy(str, 0, buf, 176 * 2, 40); + str = ScrambleATAString(ataId.MediaManufacturer, 20); + Array.Copy(str, 0, buf, 196 * 2, 20); + + return buf; + } + + static ulong DescrambleWWN(ulong WWN) + { + byte[] qwb = BitConverter.GetBytes(WWN); + var qword = new byte[8]; + + qword[7] = qwb[1]; + qword[6] = qwb[0]; + qword[5] = qwb[3]; + qword[4] = qwb[2]; + qword[3] = qwb[5]; + qword[2] = qwb[4]; + qword[1] = qwb[7]; + qword[0] = qwb[6]; + + return BitConverter.ToUInt64(qword, 0); + } + + static string DescrambleATAString(IList buffer, int offset, int length) + { + byte[] outbuf = buffer[offset + length - 1] != 0x00 ? new byte[length + 1] : new byte[length]; + + for(var i = 0; i < length; i += 2) + { + outbuf[i] = buffer[offset + i + 1]; + outbuf[i + 1] = buffer[offset + i]; + } + + string outStr = StringHandlers.CToString(outbuf); + + return outStr.Trim(); + } + + static byte[] ScrambleATAString(string str, int length) + { + var buf = new byte[length]; + + for(var i = 0; i < length; i++) + buf[i] = 0x20; + + if(str is null) + return buf; + + byte[] bytes = Encoding.ASCII.GetBytes(str); + + if(bytes.Length % 2 != 0) + { + var tmp = new byte[bytes.Length + 1]; + tmp[^1] = 0x20; + Array.Copy(bytes, 0, tmp, 0, bytes.Length); + bytes = tmp; + } + + for(var i = 0; i < bytes.Length; i += 2) + { + buf[i] = bytes[i + 1]; + buf[i + 1] = bytes[i]; + } + + return buf; + } + +#region Nested type: IdentifyDevice + /// IDENTIFY DEVICE decoded response [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 2)] public struct IdentifyDevice @@ -999,130 +1272,5 @@ public static class Identify public byte Checksum; } - /// Decodes a raw IDENTIFY DEVICE response - /// Raw IDENTIFY DEVICE response - /// Decoded IDENTIFY DEVICE - public static IdentifyDevice? Decode(byte[] IdentifyDeviceResponse) - { - if(IdentifyDeviceResponse == null) - return null; - - if(IdentifyDeviceResponse.Length != 512) - { - AaruConsole.DebugWriteLine(MODULE_NAME, - Localization.IDENTIFY_response_is_different_than_512_bytes_not_decoding); - - return null; - } - - IdentifyDevice ATAID = Marshal.ByteArrayToStructureLittleEndian(IdentifyDeviceResponse); - - ATAID.WWN = DescrambleWWN(ATAID.WWN); - ATAID.WWNExtension = DescrambleWWN(ATAID.WWNExtension); - - ATAID.SerialNumber = DescrambleATAString(IdentifyDeviceResponse, 10 * 2, 20); - ATAID.FirmwareRevision = DescrambleATAString(IdentifyDeviceResponse, 23 * 2, 8); - ATAID.Model = DescrambleATAString(IdentifyDeviceResponse, 27 * 2, 40); - ATAID.AdditionalPID = DescrambleATAString(IdentifyDeviceResponse, 170 * 2, 8); - ATAID.MediaSerial = DescrambleATAString(IdentifyDeviceResponse, 176 * 2, 40); - ATAID.MediaManufacturer = DescrambleATAString(IdentifyDeviceResponse, 196 * 2, 20); - - return ATAID; - } - - /// Encodes a raw IDENTIFY DEVICE response - /// Decoded IDENTIFY DEVICE - /// Raw IDENTIFY DEVICE response - public static byte[] Encode(IdentifyDevice? identify) - { - if(identify is null) - return null; - - IdentifyDevice ataId = identify.Value; - - ataId.WWN = DescrambleWWN(ataId.WWN); - ataId.WWNExtension = DescrambleWWN(ataId.WWNExtension); - - byte[] buf = new byte[512]; - nint ptr = System.Runtime.InteropServices.Marshal.AllocHGlobal(512); - System.Runtime.InteropServices.Marshal.StructureToPtr(ataId, ptr, false); - System.Runtime.InteropServices.Marshal.Copy(ptr, buf, 0, 512); - System.Runtime.InteropServices.Marshal.FreeHGlobal(ptr); - - byte[] str = ScrambleATAString(ataId.SerialNumber, 20); - Array.Copy(str, 0, buf, 10 * 2, 20); - str = ScrambleATAString(ataId.FirmwareRevision, 8); - Array.Copy(str, 0, buf, 23 * 2, 8); - str = ScrambleATAString(ataId.Model, 40); - Array.Copy(str, 0, buf, 27 * 2, 40); - str = ScrambleATAString(ataId.AdditionalPID, 8); - Array.Copy(str, 0, buf, 170 * 2, 8); - str = ScrambleATAString(ataId.MediaSerial, 40); - Array.Copy(str, 0, buf, 176 * 2, 40); - str = ScrambleATAString(ataId.MediaManufacturer, 20); - Array.Copy(str, 0, buf, 196 * 2, 20); - - return buf; - } - - static ulong DescrambleWWN(ulong WWN) - { - byte[] qwb = BitConverter.GetBytes(WWN); - byte[] qword = new byte[8]; - - qword[7] = qwb[1]; - qword[6] = qwb[0]; - qword[5] = qwb[3]; - qword[4] = qwb[2]; - qword[3] = qwb[5]; - qword[2] = qwb[4]; - qword[1] = qwb[7]; - qword[0] = qwb[6]; - - return BitConverter.ToUInt64(qword, 0); - } - - static string DescrambleATAString(IList buffer, int offset, int length) - { - byte[] outbuf = buffer[offset + length - 1] != 0x00 ? new byte[length + 1] : new byte[length]; - - for(int i = 0; i < length; i += 2) - { - outbuf[i] = buffer[offset + i + 1]; - outbuf[i + 1] = buffer[offset + i]; - } - - string outStr = StringHandlers.CToString(outbuf); - - return outStr.Trim(); - } - - static byte[] ScrambleATAString(string str, int length) - { - byte[] buf = new byte[length]; - - for(int i = 0; i < length; i++) - buf[i] = 0x20; - - if(str is null) - return buf; - - byte[] bytes = Encoding.ASCII.GetBytes(str); - - if(bytes.Length % 2 != 0) - { - byte[] tmp = new byte[bytes.Length + 1]; - tmp[^1] = 0x20; - Array.Copy(bytes, 0, tmp, 0, bytes.Length); - bytes = tmp; - } - - for(int i = 0; i < bytes.Length; i += 2) - { - buf[i] = bytes[i + 1]; - buf[i + 1] = bytes[i]; - } - - return buf; - } +#endregion } \ No newline at end of file diff --git a/Structs/Devices/SCSI/Inquiry.cs b/Structs/Devices/SCSI/Inquiry.cs index bcf46de..926aa54 100644 --- a/Structs/Devices/SCSI/Inquiry.cs +++ b/Structs/Devices/SCSI/Inquiry.cs @@ -47,8 +47,9 @@ namespace Aaru.CommonTypes.Structs.Devices.SCSI; /// Information from the following standards: T9/375-D revision 10l T10/995-D revision 10 T10/1236-D revision 20 /// T10/1416-D revision 23 T10/1731-D revision 16 T10/502 revision 05 RFC 7144 ECMA-111 /// -[SuppressMessage("ReSharper", "InconsistentNaming"), SuppressMessage("ReSharper", "MemberCanBeInternal"), - SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] +[SuppressMessage("ReSharper", "InconsistentNaming")] +[SuppressMessage("ReSharper", "MemberCanBeInternal")] +[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] public struct Inquiry { const string MODULE_NAME = "SCSI INQUIRY decoder"; @@ -149,7 +150,8 @@ public struct Inquiry // Per DLT4000/DLT4500/DLT4700 Cartridge Tape Subsystem Product Manual - #region Quantum vendor unique inquiry data structure +#region Quantum vendor unique inquiry data structure + /// Means that the INQUIRY response contains 56 bytes or more, so this data has been filled public bool QuantumPresent; /// The product family. Byte 36, bits 7 to 5 @@ -188,9 +190,11 @@ public struct Inquiry public bool Qt_LibraryPresent; /// The module revision. Bytes 52 to 55 public byte[] Qt_ModuleRevision; - #endregion Quantum vendor unique inquiry data structure - #region IBM vendor unique inquiry data structure +#endregion Quantum vendor unique inquiry data structure + +#region IBM vendor unique inquiry data structure + /// Means that the INQUIRY response contains 56 bytes or more, so this data has been filled public bool IBMPresent; /// Drive is not capable of automation Byte 36 bit 0 @@ -199,9 +203,11 @@ public struct Inquiry public byte IBM_PerformanceLimit; /// Byte 41 public byte IBM_OEMSpecific; - #endregion IBM vendor unique inquiry data structure - #region HP vendor unique inquiry data structure +#endregion IBM vendor unique inquiry data structure + +#region HP vendor unique inquiry data structure + /// Means that the INQUIRY response contains 49 bytes or more, so this data has been filled public bool HPPresent; /// WORM version Byte 40 bits 7 to 1 @@ -210,9 +216,11 @@ public struct Inquiry public bool HP_WORM; /// Bytes 43 to 48 public byte[] HP_OBDR; - #endregion HP vendor unique inquiry data structure - #region Seagate vendor unique inquiry data structure +#endregion HP vendor unique inquiry data structure + +#region Seagate vendor unique inquiry data structure + /// Means that bytes 36 to 43 are filled public bool SeagatePresent; /// Drive Serial Number Bytes 36 to 43 @@ -225,9 +233,11 @@ public struct Inquiry public bool Seagate3Present; /// Reserved Seagate field Bytes 144 to 147 public byte[] Seagate_ServoPROMPartNo; - #endregion Seagate vendor unique inquiry data structure - #region Kreon vendor unique inquiry data structure +#endregion Seagate vendor unique inquiry data structure + +#region Kreon vendor unique inquiry data structure + /// Means that firmware is Kreon public bool KreonPresent; /// Kreon identifier Bytes 36 to 40 @@ -236,23 +246,28 @@ public struct Inquiry public byte KreonSpace; /// Kreon version string Bytes 42 to 46 public byte[] KreonVersion; - #endregion Kreon vendor unique inquiry data structure - #region Sony Hi-MD data +#endregion Kreon vendor unique inquiry data structure + +#region Sony Hi-MD data + /// Set if Hi-MD signature is present public bool IsHiMD; /// Hi-MD signature, bytes 36 to 44 public byte[] HiMDSignature; /// Unknown data, bytes 44 to 55 public byte[] HiMDSpecific; - #endregion Sony Hi-MD data + +#endregion Sony Hi-MD data static readonly byte[] HiMDSignatureContents = "Hi-MD "u8.ToArray(); /// Decodes a SCSI INQUIRY response /// INQUIRY raw response data /// Decoded SCSI INQUIRY - #region Public methods + +#region Public methods + public static Inquiry? Decode(byte[] SCSIInquiryResponse) { if(SCSIInquiryResponse == null) @@ -465,8 +480,8 @@ public struct Inquiry decoded.VersionDescriptors = new ushort[descriptorsNo]; - for(int i = 0; i < descriptorsNo; i++) - decoded.VersionDescriptors[i] = BitConverter.ToUInt16(SCSIInquiryResponse, 58 + (i * 2)); + for(var i = 0; i < descriptorsNo; i++) + decoded.VersionDescriptors[i] = BitConverter.ToUInt16(SCSIInquiryResponse, 58 + i * 2); } switch(SCSIInquiryResponse.Length) @@ -518,8 +533,8 @@ public struct Inquiry Inquiry decoded = inq.Value; - byte[] buffer = new byte[512]; - byte length = 0; + var buffer = new byte[512]; + byte length = 0; buffer[0] = (byte)(decoded.PeripheralQualifier << 5); buffer[0] += decoded.PeripheralDeviceType; @@ -682,7 +697,7 @@ public struct Inquiry Array.Copy(decoded.Seagate_DriveSerialNumber, 0, buffer, 36, 8); } - if(decoded is { KreonIdentifier: {}, KreonVersion: {} }) + if(decoded is { KreonIdentifier: not null, KreonVersion: not null }) { length = 46; Array.Copy(decoded.KreonIdentifier, 0, buffer, 36, 5); @@ -712,7 +727,7 @@ public struct Inquiry Array.Copy(decoded.HiMDSpecific, 0, buffer, 44, 12); } - if(decoded is { VendorSpecific: {}, IsHiMD: false }) + if(decoded is { VendorSpecific: not null, IsHiMD: false }) { length = 56; Array.Copy(decoded.VendorSpecific, 0, buffer, 36, 20); @@ -742,10 +757,10 @@ public struct Inquiry if(decoded.VersionDescriptors != null) { - length = (byte)(58 + (decoded.VersionDescriptors.Length * 2)); + length = (byte)(58 + decoded.VersionDescriptors.Length * 2); - for(int i = 0; i < decoded.VersionDescriptors.Length; i++) - Array.Copy(BitConverter.GetBytes(decoded.VersionDescriptors[i]), 0, buffer, 56 + (i * 2), 2); + for(var i = 0; i < decoded.VersionDescriptors.Length; i++) + Array.Copy(BitConverter.GetBytes(decoded.VersionDescriptors[i]), 0, buffer, 56 + i * 2, 2); } if(decoded.Reserved5 != null) @@ -773,10 +788,11 @@ public struct Inquiry } buffer[4] = length; - byte[] dest = new byte[length]; + var dest = new byte[length]; Array.Copy(buffer, 0, dest, 0, length); return dest; } - #endregion Public methods + +#endregion Public methods } \ No newline at end of file diff --git a/Structs/Devices/SCSI/Modes/2A.cs b/Structs/Devices/SCSI/Modes/2A.cs index 83a6da4..092d850 100644 --- a/Structs/Devices/SCSI/Modes/2A.cs +++ b/Structs/Devices/SCSI/Modes/2A.cs @@ -38,89 +38,128 @@ using System.Text.Json.Serialization; namespace Aaru.CommonTypes.Structs.Devices.SCSI.Modes; #region Mode Page 0x2A: CD-ROM capabilities page + /// /// CD-ROM capabilities page Page code 0x2A 16 bytes in OB-U0077C 20 bytes in SFF-8020i 22 bytes in MMC-1 26 bytes /// in MMC-2 Variable bytes in MMC-3 /// -[SuppressMessage("ReSharper", "InconsistentNaming"), SuppressMessage("ReSharper", "MemberCanBeInternal"), - SuppressMessage("ReSharper", "MemberCanBePrivate.Global"), SuppressMessage("ReSharper", "NotAccessedField.Global")] +[SuppressMessage("ReSharper", "InconsistentNaming")] +[SuppressMessage("ReSharper", "MemberCanBeInternal")] +[SuppressMessage("ReSharper", "MemberCanBePrivate.Global")] +[SuppressMessage("ReSharper", "NotAccessedField.Global")] public class ModePage_2A { /// Write speed performance descriptors public ModePage_2A_WriteDescriptor[] WriteSpeedPerformanceDescriptors; + /// Parameters can be saved public bool PS { get; set; } + /// Drive supports multi-session and/or Photo-CD public bool MultiSession { get; set; } + /// Drive is capable of reading sectors in Mode 2 Form 2 format public bool Mode2Form2 { get; set; } + /// Drive is capable of reading sectors in Mode 2 Form 1 format public bool Mode2Form1 { get; set; } + /// Drive is capable of playing audio public bool AudioPlay { get; set; } + /// Drive can return the ISRC public bool ISRC { get; set; } + /// Drive can return the media catalogue number public bool UPC { get; set; } + /// Drive can return C2 pointers public bool C2Pointer { get; set; } + /// Drive can read, deinterlave and correct R-W subchannels public bool DeinterlaveSubchannel { get; set; } + /// Drive can read interleaved and uncorrected R-W subchannels public bool Subchannel { get; set; } + /// Drive can continue from a loss of streaming on audio reading public bool AccurateCDDA { get; set; } + /// Audio can be read as digital data public bool CDDACommand { get; set; } + /// Loading Mechanism Type public byte LoadingMechanism { get; set; } + /// Drive can eject discs public bool Eject { get; set; } + /// Drive's optional prevent jumper status public bool PreventJumper { get; set; } + /// Current lock status public bool LockState { get; set; } + /// Drive can lock media public bool Lock { get; set; } + /// Each channel can be muted independently public bool SeparateChannelMute { get; set; } + /// Each channel's volume can be controlled independently public bool SeparateChannelVolume { get; set; } + /// Maximum drive speed in Kbytes/second public ushort MaximumSpeed { get; set; } + /// Supported volume levels public ushort SupportedVolumeLevels { get; set; } + /// Buffer size in Kbytes public ushort BufferSize { get; set; } + /// Current drive speed in Kbytes/second public ushort CurrentSpeed { get; set; } /// Can read packet media public bool Method2 { get; set; } + /// Can read CD-RW public bool ReadCDRW { get; set; } + /// Can read CD-R public bool ReadCDR { get; set; } + /// Can write CD-RW public bool WriteCDRW { get; set; } + /// Can write CD-R public bool WriteCDR { get; set; } + /// Supports IEC-958 digital output on port 2 public bool DigitalPort2 { get; set; } + /// Supports IEC-958 digital output on port 1 public bool DigitalPort1 { get; set; } + /// Can deliver a composite audio and video data stream public bool Composite { get; set; } + /// This bit controls the behavior of the LOAD/UNLOAD command when trying to load a Slot with no Disc present public bool SSS { get; set; } + /// Contains a changer that can report the exact contents of the slots public bool SDP { get; set; } + /// Page length public byte Length { get; set; } + /// Set if LSB comes first public bool LSBF { get; set; } + /// Set if HIGH on LRCK indicates left channel. Clear if HIGH on LRCK indicates right channel. public bool RCK { get; set; } + /// /// Set if data valid on the falling edge of the BCK signal. Clear if data valid on the rising edge of the BCK /// signal @@ -129,37 +168,52 @@ public class ModePage_2A /// Can do a test write public bool TestWrite { get; set; } + /// Maximum write speed public ushort MaxWriteSpeed { get; set; } + /// Current write speed public ushort CurrentWriteSpeed { get; set; } + /// Can read disc's barcode public bool ReadBarcode { get; set; } + /// Can read DVD-RAM public bool ReadDVDRAM { get; set; } + /// Can read DVD-R public bool ReadDVDR { get; set; } + /// Can read DVD-ROM public bool ReadDVDROM { get; set; } + /// Can write DVD-RAM public bool WriteDVDRAM { get; set; } + /// Can write DVD-R public bool WriteDVDR { get; set; } + /// Can read raw R-W subchannel from the Lead-In public bool LeadInPW { get; set; } + /// Can read both sides of a disc public bool SCC { get; set; } + /// Support copyright management public ushort CMRSupported { get; set; } + /// Supports buffer under-run free recording public bool BUF { get; set; } + /// Selected rotational control public byte RotationControlSelected { get; set; } + /// Current write speed selected public ushort CurrentWriteSpeedSelected { get; set; } /// Database ID - [JsonIgnore, Key] + [JsonIgnore] + [Key] public int Id { get; set; } /// Decodes the page 2Ah of a MODE SENSE response @@ -263,15 +317,17 @@ public class ModePage_2A decoded.RotationControlSelected = (byte)(pageResponse[27] & 0x03); decoded.CurrentWriteSpeedSelected = (ushort)((pageResponse[28] << 8) + pageResponse[29]); - ushort descriptors = (ushort)((pageResponse.Length - 32) / 4); + var descriptors = (ushort)((pageResponse.Length - 32) / 4); decoded.WriteSpeedPerformanceDescriptors = new ModePage_2A_WriteDescriptor[descriptors]; - for(int i = 0; i < descriptors; i++) + for(var i = 0; i < descriptors; i++) + { decoded.WriteSpeedPerformanceDescriptors[i] = new ModePage_2A_WriteDescriptor { - RotationControl = (byte)(pageResponse[1 + 32 + (i * 4)] & 0x07), - WriteSpeed = (ushort)((pageResponse[2 + 32 + (i * 4)] << 8) + pageResponse[3 + 32 + (i * 4)]) + RotationControl = (byte)(pageResponse[1 + 32 + i * 4] & 0x07), + WriteSpeed = (ushort)((pageResponse[2 + 32 + i * 4] << 8) + pageResponse[3 + 32 + i * 4]) }; + } return decoded; } @@ -281,8 +337,8 @@ public class ModePage_2A /// Raw page 2Ah public static byte[] Encode(ModePage_2A decoded) { - byte[] pageResponse = new byte[512]; - byte length = 16; + var pageResponse = new byte[512]; + byte length = 16; pageResponse[0] = 0x2A; @@ -480,20 +536,20 @@ public class ModePage_2A { length = 32; - for(int i = 0; i < decoded.WriteSpeedPerformanceDescriptors.Length; i++) + for(var i = 0; i < decoded.WriteSpeedPerformanceDescriptors.Length; i++) { - length += 4; - pageResponse[1 + 32 + (i * 4)] = decoded.WriteSpeedPerformanceDescriptors[i].RotationControl; + length += 4; + pageResponse[1 + 32 + i * 4] = decoded.WriteSpeedPerformanceDescriptors[i].RotationControl; - pageResponse[2 + 32 + (i * 4)] = + pageResponse[2 + 32 + i * 4] = (byte)((decoded.WriteSpeedPerformanceDescriptors[i].WriteSpeed & 0xFF00) >> 8); - pageResponse[3 + 32 + (i * 4)] = (byte)(decoded.WriteSpeedPerformanceDescriptors[i].WriteSpeed & 0xFF); + pageResponse[3 + 32 + i * 4] = (byte)(decoded.WriteSpeedPerformanceDescriptors[i].WriteSpeed & 0xFF); } } pageResponse[1] = (byte)(length - 2); - byte[] buf = new byte[length]; + var buf = new byte[length]; Array.Copy(pageResponse, 0, buf, 0, length); return buf; @@ -509,4 +565,5 @@ public struct ModePage_2A_WriteDescriptor /// Write speed public ushort WriteSpeed; } + #endregion Mode Page 0x2A: CD-ROM capabilities page \ No newline at end of file diff --git a/Structs/Filesystems.cs b/Structs/Filesystems.cs index 9c1a4cf..9f9f08c 100644 --- a/Structs/Filesystems.cs +++ b/Structs/Filesystems.cs @@ -156,32 +156,46 @@ public class FileEntryInfo { /// File attributes public FileAttributes Attributes { get; set; } + /// File length in blocks public long Blocks { get; set; } + /// File block size in bytes public long BlockSize { get; set; } + /// If file points to a device, device number. Null if the underlying filesystem does not support them. public ulong? DeviceNo { get; set; } + /// POSIX group ID. Null if the underlying filesystem does not support them. public ulong? GID { get; set; } + /// inode number for this file (or other unique identifier for the volume) public ulong Inode { get; set; } + /// File length in bytes public long Length { get; set; } + /// Number of hard links pointing to this file (. and .. entries count as hard links) public ulong Links { get; set; } + /// POSIX permissions/mode for this file. Null if the underlying filesystem does not support them. public uint? Mode { get; set; } + /// POSIX owner ID. Null if the underlying filesystem does not support them. public ulong? UID { get; set; } + /// File creation date in UTC. Null if the underlying filesystem does not support them. public DateTime? CreationTimeUtc { get; set; } + /// File last access date in UTC. Null if the underlying filesystem does not support them. public DateTime? AccessTimeUtc { get; set; } + /// File attributes change date in UTC. Null if the underlying filesystem does not support them. public DateTime? StatusChangeTimeUtc { get; set; } + /// File last backup date in UTC. Null if the underlying filesystem does not support them. public DateTime? BackupTimeUtc { get; set; } + /// File last modification date in UTC. Null if the underlying filesystem does not support them. public DateTime? LastWriteTimeUtc { get; set; } diff --git a/Structs/Images.cs b/Structs/Images.cs index 3ae64c0..63704d0 100644 --- a/Structs/Images.cs +++ b/Structs/Images.cs @@ -202,21 +202,28 @@ public struct LinearMemoryDevice { /// Device manufacturer public string Manufacturer { get; set; } + /// Device model public string Model { get; set; } + /// Device package, e.g. DIP28 public string Package { get; set; } + /// Device location marking in PCB, e.g. U28 public string Location { get; set; } + /// Device functional type public LinearMemoryType Type { get; set; } + /// Arbitrary device information public string Description { get; set; } + /// /// Physical addressing is the address considering all devices in the linear memory media, starting at the lowest /// marking in PCB and going up incrementally. This is the view of the memory inside Aaru. /// public LinearMemoryAddressing PhysicalAddress { get; set; } + /// /// Virtual addressing is the address as seen by the hardware directly accessing the linear memory media. This /// allows devices to be overlapped or banked. @@ -229,8 +236,10 @@ public class LinearMemoryAddressing { /// Start in memory where the device is mapped public ulong Start { get; set; } + /// Length in bytes of the device, not including interleaving public ulong Length { get; set; } + /// Interleaving information public LinearMemoryInterleave Interleave { get; set; } } @@ -240,6 +249,7 @@ public class LinearMemoryInterleave { /// How many bytes to skip from start of map before device first byte starts public uint Offset { get; set; } + /// How many bytes in memory to skip every device byte public uint Value { get; set; } } \ No newline at end of file