#include <WaveFile.h>
類別TWaveFile的繼承圖:
公開方法(Public Methods) | |
void | WaveCopy (char *, int *, int) |
void | WaveCopy (int *, char *, int) |
int | WaveCopy (char *, int, int) |
void | WaveCopy (int *, char *, int, int) |
TWaveFile () | |
建構子。 | |
~TWaveFile () | |
解構子。 | |
virtual bool | Load (char *name) |
載入一個wav檔。 | |
virtual bool | Save (char *name) |
以目前格式,將聲波儲存成一個wav檔。 | |
virtual int | GetSampleRate (void) |
取得聲波的取樣頻率。單位為Hz。 | |
virtual int | GetBitRate (void) |
取得聲波每個的取樣bit數。 | |
virtual void | SetFormat (int newSampleRate, int newBitRate) |
virtual int | GetDuration (void) |
取得聲波的長度,單位是秒。 | |
virtual void | SetWave (int *w, int size) |
virtual void | Clear (void) |
清除聲波 | |
virtual void | Trim (int from, int to) |
去掉頭尾兩段聲波。 | |
公開屬性 | |
int * | wave |
聲波陣列,若為8 bits,則元素值範圍為-128到127;若為16 bits,則元素值範圍為-32768到32767。. | |
int | waveSize |
wave陣列的長度,代表聲波的取樣數目。 | |
char * | userData |
保護方法(Protected Methods) | |
void | Resample (int) |
保護屬性 | |
int | bytesPerSample |
私有方法(Private Methods) | |
void | Skip (FILE *, int) |
int | FindChunk (FILE *, char *) |
bool | ReadChunk (FILE *, void *, int, int &) |
void | MuLawToPcm (void) |
私有屬性 | |
int | sampleRate |
int | bitRate |
定義在 WaveFile.h 檔案之第 10 行.
TWaveFile::TWaveFile | ( | ) |
TWaveFile::~TWaveFile | ( | ) |
void TWaveFile::Clear | ( | void | ) | [virtual] |
清除聲波
清除聲波。
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 225 行.
參考 userData, wave, 及 waveSize.
被參考於 Load(), SetWave(), TWaveFile(), 及 ~TWaveFile().
int TWaveFile::FindChunk | ( | FILE * | , | |
char * | ||||
) | [private] |
int TWaveFile::GetBitRate | ( | void | ) | [virtual] |
取得聲波每個的取樣bit數。
取得聲波每個的取樣bit數。
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 187 行.
參考 bitRate.
被參考於 TWavePlayer::SetWave().
int TWaveFile::GetDuration | ( | void | ) | [virtual] |
取得聲波的長度,單位是秒。
取得聲波的長度,單位是秒。相當於waveSize 除以GetSampleRate 。
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 212 行.
參考 sampleRate, 及 waveSize.
int TWaveFile::GetSampleRate | ( | void | ) | [virtual] |
取得聲波的取樣頻率。單位為Hz。
取得聲波的取樣頻率。單位為Hz。
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 182 行.
參考 sampleRate.
被參考於 TWavePlayer::SetWave().
bool TWaveFile::Load | ( | char * | name | ) | [virtual] |
載入一個wav檔。
載入一個wav檔。
name | 為wav檔檔名。 |
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 58 行.
參考 bitRate, bytesPerSample, Clear(), FindChunk(), format, MuLawToPcm(), ReadChunk(), sampleRate, Skip(), userData, wave, WaveCopy(), 及 waveSize.
被參考於 TWavePlayer::Load(), 及 main().
void TWaveFile::MuLawToPcm | ( | void | ) | [private] |
bool TWaveFile::ReadChunk | ( | FILE * | , | |
void * | , | |||
int | , | |||
int & | ||||
) | [private] |
void TWaveFile::Resample | ( | int | ) | [protected] |
bool TWaveFile::Save | ( | char * | name | ) | [virtual] |
以目前格式,將聲波儲存成一個wav檔。
以目前格式,將聲波儲存成一個wav檔。
name | 為wav檔檔名。 |
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 133 行.
參考 bitRate, bytesPerSample, sampleRate, userData, wave, WaveCopy(), 及 waveSize.
被參考於 TWavePlayer::Save().
void TWaveFile::SetFormat | ( | int | newSampleRate, | |
int | newBitRate | |||
) | [virtual] |
設定聲波的取樣頻率和取樣bit數。 若呼叫此函式時有聲波存在,會把聲波調整成符合新的格式,影響到wave 和waveSize 的值。 另外也會自動呼叫SetBufferSize 函式,把buffer大小設成newSampleRate/5。
newSampleRate | 新的取樣頻率。 | |
newBitRate | 新的取樣bit數。 |
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 192 行.
參考 bitRate, bytesPerSample, Resample(), sampleRate, wave, 及 waveSize.
被參考於 main(), 及 TWavePlayer::Save().
void TWaveFile::SetWave | ( | int * | w, | |
int | size | |||
) | [virtual] |
設定新的聲波。若新的聲波格式和此元件原本的格式不同,則呼叫此函式前必須先呼叫SetFormat 函式設定新的格式。
w | 新的聲波陣列,元素值的範圍和wave 相同。 | |
size | w陣列的長度,代表聲波的取樣數目。 |
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 218 行.
被參考於 TWavePlayer::Save().
void TWaveFile::Skip | ( | FILE * | , | |
int | ||||
) | [private] |
void TWaveFile::Trim | ( | int | from, | |
int | to | |||
) | [virtual] |
去掉頭尾兩段聲波。
去掉頭尾兩段聲波。
from | 去掉聲波陣列from之前的聲波。 | |
to | 去掉聲波陣列to之後的聲波。 |
在TWavePlayer重新實作.
定義在 WaveFile.cpp 檔案之第 362 行.
void TWaveFile::WaveCopy | ( | int * | , | |
char * | , | |||
int | , | |||
int | ||||
) |
int TWaveFile::WaveCopy | ( | char * | , | |
int | , | |||
int | ||||
) |
void TWaveFile::WaveCopy | ( | int * | , | |
char * | , | |||
int | ||||
) |
void TWaveFile::WaveCopy | ( | char * | , | |
int * | , | |||
int | ||||
) |
定義在 WaveFile.cpp 檔案之第 278 行.
參考 bytesPerSample.
被參考於 Load(), TWavePlayer::Play(), TWavePlayer::PlayABuffer(), TWavePlayer::RecordABuffer(), 及 Save().
int TWaveFile::bitRate [private] |
int TWaveFile::bytesPerSample [protected] |
int TWaveFile::sampleRate [private] |
定義在 WaveFile.h 檔案之第 13 行.
被參考於 GetDuration(), GetSampleRate(), Load(), TWavePlayer::Resample(), Resample(), Save(), SetFormat(), 及 TWaveFile().
char* TWaveFile::userData |
int* TWaveFile::wave |
聲波陣列,若為8 bits,則元素值範圍為-128到127;若為16 bits,則元素值範圍為-32768到32767。.
在TWavePlayer重新實作.
定義在 WaveFile.h 檔案之第 30 行.
被參考於 Clear(), Load(), main(), MuLawToPcm(), Resample(), Save(), SetFormat(), TWavePlayer::SetWave(), SetWave(), Trim(), TWaveFile(), 及 WaveCopy().
wave陣列的長度,代表聲波的取樣數目。
在TWavePlayer重新實作.
定義在 WaveFile.h 檔案之第 32 行.
被參考於 Clear(), GetDuration(), Load(), main(), MuLawToPcm(), Resample(), Save(), SetFormat(), TWavePlayer::SetWave(), SetWave(), Trim(), 及 WaveCopy().