SPKT

Dependencies:   SDFileSystem_Warning_Fixed

Dependents:   DISCO-F746_WAV_PLAYER WAV

Revision:
20:84ca69a520f9
Parent:
19:9f34d9b4a6a7
--- a/SD_WavReader.cpp	Fri Jun 07 05:26:05 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-
-#include "SD_WavReader.hpp"
-
-namespace Mikami
-{
-    SD_WavReader::SD_WavReader(int32_t bufferSize)
-        : STR_("sd"), ok_(false)
-    {
-        sd_ = new SDFileSystem(STR_.c_str());
-        sd_->mount();      
-        buffer.SetSize(bufferSize*2);
-    }
-
-    SD_WavReader::~SD_WavReader()
-    {
-        sd_->unmount();
-        delete sd_;
-    }
-    
-    void SD_WavReader::Open(const string fileName)
-    {
-        string name = (string)"/" + STR_ + "/" + fileName;
-        fp_ = fopen(name.c_str(), "rb");
-        if (fp_ == NULL) ErrorMsg("Loi The SD!!!");
-    }
-    
-    
-    // Đọc một phần của tiêu đề tệp "RIFFxxxxWAVEfmt"
-    // Giá trị trả về: true nếu âm thanh nổi 16 bit, tần số lấy mẫu là 44,1 kHz
-    bool SD_WavReader::IsWavFile()
-    {
-        char data[17];
-        fread(data, 1, 16, fp_);    // Đọc 16 byte
-        string strRead = "";
-        for (int n=0; n<4; n++) strRead += data[n];
-        // Không kiểm tra 4 ký tự giữa 
-        for (int n=8; n<16; n++) strRead += data[n];
-
-        // Kiểm tra xem "RIFF", "WAVE", "fmt" có tồn tại không
-        if (strRead != "RIFFWAVEfmt ") return false;
-
-        // có được kích thước của fmt chunck
-        uint32_t fmtChunkSize;
-        fread(&fmtChunkSize, sizeof(uint32_t), 1, fp_);
-
-        // Xác nhận rằng đó là PCM, Stereo, 44.1 kHz, 16 bit
-        WaveFormatEx fmtData;
-        fread(&fmtData, fmtChunkSize, 1, fp_);
-        if ((fmtData.wFormatTag     != 1)   ||
-            (fmtData.nChannels      != 2)   ||
-            (fmtData.nSamplesPerSec != AUDIO_FREQUENCY_44K) ||
-            (fmtData.wBitsPerSample != 16)
-           ) return false;
-
-        // Tìm dữ liệu
-        char dataId[5];
-        dataId[4] = 0;
-        fread(dataId, 1, 4, fp_);
-        if ("data" != (string)dataId)
-            for (int n=0; n<100; n++)
-            {
-                char oneByte;
-                fread(&oneByte, 1, 1, fp_);
-                for (int k=0; k<3; k++)
-                    dataId[k] = dataId[k+1];
-                dataId[3] = oneByte;
-                if ("data" == (string)dataId) break;
-                
-                if (n == 99) return false;
-            }
-
-        // Nhận kích thước dữ liệu (byte)
-        int32_t sizeByte;
-        fread(&sizeByte, sizeof(int32_t), 1, fp_);
-        size_ = sizeByte/4;
-
-        ok_ = true;
-        return true;
-    }
-
-    // Nhận dữ liệu âm thanh nổi từ tập tin
-    void SD_WavReader::ReadStereo(Array<int16_t>& dataL,
-                                  Array<int16_t>& dataR)
-    {
-        if (!ok_) ErrorMsg("Get data FAILED");
-        uint32_t size = dataL.Length();
-        fread(buffer, sizeof(int16_t), size*2, fp_);       
-        for (int n=0; n<size; n++)
-        {
-            dataL[n] = buffer[2*n];
-            dataR[n] = buffer[2*n+1];
-        }
-    }
-
-    // Chuyển đổi dữ liệu từ tập tin sang đơn âm
-    void SD_WavReader::ReadAndToMono(Array<int16_t>& data)
-    {
-        if (!ok_) ErrorMsg("Get data FAILED");
-        uint32_t size = data.Length();
-        fread(buffer, sizeof(int16_t), size*2, fp_);
-        for (int n=0; n<size; n++)
-            data[n] = (buffer[2*n] + buffer[2*n+1])/2;
-    }        
-    
-    // Thu thập kích thước dữ liệu (số điểm lấy mẫu)
-    int32_t SD_WavReader::GetSize()
-    {
-        if (!ok_) ErrorMsg("Get data size FAILED");
-        return size_;
-    }
-}