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