Extract WAVE format parsing into its own function
This commit is contained in:
parent
33c542f2e8
commit
5f293cdd33
|
@ -33,10 +33,9 @@ namespace Codec {
|
||||||
|
|
||||||
string codecToString(int codec);
|
string codecToString(int codec);
|
||||||
|
|
||||||
WaveFileReader::WaveFileReader(const path& filePath) :
|
WaveFormatInfo getWaveFormatInfo(const path& filePath) {
|
||||||
filePath(filePath),
|
WaveFormatInfo formatInfo {};
|
||||||
formatInfo {}
|
|
||||||
{
|
|
||||||
auto file = openFile(filePath);
|
auto file = openFile(filePath);
|
||||||
|
|
||||||
file.seekg(0, std::ios_base::end);
|
file.seekg(0, std::ios_base::end);
|
||||||
|
@ -139,8 +138,14 @@ WaveFileReader::WaveFileReader(const path& filePath) :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return formatInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WaveFileReader::WaveFileReader(const path& filePath) :
|
||||||
|
filePath(filePath),
|
||||||
|
formatInfo(getWaveFormatInfo(filePath)) {}
|
||||||
|
|
||||||
unique_ptr<AudioClip> WaveFileReader::clone() const {
|
unique_ptr<AudioClip> WaveFileReader::clone() const {
|
||||||
return make_unique<WaveFileReader>(*this);
|
return make_unique<WaveFileReader>(*this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,17 @@ enum class SampleFormat {
|
||||||
Float32
|
Float32
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct WaveFormatInfo {
|
||||||
|
int bytesPerFrame;
|
||||||
|
SampleFormat sampleFormat;
|
||||||
|
int frameRate;
|
||||||
|
int64_t frameCount;
|
||||||
|
int channelCount;
|
||||||
|
std::streampos dataOffset;
|
||||||
|
};
|
||||||
|
|
||||||
|
WaveFormatInfo getWaveFormatInfo(const std::filesystem::path& filePath);
|
||||||
|
|
||||||
class WaveFileReader : public AudioClip {
|
class WaveFileReader : public AudioClip {
|
||||||
public:
|
public:
|
||||||
WaveFileReader(const std::filesystem::path& filePath);
|
WaveFileReader(const std::filesystem::path& filePath);
|
||||||
|
@ -20,15 +31,6 @@ public:
|
||||||
private:
|
private:
|
||||||
SampleReader createUnsafeSampleReader() const override;
|
SampleReader createUnsafeSampleReader() const override;
|
||||||
|
|
||||||
struct WaveFormatInfo {
|
|
||||||
int bytesPerFrame;
|
|
||||||
SampleFormat sampleFormat;
|
|
||||||
int frameRate;
|
|
||||||
int64_t frameCount;
|
|
||||||
int channelCount;
|
|
||||||
std::streampos dataOffset;
|
|
||||||
};
|
|
||||||
|
|
||||||
std::filesystem::path filePath;
|
std::filesystem::path filePath;
|
||||||
WaveFormatInfo formatInfo;
|
WaveFormatInfo formatInfo;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue