D:/work/code_by/Wave/waveAPI.h 檔案參考文件

#include <windows.h>
#include <mmsystem.h>

查看本檔案的原始碼.

定義

#define FRAMESIZE   256
#define WIBLSIZE   8
#define MSG_BUFFER_IN   (WM_APP + 1)
#define MSG_BUFFER_DONE   (WM_APP + 2)

列舉型態

enum  { WAVE_IN, WAVE_OUT }

函式

bool OpenWaveIn ()
 Open waveIn device (specified by WAVE_MAPPER).
void StartWaveIn ()
 Call waveInStart() to start recording.
void CloseWaveIn ()
 Close waveIn device.
void OpenWaveOut ()
 Open waveOut device (specified by WAVE_MAPPER).
void CloseWaveOut ()
 Close waveOut device.
void CALLBACK waveOutProc (HWAVEOUT hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)
 Callback function for waveOutWrite.
void CALLBACK waveInProc (HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)
 Callback function for waveInStart.
int AssertWaveError (int source, int err)
int WaveProcessor (WAVEHDR *wh, short int *waveSample, int sampleSize)
int WavePostProcessor (WAVEHDR *wh, short int *waveSample, int sampleSize)

變數

int samplingRate
int channels
HWND targetWindow
WAVEFORMATEX format
HWAVEOUT waveOutHandle
WAVEHDR waveOutHeader
bool waveOutWriteStart
int waveOutDoneCount
WAVEHDR waveOutHeaders [WIBLSIZE]
HWAVEIN waveInHandle
WAVEHDR waveInHeaders [WIBLSIZE]
short int ** waveInBuffers
int wiblCount
int wiblIndex
int waveInStatus


定義巨集說明文件

#define FRAMESIZE   256

定義在 waveAPI.h 檔案之第 9 行.

被參考於 OpenWaveOut(), StartWaveIn(), waveAPIInit(), 及 waveInProc().

#define MSG_BUFFER_DONE   (WM_APP + 2)

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

被參考於 waveOutProc().

#define MSG_BUFFER_IN   (WM_APP + 1)

定義在 waveAPI.h 檔案之第 12 行.

被參考於 waveInProc().

#define WIBLSIZE   8

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

被參考於 CloseWaveIn(), CloseWaveOut(), OpenWaveOut(), StartWaveIn(), waveAPIInit(), 及 waveInProc().


列舉型態說明文件

anonymous enum

列舉值:
WAVE_IN 
WAVE_OUT 

定義在 waveAPI.h 檔案之第 15 行.


函式說明文件

int AssertWaveError ( int  source,
int  err 
)

被參考於 CloseWaveIn(), CloseWaveOut(), OpenWaveIn(), OpenWaveOut(), StartWaveIn(), 及 waveInProc().

void CloseWaveIn (  ) 

Close waveIn device.

備註:
  1. wiblIndex will be reset to 0.
  2. waveInStatus will be set to 0.

定義在 waveAPI.cpp 檔案之第 183 行.

參考 AssertWaveError(), WAVE_IN, waveInHandle, waveInHeaders, waveInStatus, wiblIndex, 及 WIBLSIZE.

void CloseWaveOut (  ) 

Close waveOut device.

備註:
Call this function after CloseWaveIn().

定義在 waveAPI.cpp 檔案之第 162 行.

參考 AssertWaveError(), WAVE_OUT, waveOutHandle, waveOutHeaders, 及 WIBLSIZE.

bool OpenWaveIn (  ) 

Open waveIn device (specified by WAVE_MAPPER).

備註:
  1. Sampling rate is pre-defined.
  2. waveInStatus will be set to 0.

定義在 waveAPI.cpp 檔案之第 51 行.

參考 AssertWaveError(), channels, format, samplingRate, WAVE_IN, waveAPIInit(), waveAPIInitialized, waveInHandle, waveInProc(), 及 waveInStatus.

void OpenWaveOut (  ) 

Open waveOut device (specified by WAVE_MAPPER).

備註:
  1. Call this function before StartWaveIn() to repvent weird behavior.
  2. waveOutWriteStart will be set to false.
  3. waveOutDoneCount will be set to 0.
  4. When two frames are returned from waveIn, waveOutWriteStart will be set to true (in waveInProc(), and waveInProc() will start to write frame to waveOut device.
  5. When a frame is done with waveOutWrite, waveOutDoneCount will be increased by 1.

定義在 waveAPI.cpp 檔案之第 120 行.

參考 AssertWaveError(), channels, format, FRAMESIZE, samplingRate, WAVE_OUT, waveAPIInit(), waveAPIInitialized, waveInBuffers, waveOutDoneCount, waveOutHandle, waveOutHeaders, waveOutProc(), waveOutWriteStart, 及 WIBLSIZE.

void StartWaveIn (  ) 

Call waveInStart() to start recording.

備註:
  1. waveInStatus will be set to 1.
  2. Two buffers will be prepared and added (to prevent frame dropping).

定義在 waveAPI.cpp 檔案之第 82 行.

參考 AssertWaveError(), FRAMESIZE, WAVE_IN, waveInBuffers, waveInHandle, waveInHeaders, waveInStatus, wiblCount, 及 WIBLSIZE.

void CALLBACK waveInProc ( HWAVEIN  hwi,
UINT  uMsg,
DWORD  dwInstance,
DWORD  dwParam1,
DWORD  dwParam2 
)

Callback function for waveInStart.

備註:
WaveProcessor() will be called when a frame is full and returned from waveIn. After output to waveOut device, WavePostProcessor will be called to excute necessary cleanup procedures.

定義在 waveAPI.cpp 檔案之第 231 行.

參考 AssertWaveError(), FRAMESIZE, MSG_BUFFER_IN, targetWindow, waveInBuffers, waveInHandle, waveInHeaders, waveInStatus, waveOutHandle, waveOutHeaders, waveOutWriteStart, WavePostProcessor(), WaveProcessor(), wiblCount, wiblIndex, 及 WIBLSIZE.

被參考於 OpenWaveIn().

void CALLBACK waveOutProc ( HWAVEOUT  hwi,
UINT  uMsg,
DWORD  dwInstance,
DWORD  dwParam1,
DWORD  dwParam2 
)

Callback function for waveOutWrite.

定義在 waveAPI.cpp 檔案之第 205 行.

參考 MSG_BUFFER_DONE, targetWindow, 及 waveOutDoneCount.

被參考於 OpenWaveOut().

int WavePostProcessor ( WAVEHDR *  wh,
short int *  waveSample,
int  sampleSize 
)

被參考於 waveInProc().

int WaveProcessor ( WAVEHDR *  wh,
short int *  waveSample,
int  sampleSize 
)

被參考於 waveInProc().


變數說明文件

int channels

定義在 waveAPI.cpp 檔案之第 8 行.

被參考於 OpenWaveIn(), 及 OpenWaveOut().

WAVEFORMATEX format

定義在 waveAPI.cpp 檔案之第 11 行.

被參考於 TWaveFile::Load(), OpenWaveIn(), 及 OpenWaveOut().

int samplingRate

定義在 waveAPI.cpp 檔案之第 7 行.

被參考於 OpenWaveIn(), 及 OpenWaveOut().

HWND targetWindow

定義在 waveAPI.cpp 檔案之第 9 行.

被參考於 waveInProc(), 及 waveOutProc().

short int** waveInBuffers

定義在 waveAPI.cpp 檔案之第 21 行.

被參考於 OpenWaveOut(), StartWaveIn(), waveAPIInit(), 及 waveInProc().

HWAVEIN waveInHandle

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

被參考於 CloseWaveIn(), OpenWaveIn(), StartWaveIn(), waveAPIInit(), 及 waveInProc().

WAVEHDR waveInHeaders[WIBLSIZE]

定義在 waveAPI.cpp 檔案之第 20 行.

被參考於 CloseWaveIn(), StartWaveIn(), 及 waveInProc().

int waveInStatus

定義在 waveAPI.cpp 檔案之第 24 行.

被參考於 CloseWaveIn(), OpenWaveIn(), StartWaveIn(), 及 waveInProc().

int waveOutDoneCount

定義在 waveAPI.cpp 檔案之第 16 行.

被參考於 OpenWaveOut(), 及 waveOutProc().

HWAVEOUT waveOutHandle

定義在 waveAPI.cpp 檔案之第 13 行.

被參考於 CloseWaveOut(), OpenWaveOut(), waveAPIInit(), 及 waveInProc().

WAVEHDR waveOutHeader

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

WAVEHDR waveOutHeaders[WIBLSIZE]

定義在 waveAPI.cpp 檔案之第 17 行.

被參考於 CloseWaveOut(), OpenWaveOut(), 及 waveInProc().

bool waveOutWriteStart

定義在 waveAPI.cpp 檔案之第 15 行.

被參考於 OpenWaveOut(), 及 waveInProc().

int wiblCount

定義在 waveAPI.cpp 檔案之第 22 行.

被參考於 StartWaveIn(), 及 waveInProc().

int wiblIndex

定義在 waveAPI.cpp 檔案之第 22 行.

被參考於 CloseWaveIn(), 及 waveInProc().


產生日期:Tue Jul 11 11:52:19 2006, 專案:cbmr, 產生器:  doxygen 1.4.7