#ifndef LHCOMPAREAPI_H #define LHCOMPAREAPI_H #include #include class QString; #pragma pack(1) struct CompareResult { double highest_similarity; double average_similarity; std::vector> full_offsets; std::vector> fragment_offsets; ~CompareResult() { full_offsets.clear(); fragment_offsets.clear(); } }; #pragma pack() enum ChromaprintAlgorithm { CHROMAPRINT_ALGORITHM_TEST1 = 0, CHROMAPRINT_ALGORITHM_TEST2, CHROMAPRINT_ALGORITHM_TEST3, CHROMAPRINT_ALGORITHM_TEST4, CHROMAPRINT_ALGORITHM_TEST5, CHROMAPRINT_ALGORITHM_TEST2_2, CHROMAPRINT_ALGORITHM_TEST5_2, CHROMAPRINT_ALGORITHM_DEFAULT = CHROMAPRINT_ALGORITHM_TEST5_2, }; /* 加载动态库 */ bool LoadCompareLibrary(); /* 比对函数 */ CompareResult* LHCompare(const char *source_file, const char *target_file, double compare_sensitivity, ChromaprintAlgorithm algorithm = CHROMAPRINT_ALGORITHM_TEST5_2); /* 释放结果数据 */ void LHFreeCompareResult(CompareResult* result); #endif // LHCOMPAREAPI_H