scanner: Initial work on PBP scanning

This commit is contained in:
Rob Loach 2024-04-07 15:45:33 -04:00
parent fee6ac3185
commit d34e303901
No known key found for this signature in database
GPG Key ID: 627C60834A74A21A
3 changed files with 12 additions and 1 deletions

View File

@ -721,6 +721,8 @@ uint32_t msg_hash_calculate(const char *s)
#define HASH_EXTENSION_ISO_UPPERCASE 0x0b87f470U #define HASH_EXTENSION_ISO_UPPERCASE 0x0b87f470U
#define HASH_EXTENSION_LUTRO 0x0fe37b7bU #define HASH_EXTENSION_LUTRO 0x0fe37b7bU
#define HASH_EXTENSION_CHD 0x0b8865d4U #define HASH_EXTENSION_CHD 0x0b8865d4U
#define HASH_EXTENSION_PBP 0x0b88b1d0U /* TODO(RobLoach): Is this the correct .pbp hash? */
#define HASH_EXTENSION_PBP_UPPERCASE 0x0b882570U /* TODO(RobLoach): Is this the correct .PBP hash? */
enum msg_file_type msg_hash_to_file_type(uint32_t hash) enum msg_file_type msg_hash_to_file_type(uint32_t hash)
{ {
@ -885,6 +887,9 @@ enum msg_file_type msg_hash_to_file_type(uint32_t hash)
return FILE_TYPE_LUTRO; return FILE_TYPE_LUTRO;
case HASH_EXTENSION_CHD: case HASH_EXTENSION_CHD:
return FILE_TYPE_CHD; return FILE_TYPE_CHD;
case HASH_EXTENSION_PBP:
case HASH_EXTENSION_PBP_UPPERCASE:
return FILE_TYPE_PBP;
default: default:
break; break;
} }
@ -934,6 +939,6 @@ const char *msg_hash_get_wideglyph_str(void)
break; break;
} }
#endif #endif
return NULL; return NULL;
} }

View File

@ -152,6 +152,7 @@ enum msg_file_type
FILE_TYPE_WBFS, FILE_TYPE_WBFS,
FILE_TYPE_RVZ, FILE_TYPE_RVZ,
FILE_TYPE_WIA, FILE_TYPE_WIA,
FILE_TYPE_PBP,
FILE_TYPE_DIRECT_LOAD, FILE_TYPE_DIRECT_LOAD,

View File

@ -578,6 +578,10 @@ static enum msg_file_type extension_to_file_type(const char *ext)
string_is_equal(ext_lower, "wia") string_is_equal(ext_lower, "wia")
) )
return FILE_TYPE_WIA; return FILE_TYPE_WIA;
if (
string_is_equal(ext_lower, "pbp")
)
return FILE_TYPE_PBP;
if ( if (
string_is_equal(ext_lower, "lutro") string_is_equal(ext_lower, "lutro")
) )
@ -627,6 +631,7 @@ static int task_database_iterate_playlist(
case FILE_TYPE_RVZ: case FILE_TYPE_RVZ:
case FILE_TYPE_WIA: case FILE_TYPE_WIA:
case FILE_TYPE_ISO: case FILE_TYPE_ISO:
case FILE_TYPE_PBP:
db_state->serial[0] = '\0'; db_state->serial[0] = '\0';
intfstream_file_get_serial(name, 0, SIZE_MAX, db_state->serial, sizeof(db_state->serial)); intfstream_file_get_serial(name, 0, SIZE_MAX, db_state->serial, sizeof(db_state->serial));
db->type = DATABASE_TYPE_SERIAL_LOOKUP; db->type = DATABASE_TYPE_SERIAL_LOOKUP;