【VC开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。网学会员整理了VC开源代码-AudioDecoder.cpp的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
/**************************************************************************************
* *
* *
**************************************************************************************/
#include "AudioDecoder.h"
MediaAudioDecoder::MediaAudioDecoder()
{
this->acmDecoder = new MediaAudioDecoderACM();
this->mp3Decoder = new MediaAudioDecoderMP3();
this->decoder = NULL;
}
MediaAudioDecoder::~MediaAudioDecoder()
{
delete this->acmDecoder;
delete this->mp3Decoder;
}
media_type_t MediaAudioDecoder::GetType()
{
return MEDIA_TYPE_AUDIO_DECODER;
}
char *MediaAudioDecoder::GetName()
{
if(this->decoder)
return this->decoder->GetName();
return "Audio Decoder Wrapper";
}
MP_RESULT MediaAudioDecoder::Connect(MediaItem *item)
{
if(this->acmDecoder->Connect(item) == MP_RESULT_OK) {
this->decoder = (MediaItemAudioDecoder *) this->acmDecoder;
return MP_RESULT_OK;
}
if(this->mp3Decoder->Connect(item) == MP_RESULT_OK) {
this->decoder = (MediaItemAudioDecoder *) this->mp3Decoder;
return MP_RESULT_OK;
}
return MP_RESULT_ERROR;
}
MP_RESULT MediaAudioDecoder::ReleaseConnections()
{
if(this->decoder) {
this->decoder->ReleaseConnections();
}
this->decoder = NULL;
return MP_RESULT_OK;
}
DWORD MediaAudioDecoder::GetCaps()
{
return 0;
}
MP_RESULT MediaAudioDecoder::Configure(HINSTANCE hInstance, HWND hwnd)
{
return MP_RESULT_ERROR;
}
WAVEFORMATEX *MediaAudioDecoder::GetAudioFormat()
{
if(this->decoder)
return this->decoder->GetAudioFormat();
return NULL;
}
MP_RESULT MediaAudioDecoder::EmptyAudioBuffer()
{
if(this->decoder)
return this->decoder->EmptyAudioBuffer();
return MP_RESULT_ERROR;
}
unsigned int MediaAudioDecoder::Decompress(void *buffer, unsigned int size)
{
if(this->decoder)
return this->decoder->Decompress(buffer, size);
return 0;
}