📄 smbmusicapsingleplayerrsccontroller.cpp
字号:
TInt index(FindByExternalId(aRsc));
TSmbRscMgrRscPriority item;
item.iPriority = iResourceStates[index].iPriority;
item.iRscId = iResourceStates[index].iRscMgrRsc;
iPriorityList->AppendL(item);
}
/**
* 堦帪掆巭帪偺儕僜乕僗奐曻張棟
*
* @param 側偟
* @return TBool丂EFalse:壒惡僷僗傪庢摼偟偰偄側偄/ETrue:奐曻捠抦傪偁偘偨
*/
// Pause帪偵奐曻偡傞儕僜乕僗:壒惡僷僗丒BG儕僜乕僗
TBool CSmbMusicAPSinglePlayerRscController::ReleaseRscForPauseL()
{
if(EFalse == IsAllocatedAudioPath() && EFalse == IsAllocatedMusicBG()) //MOD FOR D_82400007238乮BG儕僜乕僗庢摼傪AND偱捛壛乯
{
return EFalse;
}
iPrepareReleaseRsc.Reset();
//For D_82400007238 儕僜乕僗傪庢摼偟偰偄傞偐偳偆偐偺敾掕傪捛壛
//ADD-S D_82400007238
if(EFalse != IsAllocatedAudioPath())
{
//ADD-E D_82400007238
iPrepareReleaseRsc.Append(ESmbRscMgrRscAudioPathCtrl);
//ADD-S D_82400007238
}
if(EFalse != IsAllocatedMusicBG())
{
//ADD-E D_82400007238
iPrepareReleaseRsc.Append(ESmbRscMgrRscMusicBG); // 壒惡僷僗偲摨帪偵埖偆
//ADD-S D_82400007238
#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
iPrepareReleaseRsc.Append(ESmbRscMgrRscRtMultimedia);
#endif
}
//ADD-E _82400007238
ReleaseResourceNotifyL();
return ETrue;
}
/**
* 儐乕僓乕妋擣帪偺儕僜乕僗奐曻張棟
*
* @memo BG儕僜乕僗偼庢摼偟偨傑傑丄壒惡僷僗儕僜乕僗偺傒傪奐曻偡傞
* ADD For D_82400007238
* @param 側偟
* @return TBool EFalse:壒惡僷僗傪庢摼偟偰偄側偄/ETrue:奐曻捠抦傪偁偘偨
*/
TBool CSmbMusicAPSinglePlayerRscController::ReleaseRscForUserConfirmL()
{
if(EFalse == IsAllocatedAudioPath())
{
return EFalse;
}
iPrepareReleaseRsc.Reset();
if(EFalse != IsAllocatedAudioPath())
{
iPrepareReleaseRsc.Append(ESmbRscMgrRscAudioPathCtrl);
}
ReleaseResourceNotifyL();
return ETrue;
}
/**
* 庢摼偟偰偄傞儕僜乕僗傪偡傋偰奐曻(奐曻偵昁梫側壓弨旛(Disconnect摍)傪廔偊偰偐傜屇傇)
*
* @param 側偟
* @return TBool EFalse:儕僜乕僗傪庢摼偟偰偄側偐偭偨/ETrue:奐曻捠抦傪偁偘偨
*/
TBool CSmbMusicAPSinglePlayerRscController::ReleaseRscForExitPlayer()
{
if(EFalse == IsAllocatedAudioPath() && EFalse == IsAllocatedMWPlayerControl() && EFalse == IsAllocatedMusicBG()) //MOD For D_82400007238(BG儕僜乕僗偺敾掕傪捛壛)
{
return EFalse;
}
iPrepareReleaseRsc.Reset();
if(EFalse != IsAllocatedAudioPath())
{
iPrepareReleaseRsc.Append(ESmbRscMgrRscAudioPathCtrl);
//DEL-S D_82400007238
// iPrepareReleaseRsc.Append(ESmbRscMgrRscMusicBG); //壒惡僷僗偲摨帪偵埖偆
//DEL-E D_82400007238
}
//ADD-S D_82400007238
if(EFalse != IsAllocatedMusicBG())
{
iPrepareReleaseRsc.Append(ESmbRscMgrRscMusicBG);
#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
iPrepareReleaseRsc.Append(ESmbRscMgrRscRtMultimedia);
#endif
}
//ADD-E D_82400007238
if(EFalse != IsAllocatedMWPlayerControl())
{
iPrepareReleaseRsc.Append(ESmbRscMgrRscMusicMW);
}
ReleaseResourceNotifyL();
return ETrue;
}
/**
* 壒惡僷僗儕僜乕僗偑庢摼偱偒偰偄傞偐偳偆偐
*
* @param 側偟
* @return TBool EFalse:壒惡僷僗儕僜乕僗傪庢摼偟偰偄側偄/ETrue:壒惡僷僗儕僜乕僗傪庢摼嵪
*/
TBool CSmbMusicAPSinglePlayerRscController::IsAllocatedAudioPath() const
{
return IsAllocatedResource(ESmbRscMgrRscAudioPathCtrl);
}
/**
* MW僾儗僀儎乕惂屼偑庢摼偱偒偰偄傞偐偳偆偐
*
* @param 側偟
* @return TBool EFalse:MW僾儗僀儎乕惂屼傪庢摼偟偰偄側偄/MW僾儗僀儎乕惂屼傪庢摼嵪
*/
TBool CSmbMusicAPSinglePlayerRscController::IsAllocatedMWPlayerControl() const
{
return IsAllocatedResource(ESmbRscMgrRscMusicMW);
}
/**
* MusicBG儕僜乕僗傪庢摼偟偰偄傞偐偳偆偐
*
* @memo ADD-S D_82400007238
* @param 側偟
* @return TBool EFalse:MusicBG儕僜乕僗傪庢摼偟偰偄側偄/ETrue:MusicBG儕僜乕僗傪庢摼偟偰偄傞
*/
TBool CSmbMusicAPSinglePlayerRscController::IsAllocatedMusicBG() const
{
return IsAllocatedResource(ESmbRscMgrRscMusicBG);
}
/**
* 儕僜乕僗傪偡傋偰庢摼偟偰偄傞偐偳偆偐
*
* @return TBool 偡傋偰庢摼嵪
* @param丂側偟
*/
TBool CSmbMusicAPSinglePlayerRscController::IsAllocatedAllResource() const
{
return (EFalse != IsAllocatedAudioPath() && EFalse != IsAllocatedMWPlayerControl() && EFalse != IsAllocatedMusicBG()); //MOD For D_82400007238(BGRsc捛壛)
}
/**
* 壗偐儕僜乕僗傪庢摼偟偰偄傞偐偳偆偐
*
* @return TBool
* @param 側偟
*/
TBool CSmbMusicAPSinglePlayerRscController::IsAllocatedSomeResource() const
{
return (EFalse != IsAllocatedAudioPath() || EFalse != IsAllocatedMWPlayerControl() || EFalse != IsAllocatedMusicBG()); //MOD For D_82400007238丂BGRSC捛壛
}
////////////////////private//////////////////////
////惗惉/徚柵
// 儕僜乕僗偺奐曻忬懺傪愝掕偡傞
/**
* 僐儞僗僩儔僋僞
*
* @param 側偟
*/
CSmbMusicAPSinglePlayerRscController::CSmbMusicAPSinglePlayerRscController()
{
}
/**
* 2nd僐儞僗僩儔僋僞
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerRscController::ConstructL()
{
iRscClient = CSmbRscMgrRscClient::NewL(this, this);
iAllocatedResultRscList = new(ELeave)CArrayFixFlat<TSmbRscMgrRscAllocId>(KSmbRscMgrAppRscListMax);
iPriorityList = new(ELeave)CArrayFixFlat<TSmbRscMgrRscPriority>(KNumberOfRsc);
TResourceAllocatedState resourceMW(EMWPlayer,ESmbRscMgrRscMusicMW,KSmbRscMgrRscPriorityValueNormal,EFalse);
iResourceStates.AppendL(resourceMW);
TResourceAllocatedState resourceBG(EMusicBG,ESmbRscMgrRscMusicBG,KSmbRscMgrRscPriorityValueHigh,EFalse);
iResourceStates.AppendL(resourceBG);
TResourceAllocatedState resourceAudio(EAudioRouting,ESmbRscMgrRscAudioPathCtrl,KSmbRscMgrRscPriorityValueNormalHigh,EFalse);
iResourceStates.AppendL(resourceAudio);
#ifdef __SMBMUSICAP_DESABLE_SUPERDUKE__
TResourceAllocatedState resourceMultimedia(EMultimedia,ESmbRscMgrRscRtMultimedia,KSmbRscMgrRscPriorityValueNormalHigh,EFalse);
iResourceStates.AppendL(resourceMultimedia);
#endif
}
/**
* 儕僜乕僗妉摼嵪傒僐儞僥僫偐傜internal儕僜乕僗ID傪専嶕偡傞
*
* @memo 枹巊梡偺偨傔嶍彍
* @param TSmbMusicAPSinglePlayerResource aResourceId 堦嬋嵞惗僾儗僀儎乕撪儕僜乕僗ID
* @return the index of allocated resource container
*/
/*
TInt CSmbMusicAPSinglePlayerRscController::FindByInternalId(TSmbMusicAPSinglePlayerResource aResourceId) const
{
TInt index(-1);
for (TInt i = 0; i < iResourceStates.Count(); i++)
{
if (iResourceStates[i].iResourceId == aResourceId)
{
index = i;
break;
}
}
ASSERT(index != -1);
return index;
}
*/
/**
* 儕僜乕僗妉摼嵪傒僐儞僥僫偐傜嫞崌僼儗乕儉儚乕僋掕媊儕僜乕僗ID傪専嶕偡傞
*
* @param TSmbRscMgrRsc aRscMgrRsc 嫞崌僼儗乕儉儚乕僋掕媊儕僜乕僗ID
* @return the index of allocated resource container
*/
TInt CSmbMusicAPSinglePlayerRscController::FindByExternalId(TSmbRscMgrRsc aRscMgrRsc) const
{
TInt index(-1);
for (TInt i = 0; i < iResourceStates.Count(); i++)
{
if (iResourceStates[i].iRscMgrRsc == aRscMgrRsc)
{
index = i;
break;
}
}
ASSERT(index != -1);
return index;
}
/**
* 妉摼偟偨儕僜乕僗傪儕僜乕僗僗僥乕僩娗棟偵搊榐偡傞
*
* @param 側偟
* @return void
*/
void CSmbMusicAPSinglePlayerRscController::SetAllocatedResourceState(TInt aIndex)
{
iResourceStates[aIndex].SetAlloctedState();
}
/**
* 僼儕乕偟偨儕僜乕僗傪儕僜乕僗僗僥乕僩娗棟偵搊榐偡傞
*
* @param TInt aIndex 僗僥乕僩傪搊榐偡傞儕僜乕僗偺Index
* @return void
*/
void CSmbMusicAPSinglePlayerRscController::SetFreeResourceState(TInt aIndex)
{
iResourceStates[aIndex].SetFreeState();
}
/**
* 昁梫側儕僜乕僗偑妉摼嵪傒偐偳偆偐傪挷傋傞
*
* @param none
* @return ETrue if the all resource is allocated, EFalse otherwize.
*/
TBool CSmbMusicAPSinglePlayerRscController::IsAllocatedResource(TSmbRscMgrRsc aRscMgrRsc) const
{
TBool isAllocatedResource(EFalse);
for (TInt i = 0; i < iResourceStates.Count(); i++)
{
if (aRscMgrRsc == iResourceStates[i].iRscMgrRsc
&& EFalse == iResourceStates[i].IsFreeState())
{
isAllocatedResource = ETrue;
break;
}
}
return isAllocatedResource;
}
/**
* 壒惡僷僗儕僜乕僗偺庢摼妋擣傪峴傢側偔偰偼偄偗側偄偐偳偆偐傪挷傋傞
*
* @memo DTV偑尰忬壒惡僷僗儕僜乕僗傪庢摼偟偰偄傞応崌偼丄梫妋擣傪曉媝偡傞
* @param 側偟
* @return TBool EFalse:妋擣晄梫/ETrue:梫妋擣
*/
TBool CSmbMusicAPSinglePlayerRscController::IsConfirmRequestAudioRoutingL()
{
TBool ret(EFalse);
#ifndef __DTV_OFF__ // DELETE Start PTX825 CQ-TRK D_82400013806
//TODO!!!!!!!!!!!!!!! DTV偑庢偭偰偄傞BG儕僜乕僗偺柤慜
TBool isUsing;
TUint priority;
CArrayFixFlat<TUid>* uidList = new(ELeave)CArrayFixFlat<TUid>(KSmbRscMgrRscUidListMax);
CleanupStack::PushL(uidList);
TSmbRscMgrRes err = iRscClient->GetResourceAllocationStatusL(ESmbRscMgrRscMusicBG_forBGApp, isUsing, uidList, priority);
if(ESmbRscMgrResultOK == err)
{
if(EFalse != isUsing)
{
for(TInt i = 0; i < uidList->Count(); i++)
{
//TODO!!!!!!!! Uid
if(KSmbDTVAppUid == uidList->At(i))
{
ret = ETrue;
break;
}
}
}
}
else
{
SmbMusicAPSinglePlayerLog::OutputLog(KRscControl, ERscControl, ELogLevelNormal,_L("GetResourceAllocationStatusL ResultNG"));
}
CleanupStack::PopAndDestroy(uidList);
#endif // DELETE End PTX825 CQ-TRK D_82400013806
return ret;
}
SEMCJ_NAMESPACE_END
// end of SmbMusicAPSinglePlayerRscController.cpp
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -