TNB Library
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CWaveFile クラス

WAVEファイルクラス [詳解]

#include <TnbWaveFile.h>

+ CWaveFile の継承関係図

クラス

class  CListInfoChunk
 LIST INFO チャンク管理 [詳解]
 
struct  TChunkHeader
 チャンクヘッダー型 [詳解]
 

公開メンバ関数

void Close (void)
 [設定] クローズ [詳解]
 
 CWaveFile (void)
 コンストラクタ [詳解]
 
const IConstCollectionT< BYTE > & GetByteData (void) const
 [取得] 8bit波形データ取得. [詳解]
 
const IConstCollectionT< BYTE > & GetChunk (FOURCC cc) const
 [取得] チャンクデータ取得. [詳解]
 
size_t GetDataSize (void) const
 [取得] 波形データサイズ取得. [詳解]
 
bool GetListInfoChunk (CListInfoChunk &_lic) const
 [取得] LIST,INFO チャンクデータ取得 [詳解]
 
size_t GetSamples (void) const
 [取得] 波形データ数取得. [詳解]
 
const IConstCollectionT< short > & GetShortData (void) const
 [取得] 16bit波形データ取得. [詳解]
 
DWORD GetTotalTime (void) const
 [取得] 波形データ時間取得. [詳解]
 
bool IsOpened (void) const
 [確認] オープン確認. [詳解]
 
bool Open (LPCTSTR fileName)
 [設定] WAVファイルオープン [詳解]
 
bool Open (LPCTSTR fileName, const WAVEFORMATEX &format)
 [設定] PCMファイルオープン [詳解]
 
const BYTE * RefData (INDEX i=0) const
 [取得] 波形データポインタ取得. [詳解]
 
const CWaveFormatRefFormat (void) const
 [参照] Waveフォーマット参照 [詳解]
 
 ~CWaveFile (void)
 デストラクタ [詳解]
 

静的公開メンバ関数

static size_t MakeWaveHeader (CWorkMem &_head, int channels, long rate, WORD bit, size_t dataSize, size_t extendSize=0)
 [作成] Wavファイルヘッダ作成. [詳解]
 

詳解

WAVEファイルクラス

wavファイルをチェックし読み込むことが出来ます。
覚え書き
マップドファイルを使用しています。

対応しているファイルは、非圧縮の 8bitか16bitのPCMです。 

注意
RefData() メソッドは、ローカルメモリに読み込んだデータを返します。 そのため、 1G を超える WAVEファイルの場合、メモリ不足になる可能性があります。
必要ファイル
TnbWaveFile.h
日付
08/08/12 新規作成
11/08/24 GetChunk() 、追加。 CConstFileMapping を使用するように変更。 4GB までのファイルに対応。
11/08/30 LIST INFO チャンククラス、追加。 GetData() 廃止。 GetByteData() , GetShortData() 追加。

TnbWaveFile.h125 行目に定義があります。

構築子と解体子

◆ CWaveFile()

CWaveFile ( void  )

コンストラクタ

TnbWaveFile.h305 行目に定義があります。

◆ ~CWaveFile()

~CWaveFile ( void  )

デストラクタ

TnbWaveFile.h310 行目に定義があります。

関数詳解

◆ Close()

void Close ( void  )

[設定] クローズ

TnbWaveFile.h327 行目に定義があります。

◆ GetByteData()

const IConstCollectionT< BYTE > & GetByteData ( void  ) const

[取得] 8bit波形データ取得.

注意
戻り値は一時的なオブジェクトです。本インスタンスの別のメソッドを使用すると無意味なものになる可能性が有ります。 必要に応じて CByteVector などに Copy() してください。
戻り値
波形データ

TnbWaveFile.h501 行目に定義があります。

◆ GetChunk()

const IConstCollectionT< BYTE > & GetChunk ( FOURCC  cc) const

[取得] チャンクデータ取得.

注意
戻り値は一時的なオブジェクトです。本インスタンスの別のメソッドを使用すると無意味なものになる可能性が有ります。 必要に応じて CByteVector などに Copy() してください。
引数
[in]ccチャンクコード。 MAKEFOURCC() マクロが便利です。
ex) MAKEFOURCC('n', 'o', 't', 'e')
戻り値
チャンクデータ。 指定チャンクがない場合、サイズが0のオブジェクトが返ります。

TnbWaveFile.h525 行目に定義があります。

◆ GetDataSize()

size_t GetDataSize ( void  ) const

[取得] 波形データサイズ取得.

戻り値
波形データサイズ

TnbWaveFile.h476 行目に定義があります。

◆ GetListInfoChunk()

bool GetListInfoChunk ( CListInfoChunk _lic) const

[取得] LIST,INFO チャンクデータ取得

引数
[out]_licデータが格納されます。
戻り値
true成功
false失敗

TnbWaveFile.h541 行目に定義があります。

◆ GetSamples()

size_t GetSamples ( void  ) const

[取得] 波形データ数取得.

戻り値
波形データ数

TnbWaveFile.h448 行目に定義があります。

◆ GetShortData()

const IConstCollectionT< short > & GetShortData ( void  ) const

[取得] 16bit波形データ取得.

注意
戻り値は一時的なオブジェクトです。本インスタンスの別のメソッドを使用すると無意味なものになる可能性が有ります。 必要に応じて CVectorT<short> などに Copy() してください。
戻り値
波形データ

TnbWaveFile.h513 行目に定義があります。

◆ GetTotalTime()

DWORD GetTotalTime ( void  ) const

[取得] 波形データ時間取得.

戻り値
波形データ時間(ms)

TnbWaveFile.h461 行目に定義があります。

◆ IsOpened()

bool IsOpened ( void  ) const

[確認] オープン確認.

覚え書き
オープンしていないと、Get,Refer系メソッドは無意味な値を返します。
戻り値
trueオープン済み
false未オープン。

TnbWaveFile.h321 行目に定義があります。

◆ MakeWaveHeader()

static size_t MakeWaveHeader ( CWorkMem _head,
int  channels,
long  rate,
WORD  bit,
size_t  dataSize,
size_t  extendSize = 0 
)
static

[作成] Wavファイルヘッダ作成.

引数
[out]_head作成したヘッダを格納します。
[in]channelsチャネル数
[in]rateレート
[in]bitビット
[in]dataSizeデータサイズ(Byte数)。
[in]extendSizeその他のサイズ(Byte数)。他のチャンクを付加するときに使用します
戻り値
ヘッダサイズ

TnbWaveFile.h561 行目に定義があります。

◆ Open() [1/2]

bool Open ( LPCTSTR  fileName)

[設定] WAVファイルオープン

覚え書き
WAVファイルを読み込み、使用できるようにします。
引数
fileNameファイル名
戻り値
true成功
false失敗

TnbWaveFile.h369 行目に定義があります。

◆ Open() [2/2]

bool Open ( LPCTSTR  fileName,
const WAVEFORMATEX &  format 
)

[設定] PCMファイルオープン

覚え書き
PCMファイルを読み込み、使用できるようにします。
引数
fileNameファイル名
formatフォーマット
戻り値
true成功
false失敗。

TnbWaveFile.h345 行目に定義があります。

◆ RefData()

const BYTE * RefData ( INDEX  i = 0) const

[取得] 波形データポインタ取得.

引数
iインデックス
戻り値
波形データポインタ

TnbWaveFile.h486 行目に定義があります。

◆ RefFormat()

const CWaveFormat & RefFormat ( void  ) const

[参照] Waveフォーマット参照

戻り値
Waveフォーマット

< 保持データフォーマット

TnbWaveFile.h439 行目に定義があります。