www.pudn.com > w_ipp-sample-media_p_5.0.017.zip > wav_file.h


/*////////////////////////////////////////////////////////////////////////////// 
// 
//                  INTEL CORPORATION PROPRIETARY INFORMATION 
//     This software is supplied under the terms of a license agreement or 
//     nondisclosure agreement with Intel Corporation and may not be copied 
//     or disclosed except in accordance with the terms of that agreement. 
//          Copyright(c) 2005 Intel Corporation. All Rights Reserved. 
// 
*/ 
 
#ifndef __WAV_FILE_H 
#define __WAV_FILE_H 
 
#include "audio_file.h" 
 
class   WavFile:public AudioFile { 
public: 
  struct Info { 
    unsigned int format_tag;    // / 1 = PCM 
    unsigned int sample_rate;   // / f.e. 44100 
    unsigned int resolution;    // / 8,16,32 bits, etc 
    unsigned int channels_number; 
    unsigned int channel_mask;  // / 
 
  }; 
public: 
          WavFile(); 
         ~WavFile(); 
 
  virtual int Open(char *p_filename, unsigned int mode); 
  virtual int Close(); 
  virtual int Write(void *p_data, size_t size); 
  virtual int Read(void *p_data, size_t size); 
 
  virtual int SetInfo(Info * p_info); 
  virtual int GetInfo(Info * p_info); 
 
protected: 
 
  void   *m_file_handle; 
  unsigned int m_open_mode; 
  int     m_is_first_time; 
  int     m_is_info_valid; 
  Info    m_info; 
 
  unsigned int m_data_size; 
  unsigned int m_riff_size; 
 
protected: 
 
  int     ReadHeaderInfo(); 
}; 
 
#endif 
/* EOF */