Skip to content

Commit ca6f2e7

Browse files
committed
Signed-off-by: Stavros Avramidis <stavros9899@gmail.com>
1 parent de25dae commit ca6f2e7

2 files changed

Lines changed: 20 additions & 4 deletions

File tree

main.cc

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,30 @@
88
#include <filesystem>
99
#include <iomanip>
1010
#include <iostream>
11+
#include <sstream>
12+
#include <string>
1113
#include <vector>
1214

13-
1415
#include "mqa_identifier.h"
1516

1617
namespace fs = std::filesystem;
1718

1819

20+
auto getSampleRateString(const uint32_t fs) {
21+
std::stringstream ss;
22+
if (fs <= 768000)
23+
ss << fs / 1000. << "K";
24+
else if (fs % 44100 == 0)
25+
ss << "DSD" << fs / 44100;
26+
else
27+
ss << "DSD" << fs / 48000 << "x48";
28+
29+
return ss.str();
30+
}
31+
32+
1933
/**
20-
* @short Recurivly scan a directory for .flac files
34+
* @short Recursively scan a directory for .flac files
2135
* @param curDir directory to scan
2236
* @param files vector to add the file paths
2337
*/
@@ -76,7 +90,7 @@ int main(int argc, char *argv[]) {
7690
auto id = MQA_identifier(file);
7791
if (id.detect()) {
7892
if (id.originalSampleRate())
79-
std::cout << "MQA " << id.originalSampleRate() / 1000. << "K \t";
93+
std::cout << "MQA " << getSampleRateString(id.originalSampleRate()) << "\t";
8094
else
8195
std::cout << "MQA\t\t";
8296
std::cout << fs::path(file).filename().string() << "\n";

mqa_identifier.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@ uint32_t OriginalSampleRateDecoder(unsigned c) {
3333
*/
3434
const uint32_t base = (c & 1u) ? 48000 : 44100;
3535

36-
const uint32_t multiplier = 1u << (((c >> 3u) & 1u) | (((c >> 2u) & 1u) << 1u) | (((c >> 1u) & 1u) << 2u));
36+
uint32_t multiplier = 1u << (((c >> 3u) & 1u) | (((c >> 2u) & 1u) << 1u) | (((c >> 1u) & 1u) << 2u));
37+
// Double for DSD
38+
if (multiplier > 16) multiplier *= 2;
3739

3840
return base * multiplier;
3941
}

0 commit comments

Comments
 (0)