revised version of F746_SD_GraphicEqualizer
Dependencies: BSP_DISCO_F746NG F746_GUI F746_SAI_IO FrequencyResponseDrawer LCD_DISCO_F746NG SDFileSystem_Warning_Fixed TS_DISCO_F746NG mbed
Fork of F746_SD_GraphicEqualizer by
Diff: MyClasses_Functions/SD_WavReader.cpp
- Revision:
- 10:fc6367c2ffcf
- Parent:
- 0:e953eb392151
--- a/MyClasses_Functions/SD_WavReader.cpp Mon May 09 13:48:33 2016 +0000 +++ b/MyClasses_Functions/SD_WavReader.cpp Wed Jun 22 03:50:38 2016 +0000 @@ -48,7 +48,10 @@ // "RIFF", "WAVE", "fmt " が存在することを確認 if (strRead != "RIFFWAVEfmt ") return false; - +/**{ + char dump[500]; strcpy(dump, strRead.c_str()); +ren_Msg1(4, dump); +}**/ // fmt chunck のサイズを取得 uint32_t fmtChunkSize; fread(&fmtChunkSize, sizeof(uint32_t), 1, fp_); @@ -56,18 +59,35 @@ // PCM, Stereo, 44.1 kHz, 16 bit であることを確認 WaveFormatEx fmtData; fread(&fmtData, fmtChunkSize, 1, fp_); + if ((fmtData.wFormatTag != 1) || (fmtData.nChannels != 2) || (fmtData.nSamplesPerSec != 44100) || (fmtData.wBitsPerSample != 16) - ) return false; - + ) + return false; +/**{ + char dump[500]; +sprintf(dump, "wFormatTag: %d", fmtData.wFormatTag); +ren_Msg1(1, dump); +sprintf(dump, "nChannels: %d", fmtData.nChannels); +ren_Msg1(2, dump); +sprintf(dump, "nSamplesPerSec: %d", fmtData.nSamplesPerSec); +ren_Msg1(3, dump); +sprintf(dump, "wBitsPerSample: %d", fmtData.wBitsPerSample); +ren_Msg1(4, dump); +}**/ // data chunk を探す char dataId[5]; dataId[4] = 0; fread(dataId, 1, 4, fp_); +/**{ + char dump[500]; +sprintf(dump, "dataId: %s", dataId); +ren_Msg1(5, dump); wait(20.0f); +}**/ if ("data" != (string)dataId) - for (int n=0; n<100; n++) + for (int n=0; n<1000; n++) { char oneByte; fread(&oneByte, 1, 1, fp_); @@ -76,7 +96,7 @@ dataId[3] = oneByte; if ("data" == (string)dataId) break; - if (n == 99) return false; + if (n == 999) return false; } // データサイズ (byte) を取得