Chapter006_Zara_F746NG
Dependencies: F746_GUI SRF08 Array_Matrix TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG SDFileSystem_Warning_Fixed FrequencyResponseDrawer F746_SAI_IO
Diff: MyClasses_Functions/SD_WavReader.hpp
- Revision:
- 11:769d986c10fa
- Parent:
- 0:04b43b777fae
diff -r 8e321be14b18 -r 769d986c10fa MyClasses_Functions/SD_WavReader.hpp --- a/MyClasses_Functions/SD_WavReader.hpp Wed Jun 15 13:16:49 2016 +0000 +++ b/MyClasses_Functions/SD_WavReader.hpp Mon Jul 04 05:59:44 2016 +0000 @@ -4,7 +4,7 @@ // 以下のフォーマット以外は扱わない // PCM,16 ビットステレオ,標本化周波数 44.1 kHz // -// 2016/04/19, Copyright (c) 2016 MIKAMI, Naoki +// 2016/06/17, Copyright (c) 2016 MIKAMI, Naoki //-------------------------------------------------------------- #ifndef SD_WAV_READER_HPP @@ -12,6 +12,8 @@ #include "SDFileSystem.h" #include "BlinkLabel.hpp" +#define DEBUG_ARRAY_CHECK +#include "Array.hpp" #include <string> namespace Mikami @@ -26,16 +28,16 @@ void Close() { fclose(fp_); } - // ファイルのヘッダ (RIFFxxxxWAVEfm ) 読み込み + // ファイルのヘッダ読み込み // 戻り値: *.wav で,16 ビットステレオ, // 標本化周波数:44.1 kHz の場合 true bool IsWavFile(); - // ファイルからデータの取得 - void Read(int16_t data[], uint32_t size); + // ファイルからステレオデータの取得 + void ReadStereo(Array<int16_t>& dataL, Array<int16_t>& dataR); // ファイルからデータをモノラルに変換しての取得 - void ReadAndToMono(int16_t data[], uint32_t size); + void ReadAndToMono(Array<int16_t>& data); // データサイズ(標本化点の数)の取得 int32_t GetSize(); @@ -51,15 +53,15 @@ uint32_t nAvgBytesPerSec; // 転送速度 (bytes/s) uint16_t nBlockAlign; // 4: 16ビットステレオの場合 uint16_t wBitsPerSample; // データのビット数,8 または 16 - uint16_t cbSize; + uint16_t cbSize; // PCM の場合使わない }; SDFileSystem *sd_; FILE *fp_; bool ok_; - int32_t size_; // モノラルデータのサイズ - int16_t *buffer; // ステレオをモノラルに変換する際の作業領域 + int32_t size_; // データサイズ(標本化点の数) + Array<int16_t> buffer; // ステレオをモノラルに変換する際の作業領域 void ErrorMsg(char msg[]) { BlinkLabel errLabel(240, 100, msg, Label::CENTER); }