File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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
1617namespace 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 " ;
Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments