| 11 | #include "ziq2.h" |
| 12 | |
| 13 | HeaderInfo try_parse_header(std::string file) |
| 14 | { |
| 15 | HeaderInfo info; |
| 16 | |
| 17 | if (wav::isValidWav(wav::parseHeaderFromFileWav(file))) |
| 18 | { |
| 19 | logger->debug("File is wav!"); |
| 20 | wav::WavHeader wav_header = wav::parseHeaderFromFileWav(file); |
| 21 | info.samplerate = wav_header.samplerate; |
| 22 | info.valid = true; |
| 23 | if (wav_header.bits_per_sample == 8 && wav_header.audio_Format == 1) |
| 24 | info.type = "cu8"; |
| 25 | else if (wav_header.bits_per_sample == 16 && wav_header.audio_Format == 1) |
| 26 | info.type = "cs16"; |
| 27 | else if (wav_header.bits_per_sample == 32 && wav_header.audio_Format == 1) |
| 28 | info.type = "cs32"; |
| 29 | else if (wav_header.bits_per_sample == 32 && wav_header.audio_Format == 3) |
| 30 | info.type = "cf32"; |
| 31 | else |
| 32 | { |
| 33 | info.valid = false; |
| 34 | logger->warn("Unsupported WAV format! Bits per sample: %hu, Format: %hu", |
| 35 | wav_header.bits_per_sample, wav_header.audio_Format); |
| 36 | } |
| 37 | } |
| 38 | else if (wav::isValidRF64(wav::parseHeaderFromFileWav(file))) |
| 39 | { |
| 40 | wav::RF64Header rf64_header = wav::parseHeaderFromFileRF64(file); |
| 41 | logger->debug("File is RF64!"); |
| 42 | info.samplerate = rf64_header.samplerate; |
| 43 | info.valid = true; |
| 44 | if (rf64_header.bits_per_sample == 8 && rf64_header.audio_Format == 1) |
| 45 | info.type = "cu8"; |
| 46 | else if (rf64_header.bits_per_sample == 16 && rf64_header.audio_Format == 1) |
| 47 | info.type = "cs16"; |
| 48 | else if (rf64_header.bits_per_sample == 32 && rf64_header.audio_Format == 1) |
| 49 | info.type = "cs32"; |
| 50 | else if (rf64_header.bits_per_sample == 32 && rf64_header.audio_Format == 3) |
| 51 | info.type = "cf32"; |
| 52 | else |
| 53 | { |
| 54 | info.valid = false; |
| 55 | logger->warn("Unsupported RF64 format! Bits per sample: %hu, Format: %hu", |
| 56 | rf64_header.bits_per_sample, rf64_header.audio_Format); |
| 57 | } |
| 58 | } |
| 59 | #ifdef BUILD_ZIQ |
| 60 | else if (ziq::isValidZIQ(file)) |
| 61 | { |
| 62 | logger->debug("File is ZIQ!"); |
| 63 | info.type = "ziq"; |
| 64 | info.valid = true; |
| 65 | info.samplerate = ziq::getCfgFromFile(file).samplerate; |
| 66 | } |
| 67 | #endif |
| 68 | #ifdef BUILD_ZIQ2 |
| 69 | else if (ziq2::ziq2_is_valid_ziq2(file)) |
| 70 | { |
no test coverage detected