93 lines
2.0 KiB
C++
93 lines
2.0 KiB
C++
/* $Header: /cvs/root/winamp/vlb/audio_io.h,v 1.1 2009/04/28 20:21:07 audiodsp Exp $ */
|
|
|
|
/***************************************************************************\
|
|
*
|
|
* Copyright 2000-2002 Dolby Laboratories, Inc. All Rights
|
|
* Reserved. Do not copy. Do not distribute.
|
|
* Confidential information.
|
|
*
|
|
* (C) copyright Fraunhofer - IIS (1998)
|
|
* All Rights Reserved
|
|
*
|
|
* filename: audio_io.h
|
|
* project : MPEG-2 AAC Decoder
|
|
* contents/description: Audio i/o header file
|
|
*
|
|
\***************************************************************************/
|
|
|
|
#include <stdlib.h>
|
|
|
|
//Base Audio Device Errors:
|
|
#ifndef AUDIO_ERROR
|
|
#define AUDIO_ERROR
|
|
|
|
#define AUDIO_ERROR_NONE 0
|
|
#define AUDIO_ERROR_ENDOF 1
|
|
#define AUDIO_ERROR_NO_DEVICE -1
|
|
#define AUDIO_ERROR_DEVICE_FAIL -2
|
|
|
|
#endif
|
|
//Known Audio Formats:
|
|
#ifndef AUDIO_FORMAT
|
|
#define AUDIO_FORMAT
|
|
|
|
#define AUDIO_FORMAT_PRIVATE 0
|
|
#define AUDIO_FORMAT_WAV 1
|
|
#define AUDIO_FORMAT_AU 2
|
|
#define AUDIO_FORMAT_IMA_ADPCM 3
|
|
#define AUDIO_FORMAT_WAVMAPPING 4
|
|
#define AUDIO_FORMAT_DIRECTSOUND 5
|
|
#define AUDIO_FORMAT_CD_AUDIO 6
|
|
|
|
#define AUDIO_FORMAT_GENERIC_FILE 97
|
|
#define AUDIO_FORMAT_UNKNOWN 100
|
|
|
|
#endif
|
|
|
|
//Audio Format Info Structure:
|
|
#ifndef AUDIO_FORMAT_INFO
|
|
#define AUDIO_FORMAT_INFO
|
|
|
|
#define AUDIO_INPUT 0
|
|
#define AUDIO_OUTPUT 1
|
|
|
|
class AUDIO_FORMATINFO{
|
|
public:
|
|
unsigned int uiSampleRate;
|
|
unsigned char ucNChannels;
|
|
};
|
|
|
|
#endif
|
|
|
|
#ifndef AUDIO_IO_CONTROL
|
|
#define AUDIO_IO_CONTROL
|
|
|
|
class AudioIOControl{
|
|
private:
|
|
AUDIO_FORMATINFO *psFormatInfo;
|
|
public:
|
|
AudioIOControl();
|
|
AudioIOControl(AudioIOControl&);
|
|
AudioIOControl(int _iNChannels, unsigned int _uiSampleRate);
|
|
~AudioIOControl();
|
|
|
|
virtual AudioIOControl& operator=(AudioIOControl&);
|
|
|
|
virtual int SetFormatInfo(AUDIO_FORMATINFO*);
|
|
|
|
const AUDIO_FORMATINFO *GetFormatInfo() const;
|
|
|
|
//virtual int IO(unsigned char**,int)=0;
|
|
//virtual int IO(short**,int)=0;
|
|
virtual int IO(float**,int)=0;
|
|
|
|
protected:
|
|
int iError;
|
|
short *pshOutBuf;
|
|
};
|
|
|
|
#endif /* AUDIO_IO_CONTROL */
|
|
|
|
|
|
|