]> FriiDump Source - friidump.git/blob - src/redump_dat.h
39919edb00286c78d626753f7660487fa8251fde
[friidump.git] / src / redump_dat.h
1 #ifndef REDUMP_DAT_H_INCLUDED
2 #define REDUMP_DAT_H_INCLUDED
3
4 #include <stddef.h>
5 #include <stdint.h>
6
7 typedef enum {
8     REDUMP_VERIFY_NOT_RUN = 0,
9     REDUMP_VERIFY_MATCH,
10     REDUMP_VERIFY_NO_MATCH,
11     REDUMP_VERIFY_DAT_NOT_FOUND,
12     REDUMP_VERIFY_DAT_READ_ERROR,
13     REDUMP_VERIFY_INVALID_INPUT
14 } redump_verify_status;
15
16 typedef enum {
17     REDUMP_FIELD_NOT_AVAILABLE = 0,
18     REDUMP_FIELD_PASS,
19     REDUMP_FIELD_FAIL
20 } redump_field_status;
21
22 typedef struct {
23     redump_verify_status status;
24     unsigned long entries_scanned;
25     unsigned long exact_matches;
26     unsigned long size_matches;
27     unsigned long crc32_matches;
28     unsigned long md5_matches;
29     unsigned long sha1_matches;
30     int candidate_available;
31     int candidate_hash_matches;
32     redump_field_status size_status;
33     redump_field_status crc32_status;
34     redump_field_status md5_status;
35     redump_field_status sha1_status;
36     char dat_path[512];
37     char game_name[512];
38     char rom_name[512];
39     char expected_size[32];
40     char expected_crc32[16];
41     char expected_md5[40];
42     char expected_sha1[48];
43     char detail[256];
44 } redump_verify_result;
45
46 void redump_verify_result_init(redump_verify_result *result);
47 const char *redump_verify_status_string(redump_verify_status status);
48 const char *redump_field_status_string(redump_field_status status);
49 const char *redump_verify_overall_string(const redump_verify_result *result);
50 const char *redump_verify_confidence_string(const redump_verify_result *result);
51 const char *redump_verify_match_kind_string(const redump_verify_result *result);
52 int redump_verify_dat_file(
53     const char *dat_path,
54     uint64_t image_size,
55     const char *crc32,
56     const char *md5,
57     const char *sha1,
58     redump_verify_result *result
59 );
60
61 #endif