TWaveFile 類別 參考文件

#include <WaveFile.h>

類別TWaveFile的繼承圖:

TWavePlayer 全部成員列表

公開方法(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

詳細描述

這是一個用來讀寫wav檔的元件。可以讀取PCM和u-law格式的wav檔,但只限mono單音。 儲存時只能存成PCM格式mono的wav檔。

定義在 WaveFile.h 檔案之第 10 行.


建構子與解構子說明文件

TWaveFile::TWaveFile (  ) 

建構子。

定義在 WaveFile.cpp 檔案之第 4 行.

參考 bitRate, bytesPerSample, Clear(), sampleRate, userData, 及 wave.

TWaveFile::~TWaveFile (  ) 

解構子。

定義在 WaveFile.cpp 檔案之第 14 行.

參考 Clear().


函式成員說明文件

void TWaveFile::Clear ( void   )  [virtual]

清除聲波

清除聲波。

TWavePlayer重新實作.

定義在 WaveFile.cpp 檔案之第 225 行.

參考 userData, wave, 及 waveSize.

被參考於 Load(), SetWave(), TWaveFile(), 及 ~TWaveFile().

int TWaveFile::FindChunk ( FILE *  ,
char *   
) [private]

定義在 WaveFile.cpp 檔案之第 31 行.

參考 Skip().

被參考於 Load().

int TWaveFile::GetBitRate ( void   )  [virtual]

取得聲波每個的取樣bit數。

取得聲波每個的取樣bit數。

傳回值:
聲波每個的取樣的bit數,其值為8或16。

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檔檔名。
傳回值:
true表示載入成功,false表示失敗。

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]

定義在 WaveFile.cpp 檔案之第 259 行.

參考 wave, 及 waveSize.

被參考於 Load().

bool TWaveFile::ReadChunk ( FILE *  ,
void *  ,
int  ,
int &   
) [private]

定義在 WaveFile.cpp 檔案之第 49 行.

被參考於 Load().

void TWaveFile::Resample ( int   )  [protected]

TWavePlayer重新實作.

定義在 WaveFile.cpp 檔案之第 234 行.

參考 sampleRate, wave, 及 waveSize.

被參考於 SetFormat().

bool TWaveFile::Save ( char *  name  )  [virtual]

以目前格式,將聲波儲存成一個wav檔。

以目前格式,將聲波儲存成一個wav檔。

參數:
name 為wav檔檔名。
傳回值:
true表示儲存成功,false表示失敗。

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 行.

參考 Clear(), wave, 及 waveSize.

被參考於 TWavePlayer::Save().

void TWaveFile::Skip ( FILE *  ,
int   
) [private]

定義在 WaveFile.cpp 檔案之第 19 行.

被參考於 FindChunk(), 及 Load().

void TWaveFile::Trim ( int  from,
int  to 
) [virtual]

去掉頭尾兩段聲波。

去掉頭尾兩段聲波。

參數:
from 去掉聲波陣列from之前的聲波。
to 去掉聲波陣列to之後的聲波。

TWavePlayer重新實作.

定義在 WaveFile.cpp 檔案之第 362 行.

參考 wave, 及 waveSize.

void TWaveFile::WaveCopy ( int *  ,
char *  ,
int  ,
int   
)

定義在 WaveFile.cpp 檔案之第 319 行.

參考 bytesPerSample.

int TWaveFile::WaveCopy ( char *  ,
int  ,
int   
)

定義在 WaveFile.cpp 檔案之第 339 行.

參考 bytesPerSample, wave, 及 waveSize.

void TWaveFile::WaveCopy ( int *  ,
char *  ,
int   
)

定義在 WaveFile.cpp 檔案之第 298 行.

參考 bytesPerSample.

void TWaveFile::WaveCopy ( char *  ,
int *  ,
int   
)

定義在 WaveFile.cpp 檔案之第 278 行.

參考 bytesPerSample.

被參考於 Load(), TWavePlayer::Play(), TWavePlayer::PlayABuffer(), TWavePlayer::RecordABuffer(), 及 Save().


資料成員說明文件

int TWaveFile::bitRate [private]

定義在 WaveFile.h 檔案之第 13 行.

被參考於 GetBitRate(), Load(), Save(), SetFormat(), 及 TWaveFile().

int TWaveFile::bytesPerSample [protected]

定義在 WaveFile.h 檔案之第 20 行.

被參考於 Load(), TWavePlayer::OpenRecordDevice(), TWavePlayer::PlayABuffer(), TWavePlayer::RecordABuffer(), Save(), TWavePlayer::SetBufferSize(), TWavePlayer::SetFormat(), SetFormat(), TWaveFile(), 及 WaveCopy().

int TWaveFile::sampleRate [private]

定義在 WaveFile.h 檔案之第 13 行.

被參考於 GetDuration(), GetSampleRate(), Load(), TWavePlayer::Resample(), Resample(), Save(), SetFormat(), 及 TWaveFile().

char* TWaveFile::userData

定義在 WaveFile.h 檔案之第 33 行.

被參考於 Clear(), Load(), Save(), 及 TWaveFile().

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().

int TWaveFile::waveSize

wave陣列的長度,代表聲波的取樣數目。

TWavePlayer重新實作.

定義在 WaveFile.h 檔案之第 32 行.

被參考於 Clear(), GetDuration(), Load(), main(), MuLawToPcm(), Resample(), Save(), SetFormat(), TWavePlayer::SetWave(), SetWave(), Trim(), 及 WaveCopy().


此類別(class) 文件是由下列檔案中產生:
產生日期:Tue Jul 11 11:52:19 2006, 專案:cbmr, 產生器:  doxygen 1.4.7