Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem_Warning_Fixed
Diff: SD_WavReader.cpp
- Revision:
- 18:6631cd0fbbcd
- Parent:
- 16:299cc1052baa
diff -r abfd6af9a236 -r 6631cd0fbbcd SD_WavReader.cpp
--- a/SD_WavReader.cpp Thu Mar 23 02:58:48 2017 +0000
+++ b/SD_WavReader.cpp Tue Jun 04 21:35:59 2019 +0000
@@ -1,11 +1,3 @@
-//--------------------------------------------------------------
-// SD_WavReader class
-// SD カードの *.wav ファイルの内容を読み出す
-// 以下の型式のファイルのみ扱う
-// PCM,16 ビットステレオ,標本化周波数 44.1 kHz
-//
-// 2017/03/22, Copyright (c) 2017 MIKAMI, Naoki
-//--------------------------------------------------------------
#include "SD_WavReader.hpp"
@@ -29,29 +21,29 @@
{
string name = (string)"/" + STR_ + "/" + fileName;
fp_ = fopen(name.c_str(), "rb");
- if (fp_ == NULL) ErrorMsg("open error!!");
+ if (fp_ == NULL) ErrorMsg("Loi The SD!!!");
}
- // ファイルのヘッダ "RIFFxxxxWAVEfmt " の部分の読み込み
- // 戻り値:16 ビットステレオ,標本化周波数が 44.1 kHz の場合 true
+ // Đọ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_); // 16 バイト分を読み込む
+ fread(data, 1, 16, fp_); // Đọc 16 byte
string strRead = "";
for (int n=0; n<4; n++) strRead += data[n];
- // 間の 4 文字はチェックしない
+ // Không kiểm tra 4 ký tự giữa
for (int n=8; n<16; n++) strRead += data[n];
- // "RIFF", "WAVE", "fmt " が存在することを確認
+ // Kiểm tra xem "RIFF", "WAVE", "fmt" có tồn tại không
if (strRead != "RIFFWAVEfmt ") return false;
- // fmt chunck のサイズを取得
+ // có được kích thước của fmt chunck
uint32_t fmtChunkSize;
fread(&fmtChunkSize, sizeof(uint32_t), 1, fp_);
- // PCM, Stereo, 44.1 kHz, 16 bit であることを確認
+ // 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) ||
@@ -60,7 +52,7 @@
(fmtData.wBitsPerSample != 16)
) return false;
- // data chunk を探す
+ // Tìm dữ liệu
char dataId[5];
dataId[4] = 0;
fread(dataId, 1, 4, fp_);
@@ -77,7 +69,7 @@
if (n == 99) return false;
}
- // データサイズ (byte) を取得
+ // Nhận kích thước dữ liệu (byte)
int32_t sizeByte;
fread(&sizeByte, sizeof(int32_t), 1, fp_);
size_ = sizeByte/4;
@@ -86,7 +78,7 @@
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)
{
@@ -100,7 +92,7 @@
}
}
- // ファイルからデータをモノラルに変換しての取得
+ // 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");
@@ -110,7 +102,7 @@
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");