smbmusicapmainplayerfiltersyncservercontroller.cpp
来自「symbian」· C++ 代码 · 共 2,061 行 · 第 1/5 页
CPP
2,061 行
/* Copyright (C) 2006-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerFilterSyncServerController.cpp
//
// Description:
// CSmbMusicAPMainPlayerFilterSyncServerController class source.
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/08/04 |SDNA 壀嶳 | 怴婯嶌惉
//2006/09/01 |SDNA 壀嶳 | 僉儍儞僙儖帪偺Remove懳徾偑0屌掕偵側偭偰偄偨偨傔丄廋惓乮TRK8003乯
//2006/09/01 |SDNA 壀嶳 | 嶍彍傪偡傞嵺偺僆僼僙僢僩曄悢偑娫堘偭偰偄偨偨傔丄廋惓
//2006/09/07 |SDNA 壀嶳 | 梫媮尦暿偵張棟傪幚峴偱偒傞傛偆偵廋惓
//2006/09/11 |SDNA 彫椦 | GetImageCount()傪捛壛
//2006/09/25 |SDNA 彫椦 | ConvertImage()傪捛壛
//2007/04/11 |SEMCJ暯壀 | PTX-824懳墳
//2007/05/17 |SEMCJ暯壀 | UIQ-1535懳墳
#include <f32file.h>
#include <FjAfEnv.h>
#ifndef __SMBMUSICAPMAINPLAYERUTILITY_H__
#include "SmbMusicAPMainPlayerUtility.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERAPPUI_H__
#include "SmbMusicAPMainPlayerAppUi.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERSYNCSERVERCONTROLLER_H__
#include "SmbMusicAPMainPlayerFilterSyncServerController.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERFILTERSYNCSERVERPROCESS_H__
#include "SmbMusicAPMainPlayerFilterSyncServerProcess.h"
#endif
SEMCJ_NAMESPACE_BEGIN
/**
* 僋儔僗偺惗惉
*
* @param[in] aEngine 摨婜僄儞僕儞
*/
CSmbMusicAPMainPlayerFilterSyncServerController* CSmbMusicAPMainPlayerFilterSyncServerController::NewL(CSmbMusicAPSyncEngine& aEngine)
{
CSmbMusicAPMainPlayerFilterSyncServerController* self = new(ELeave) CSmbMusicAPMainPlayerFilterSyncServerController(aEngine);
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop();// self
return self;
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPMainPlayerFilterSyncServerController::~CSmbMusicAPMainPlayerFilterSyncServerController()
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 00;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::~CSmbMusicAPMainPlayerFilterSyncServerController() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//摨婜僄儞僕儞偺僆僽僓乕僶偐傜帺暘帺恎傪夝彍偡傞
iEngine.RemoveEngineObserver(this);
delete iImageFunc;
iContentsObserver.Close();
iSyncObserver.Close();
//2006.10.03 傾僋僥傿僽僼僅乕僇僗懳墳
iPlayerObserver.Close();
iEachControllers.ResetAndDestroy();
iEachControllers.Close();
}
/**
* 摨婜僒乕僶捠抦僆僽僓乕僶偺搊榐(僐儞僥儞僣宯)
*
* @param[in] aObserver 儌僨儖僆僽僓乕僶億僀儞僞
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerNotifyContentsObserver(MSmbMusicAPMainPlayerSyncServerNotifyContentsObserver* aObserver)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 10;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerNotifyContentsObserver() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
TInt error = iContentsObserver.Append(aObserver);
if(KErrNone != error)
{
TInt code = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 11;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerContentsNotifyObserver() AppendL() Leave :%d !");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, code, ELogLevelHighest, KLogFmt, error);
PANIC(9100010);
}
}
/**
* 摨婜僒乕僶捠抦僆僽僓乕僶偺搊榐(摨婜宯)
*
* @param[in] aObserver 儌僨儖僆僽僓乕僶億僀儞僞
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerNotifySyncObserver(MSmbMusicAPMainPlayerSyncServerNotifySyncObserver* aObserver)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 15;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerNotifySyncObserver() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
TInt error = iSyncObserver.Append(aObserver);
if(KErrNone != error)
{
TInt code = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 16;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerSyncNotifyObserver() AppendL() Leave :%d !");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, code, ELogLevelHighest, KLogFmt, error);
PANIC(9100011);
}
}
//2006.10.03 傾僋僥傿僽僼僅乕僇僗懳墳
/**
* 摨婜僒乕僶捠抦僆僽僓乕僶偺搊榐(嵞惗宯)
*
* @param[in] aObserver 儌僨儖僆僽僓乕僶億僀儞僞
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerNotifyPlayerObserver(MSmbMusicAPMainPlayerSyncServerNotifyPlayerObserver* aObserver)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 15;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerPlayerSyncObserver() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
TInt error = iPlayerObserver.Append(aObserver);
if(KErrNone != error)
{
TInt code = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 16;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::SetSyncServerPlayerSyncObserver() AppendL() Leave :%d !");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, code, ELogLevelHighest, KLogFmt, error);
PANIC(9100012);
}
}
/**
* 摨婜僒乕僶捠抦僆僽僓乕僶偺夝彍(僐儞僥儞僣宯)
*
* @param[in] aObserver 儌僨儖僆僽僓乕僶億僀儞僞
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::RemoveSyncServerNotifyContentsObserver(MSmbMusicAPMainPlayerSyncServerNotifyContentsObserver* aObserver)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 20;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::RemoveSyncServerNotifyContentsObserver() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
TInt count = iContentsObserver.Count();
for(TInt i=0; i<count; i++)
{
if(iContentsObserver[i] == aObserver)
{
iContentsObserver.Remove(i);
break;
}
}
}
/**
* 摨婜僒乕僶捠抦僆僽僓乕僶偺夝彍(摨婜宯)
*
* @param[in] aObserver 儌僨儖僆僽僓乕僶億僀儞僞
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::RemoveSyncServerNotifySyncObserver(MSmbMusicAPMainPlayerSyncServerNotifySyncObserver* aObserver)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 20;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::RemoveSyncServerNotifySyncObserver() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
TInt count = iSyncObserver.Count();
for(TInt i=0; i<count; i++)
{
if(iSyncObserver[i] == aObserver)
{
iSyncObserver.Remove(i);
break;
}
}
}
//2006.10.03 傾僋僥傿僽僼僅乕僇僗
/**
* 摨婜僒乕僶捠抦僆僽僓乕僶偺夝彍(嵞惗宯)
*
* @param[in] aObserver 儌僨儖僆僽僓乕僶億僀儞僞
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::RemoveSyncServerNotifyPlayerObserver(MSmbMusicAPMainPlayerSyncServerNotifyPlayerObserver* aObserver)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 20;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::RemoveSyncServerNotifyPlayerObserver() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
TInt count = iPlayerObserver.Count();
for(TInt i=0; i<count; i++)
{
if(iPlayerObserver[i] == aObserver)
{
iPlayerObserver.Remove(i);
break;
}
}
}
/**
* 旕摨婜梫媮僉儍儞僙儖(慡僉儍儞僙儖)
*
* @param[in] aNotify 梫媮尦偵僉儍儞僙儖捠抦傪峴偆偐偳偆偐
* @return 張棟寢壥(KErrNone:惓忢廔椆丂KErrPermissionDenied:傾僋僙僗尃柍偟)
*/
TInt CSmbMusicAPMainPlayerFilterSyncServerController::CancelAllRequest(TBool aNotify)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 30;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::CancelAllRequest(aNotify:%d) start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, aNotify);
#endif
if(EFalse == iHasSyncServer)
{
//傾僋僙僗尃偑側偄偨傔丄張棟偱偒側偄
return KErrPermissionDenied;
}
iState = EState_Busy;
TInt count = iEachControllers.Count();
for(TInt i=0; i<count; i++)
{
iEachControllers[i]->CancelAllRequest(EFalse);
}
iState = EState_Normal;
return KErrNone;
}
/**
* 旕摨婜梫媮僉儍儞僙儖
*
* @param[in] aId 梫媮ID
* @param[in] aNotify 梫媮尦偵僉儍儞僙儖捠抦傪峴偆偐偳偆偐
* @return 張棟寢壥(KErrNone:惓忢廔椆丂KErrPermissionDenied:傾僋僙僗尃柍偟 KErrNotFound:奩摉梫媮柍偟)
*/
TInt CSmbMusicAPMainPlayerFilterSyncServerController::CancelRequest(TInt aId, TBool aNotify)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 40;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::CancelRequest(aId:0x08%x, aNotify:%d) start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt, aId, aNotify);
#endif
if(EFalse == iHasSyncServer)
{
//傾僋僙僗尃偑側偄偨傔丄張棟偱偒側偄
return KErrPermissionDenied;
}
iState = EState_Busy;
TInt ret = KErrNotFound;
if(EFalse == iEnd)
{
TInt count = iEachControllers.Count();
for(TInt i=0; i<count; i++)
{
if(KErrNone == iEachControllers[i]->CancelRequest(aId, aNotify))
{
StartNextService();
ret = KErrNone;
break;
}
}
}
iState = EState_Normal;
return ret;
}
/**
* 摨婜僒乕僶傾僋僙僗儔僀僙儞僗愝掕曄峏張棟
*
* @param[in] aLicense 儔僀僙儞僗偺桳柍(ETrue:儔僀僙儞僗桳丄EFalse:儔僀僙儞僗柍)
* @return 張棟寢壥(ETrue:曄峏姰椆丄EFalse:曄峏晄壜)
*/
TBool CSmbMusicAPMainPlayerFilterSyncServerController::ChangeAccessLicense(TBool aLicense)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 50;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::ChangeAccessLicense(aLicense:%d) start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt,aLicense);
#endif
if(EState_Normal == iState)
{
iHasSyncServer = aLicense;
return ETrue;
}
else
{
return EFalse;
}
}
/**
* 夋柺曄峏捠抦
*
* @param[in] aInfo 夋柺忣曬
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::UpdateDisplayInfo(const TSmbMusicAPSyncEngineAppSyncInfo& aInfo)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 60;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::UpdateDisplayInfo() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
TInt result = iEngine.UpdateDisplayInfo(aInfo);
if(KErrServerTerminated == result)
{
StartAppExit();
}
}
/**
* 僐儞僥儞僣宯僀儀儞僩捠抦
*
* @param[in] aEvent 僐儞僥儞僣宯僀儀儞僩
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::HandleContentsEventL(TSmbMusicAPSyncEngineContentsEvent& aEvent)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 70;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::HandleContentsEventL() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//僀儀儞僩偺捠抦傪峴偆
for(TInt i = 0 ; i < iContentsObserver.Count(); i++)
{
iContentsObserver[i]->NotifyContentsEventL(aEvent);
}
}
/**
* 摨婜宯僀儀儞僩捠抦
*
* @param[in] aEvent 摨婜宯僀儀儞僩
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::HandleSyncEventL(TSmbMusicAPSyncEngineSyncEvent& aEvent)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 70;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::HandleContentsEventL() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//僀儀儞僩偺捠抦傪峴偆
for(TInt i = 0 ; i < iSyncObserver.Count(); i++)
{
iSyncObserver[i]->NotifySyncEventL(aEvent);
}
}
//2006.10.03 傾僋僥傿僽僼僅乕僇僗懳墳
/**
* 嵞惗宯僀儀儞僩捠抦
*
* @param[in] aEvent 嵞惗宯僀儀儞僩
*/
void CSmbMusicAPMainPlayerFilterSyncServerController::HandlePlayerEventL(TSmbMusicAPSyncEnginePlayerEvent& aEvent)
{
#ifdef __DEBUG_LOG_MAINPLAYER__
TInt logCode = CLASS_CODE_CSmbMusicAPMainPlayerFilterSyncServerController | 70;
_LIT(KLogFmt, "CSmbMusicAPMainPlayerFilterSyncServerController::HandlePlayerEventL() start.");
SmbMusicAPMainPlayerUtility::OutputLog(iLog, logCode, ELogLevelNormal, KLogFmt);
#endif
//僀儀儞僩偺捠抦傪峴偆
for(TInt i = 0 ; i < iPlayerObserver.Count(); i++)
{
iPlayerObserver[i]->NotifyPlayerEventL(aEvent);
}
}
//-------------------------------------------------------------------------摨婜宯張棟-------------------------------------------------------------------------
/**
* 儗僕儏乕儉忣曬庢摼
*
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?