본문 바로가기

API / MFC/Wave In/Out API function

WAVEHDR Structure

WAVEHDR 구조체는 웨이브폼 오디오 버퍼를 식별하는데 사용하는 헤더를 정의

typedef struct wavehdr_tag {
  LPSTR              lpData;
  DWORD              dwBufferLength;
  DWORD              dwBytesRecorded;
  DWORD_PTR          dwUser;
  DWORD              dwFlags;
  DWORD              dwLoops;
  struct wavehdr_tag *lpNext;
  DWORD_PTR          reserved;
} WAVEHDR, *LPWAVEHDR;


lpData
    웨이브폼 버퍼의 포인터(녹음을 할 때 사용할 메모리 공간에 대한 주소)

dwBufferLength
    퍼버의 크기(byte 단위)

dwBytesRecorded
    헤더입력에 사용되는 이 멤버는 어느정도의 데이터가 버퍼에 있는지 지정함

dwUser
    사용자 데이터

dwFlags
    버퍼에 대한 부가 정보의 플래그
    다음 값을 정의
         ┃
         ┣> WHDR_BEGINLOOP
         ┃      ┣ 재생이 반복되는 버퍼일때 이 플래그를 설정
         ┃      ┣ 이 버퍼는 반복에서의 첫번째 버퍼를 나타냄
         ┃      ┗ 이 버퍼는 오직 출력 버퍼(재생)에서만 사용
         ┃
         ┣> WHDR_DONE
         ┃      ┗ 버퍼가 다 사용되었거나 어플리케이션이 반환 되었음을 나타내는 장치 드라이브에 의해 설정
         ┃
         ┣> WHDR_ENDLOOP
         ┃      ┣ 재생이 반복되는 버퍼일때 이 플래그를 설정
         ┃      ┣ 이 버퍼는 반복에서의 마지막 버퍼를 나타냄
         ┃      ┗ 이 버퍼는 오직 출력 버퍼(재생)에서만 사용
         ┃
         ┣> WHDR_INQUEUE
         ┃      ┗재생을 위해 대기중인 버퍼를 나타내는 윈도우에서 설정
         ┃
         ┗> WHDR_PREPARED
                 ┗ waveInPrepareHeader나 waveOutPrepareHeader 함수에서 준비된 버퍼를 나타내는 윈도우에서 설정

dwLoops
    반복 재생의 횟수 지정
    이 멤버는 오직 출력 버퍼(재생)에서만 사용

lpNext
    예약

reserved
    예약


정리 잘된 사이트
   
http://blog.naver.com/zzangisaac/30045986561
    http://www.tipssoft.com/bulletin/tb.php/FAQ/23

참조 :
http://msdn.microsoft.com/en-us/library/dd743837(VS.85).aspx



 

'API / MFC > Wave In/Out API function' 카테고리의 다른 글

waveInStart Function  (0) 2010.04.15
waveInAddBuffer Function  (0) 2010.04.15
waveInPrepareHeader Function  (0) 2010.04.15
waveInOpen Function  (0) 2010.04.15
WAVEFORMATEX Structure  (0) 2010.04.14