diff --git a/CppDataProcess/Wav.hpp b/CppDataProcess/Wav.hpp deleted file mode 100644 index c633366..0000000 --- a/CppDataProcess/Wav.hpp +++ /dev/null @@ -1,99 +0,0 @@ -class Wav { -public: - - struct WAV_HEADER { - char RIFF[4] = { 'R','I','F','F' }; //RIFF��ʶ - unsigned long ChunkSize; //�ļ���С-8 - char WAVE[4] = { 'W','A','V','E' }; //WAVE�� - char fmt[4] = { 'f','m','t',' ' }; //fmt�� - unsigned long Subchunk1Size; //fmt���С - unsigned short AudioFormat; //�����ʽ - unsigned short NumOfChan; //������ - unsigned long SamplesPerSec; //������ - unsigned long bytesPerSec; //ÿ�����ֽ��� - unsigned short blockAlign; //�������ֽ� - unsigned short bitsPerSample; //������λ�� - char Subchunk2ID[4] = { 'd','a','t','a' }; //���ݿ� - unsigned long Subchunk2Size; //���ݿ��С - WAV_HEADER(unsigned long cs = 36, unsigned long sc1s = 16, unsigned short af = 1, unsigned short nc = 1, unsigned long sr = 22050, unsigned long bps = 44100, unsigned short ba = 2, unsigned short bips = 16, unsigned long sc2s = 0) :ChunkSize(cs), Subchunk1Size(sc1s), AudioFormat(af), NumOfChan(nc), SamplesPerSec(sr), bytesPerSec(bps), blockAlign(ba), bitsPerSample(bips), Subchunk2Size(sc2s) {} - }; - using iterator = int16_t*; - Wav(unsigned long cs = 36, unsigned long sc1s = 16, unsigned short af = 1, unsigned short nc = 1, unsigned long sr = 22050, unsigned long bps = 44100, unsigned short ba = 2, unsigned short bips = 16, unsigned long sc2s = 0) :header({ - cs, - sc1s, - af, - nc, - sr, - bps, - ba, - bips, - sc2s - }), Data(nullptr), StartPos(44) { - dataSize = 0; - SData = nullptr; - } - Wav(unsigned long sr, unsigned long length, const void* data) :header({ - 36, - 16, - 1, - 1, - sr, - sr * 2, - 2, - 16, - length - }), Data(new char[length + 1]), StartPos(44) - { - header.ChunkSize = 36 + length; - memcpy(Data, data, length); - SData = reinterpret_cast(Data); - dataSize = length / 2; - } - Wav(const wchar_t* Path); - Wav(const Wav& input); - Wav(Wav&& input) noexcept; - Wav& operator=(const Wav& input) = delete; - Wav& operator=(Wav&& input) noexcept; - ~Wav() { destory(); } - Wav& cat(const Wav& input); - bool isEmpty() const { return this->header.Subchunk2Size == 0; } - const char* getData() const { return Data; } - char* getData() { return Data; } - WAV_HEADER getHeader() const { return header; } - WAV_HEADER& Header() { return header; } - void destory() const { delete[] Data; } - void changeData(const void* indata,long length,int sr) - { - delete[] Data; - Data = new char[length]; - memcpy(Data, indata, length); - header.ChunkSize = 36 + length; - header.Subchunk2Size = length; - header.SamplesPerSec = sr; - header.bytesPerSec = 2 * sr; - } - int16_t& operator[](const size_t index) const - { - if (index < dataSize) - return *(SData + index); - return *(SData + dataSize - 1); - } - iterator begin() const - { - return reinterpret_cast(Data); - } - iterator end() const - { - return reinterpret_cast(Data + header.Subchunk2Size); - } - int64_t getDataLen()const - { - return static_cast(dataSize); - } -private: - WAV_HEADER header; - char* Data; - int16_t* SData; - size_t dataSize; - int StartPos; -};