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) 2004-2005 Intel Corporation. All Rights Reserved. 
// 
*/ 
 
#ifndef __WAV_FILE_H 
#define __WAV_FILE_H 
 
#include "audio_file.h" 
#include "vm_types.h" 
 
class WavFile: public AudioFile 
{ 
public: 
  struct Info 
  { 
    vm_var32 format_tag;  /// 1 = PCM 
    vm_var32 sample_rate; /// f.e. 44100 
    vm_var32 resolution;  ///  8,16,32 bits, etc 
    vm_var32 channels_number; 
    vm_var32 channel_mask; /// 
 
  }; 
public: 
  WavFile(); 
  ~WavFile(); 
 
  virtual int Open(vm_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; 
  vm_var32      m_open_mode; 
  vm_var32      m_is_first_time; 
  vm_var32      m_is_info_valid; 
  Info          m_info; 
 
  vm_var32  m_data_size; 
  vm_var32  m_riff_size; 
 
protected: 
 
    int           ReadHeaderInfo(); 
}; 
 
 
#endif