MCPcopy Create free account
hub / github.com/SatDump/SatDump / try_parse_header

Function try_parse_header

src-core/common/detect_header.cpp:13–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#include "ziq2.h"
12
13HeaderInfo 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 {

Callers 1

Calls 6

isValidWavFunction · 0.85
parseHeaderFromFileWavFunction · 0.85
isValidRF64Function · 0.85
parseHeaderFromFileRF64Function · 0.85
debugMethod · 0.80
warnMethod · 0.80

Tested by

no test coverage detected