📄 playeradapter.cpp
字号:
// Copyright (c) 2003, Nokia Mobile Phones. All rights reserved.
#include <eikmenup.h>
#include "sound.pan"
#include "sound.hrh"
#include "playeradapter.h"
#include "soundappui.h"
// Identifying string for this audio utility
_LIT(KAudioPlayer, "Player");
CPlayerAdapter::CPlayerAdapter(CSoundAppUi& aAppUi) :
iState(ENotReady),
iAppUi(aAppUi)
{
// No implementation required
}
CPlayerAdapter* CPlayerAdapter::NewL(const TDesC& aFileName, CSoundAppUi& aAppUi)
{
CPlayerAdapter* self = NewLC(aFileName, aAppUi);
CleanupStack::Pop(self);
return self;
}
CPlayerAdapter* CPlayerAdapter::NewLC(const TDesC& aFileName, CSoundAppUi& aAppUi)
{
CPlayerAdapter* self = new (ELeave) CPlayerAdapter(aAppUi);
CleanupStack::PushL(self);
self->ConstructL(aFileName);
return self;
}
void CPlayerAdapter::ConstructL(const TDesC& aFileName)
{
// Create an audio player utility instance for playing sample data from a file,
// causes MMdaAudioPlayerCallback::MapcInitComplete to be called
iMdaAudioPlayerUtility = CMdaAudioPlayerUtility::NewFilePlayerL(aFileName, *this);
}
CPlayerAdapter::~CPlayerAdapter()
{
delete iMdaAudioPlayerUtility;
iMdaAudioPlayerUtility = NULL;
}
void CPlayerAdapter::UpdateMenuL(CEikMenuPane* aMenuPane)
{
aMenuPane->SetItemDimmed(ESoundCmdPlay, ETrue);
aMenuPane->SetItemDimmed(ESoundCmdRecord, ETrue);
aMenuPane->SetItemDimmed(ESoundCmdStop, ETrue);
aMenuPane->SetItemDimmed(ESoundCmdChange, ETrue);
switch (iState)
{
case ENotReady:
aMenuPane->SetItemDimmed(ESoundCmdChange, EFalse);
break;
case EReadyToPlay:
aMenuPane->SetItemDimmed(ESoundCmdPlay, EFalse);
aMenuPane->SetItemDimmed(ESoundCmdChange, EFalse);
break;
case EPlaying:
aMenuPane->SetItemDimmed(ESoundCmdStop, EFalse);
break;
default:
User::Panic(KPlayerAdapter, KSoundPanicInvalidMdaState);
break;
}
}
void CPlayerAdapter::PlayL()
{
iMdaAudioPlayerUtility->Play();
iState = EPlaying;
}
void CPlayerAdapter::RecordL()
{
// No implementation required
}
void CPlayerAdapter::StopL()
{
iMdaAudioPlayerUtility->Stop();
iState = EReadyToPlay;
}
const TDesC& CPlayerAdapter::Identify()
{
return KAudioPlayer;
}
void CPlayerAdapter::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
{
iState = aError ? ENotReady : EReadyToPlay;
}
void CPlayerAdapter::MapcPlayComplete(TInt aError)
{
iState = aError ? ENotReady : EReadyToPlay;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -