smbmusicapmainplayersettingview.cpp

来自「symbian」· C++ 代码 · 共 1,238 行 · 第 1/3 页

CPP
1,238
字号
/* Copyright (C) 2005-2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
//	SmbMusicAPMainPlayerSettingView.cpp
//
// Description:
//	儈儏乕僕僢僋儊僀儞僾儗僀儎
//	儈儏乕僕僢僋愝掕夋柺價儏乕僋儔僗
/*-------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅				|曄峏幰			|撪梕
//---------------------------------------------------------------------------
//2006/06/05		|SEMCJ嶳壀		|怴婯嶌惉
//2006/06/09		|SEMCJ嶳壀		|儊僀儞僾儗僀儎婎杮晹偲寢崌
//2006/07/06		|SDNA 嶳壀		| 儕僙僢僩張棟廋惓
//2006/08/03		|K3戝嫶			|抂枛奐暵傪捠抦偡傞僀儞僞僼僃乕僗傪捛壛
//2006/08/31		|SDNA 彫椦		|TRK6657,6899,7630懳墳
//2006/09/07		|K3戝嫶			|HandleBatteryLowPauseL()偑曉傝抣傪曉偡傛偆偵奼挘偝傟偨偙偲偵懳墳
//2006/09/13		|K3戝嫶			|PreparePlay拞偺掅揹埑嬋掆巭偵懳墳偡傞偨傔丄僀儞僞僼僃乕僗偑奼挘偝傟偨偙偲偵懳墳
//2006/09/23		|SDNA 彫椦		|儃儕儏乕儉偑AVLS嵟戝抣傛傝傕戝偒偄帪偵AVLS傪ON偵偟偨偲偒偺晄嬶崌懳墳(TRK9532懳墳)
//2006/12/11		|SEMCJ嬥岝		|TRK12570懳墳
//2007/07/20		|SEMCJ暯壀		|D_82400005871懳墳
//2007/08/10		|SEMCJ暯壀		|D_82400008841懳墳
//PTX825
//2007/10/03		|SDNA 彑枔		|D_82400011770懳墳丂乽愝掕儕僙僢僩乿敿婸搙昤夋懳墳

#include "SmbMusicAPMainPlayerSettingView.h"

#include <fjlacommon.h>
#include <FJWcdmaMpKeys.h>
#include <FjAfVerticalLayout.h>
#include <FJTSUIPassword.h>
#include <SkonTextLabel.h>
#include <SkonCommandBox.h>
#include <SkonCommandLabel.h>
#include <SkonCompoundSettingLabel.h>
#include <SkonCompoundEditingLabel.h>
#include <SkonVerticalContainer.h>
#include <SkonListDropdown.h>
#include <SkonVerticalContainer.h>
#include <SkonTitleBar.h>

#include <SmbMusicAPMainPlayerExternalInterface.h>
#include "SmbMusicAPMainPlayerAppUi.h"
#include <e32debug.h>

#include <SmbMusicAPSongInfoExternalInterface.h>

#include <SmbMusicAPMainPlayer.rsg>
#include "SmbMusicAPMainPlayer.hrh"
#include "SmbMusicAPMainPlayerSettingView.hrh"

#include <FjAfEnv.h>
#include "SmbMusicAPMainPlayerUtility.h"

USING_NAMESPACE_DCM
SEMCJ_NAMESPACE_BEGIN

//儃儕儏乕儉偑AVLS偺儕儈僢僩傪墇傞応崌偵丄儃儕儏乕儉傪愝掕偡傞
#define KSettingRequestSetAVLSWithVolume			ESettingRequestSetVolume

///////////////////////////////////////////////////////////////////////////////
/**
 * 儈儏乕僕僢僋愝掕夋柺峔抸梡僷儔儊乕僞
 */
const TAfViewParam KSmbMusicAPMainPlayerSettingViewParam =
	{
	ESmbMusicAPMainPlayerSettingViewId,			// 價儏乕俬俢
	0,											// 僞僀僩儖
	R_MUSIC_MAINPLAYER_SETTING_KEYGUIDANCE		// 僉乕僈僀僟儞僗儕僜乕僗
	};

/**
 * 僀儞僗僞儞僗惗惉
 *
 * @param[in]		aPlayerEnv				儊僀儞僾儗僀儎婎杮晹娐嫬僋儔僗
 * @param[in]		aSyncEngine				摨婜僒乕僶I/F僋儔僗
 * @return									儈儏乕僕僢僋愝掕夋柺僋儔僗僀儞僗僞儞僗
 */
CSmbMusicAPMainPlayerSettingView* CSmbMusicAPMainPlayerSettingView::NewL(MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine)
	{
    // 僆僽僕僃僋僩傪嶌惉偡傞
	CSmbMusicAPMainPlayerSettingView* self = new(ELeave) CSmbMusicAPMainPlayerSettingView(KSmbMusicAPMainPlayerSettingViewParam, aPlayerEnv, aSyncEngine);

    // 僋儕乕儞僫僢僾僗僞僢僋丗PushL(self)
	CleanupStack::PushL(self);

    // 僐儞僗僩儔僋僞
	self->ConstructL();

    // 僋儕乕儞僫僢僾僗僞僢僋丗Pop(self)
	CleanupStack::Pop();
	return self;
	};

/**
 * 僐儞僗僩儔僋僞
 *
 * @param[in]		aViewParam				夋柺峔抸梡僷儔儊乕僞
 * @param[in]		aPlayerEnv				儊僀儞僾儗僀儎婎杮晹娐嫬僋儔僗
 * @param[in]		aSyncEngine				摨婜僒乕僶I/F僋儔僗
 */
CSmbMusicAPMainPlayerSettingView::CSmbMusicAPMainPlayerSettingView(const TAfViewParam& aViewParam, MSmbMusicAPMainPlayerEnv& aPlayerEnv, CSmbMusicAPSyncEngine& aSyncEngine)
	: CSmbMusicAPMainPlayerViewBase(aViewParam, aPlayerEnv, aSyncEngine)
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::CSmbMusicAPMainPlayerSettingView()");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400000, ELogLevelNormal, KLogFmt);
//ADD-S 2006.08.31 kobayashi
//@@@@@> TRK6657
	iContainer = NULL;
//ADD-E 2006.08.31 kobayashi
//<@@@@@ TRK6657
	}

/**
 * 僨僗僩儔僋僞
 */
CSmbMusicAPMainPlayerSettingView::~CSmbMusicAPMainPlayerSettingView()
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::~CSmbMusicAPMainPlayerSettingView()");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400010, ELogLevelNormal, KLogFmt);

	iSyncModel->RemoveSyncServerNotifySyncObserver(this);

	// 儈儏乕僕僢僋愝掕儌僨儖僋儔僗傪嶍彍偡傞
	delete iMusicSetting;
	}

/**
 * 僙僇儞僪僐儞僗僩儔僋僞
 */
void CSmbMusicAPMainPlayerSettingView::ConstructL()
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::ConstructL()");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400020, ELogLevelNormal, KLogFmt);

	// 儈儏乕僕僢僋愝掕儌僨儖僋儔僗傪惗惉偡傞
	iMusicSetting = CSmbMusicAPMainPlayerSettingModel::NewL(iAfEnv.PropAgent());

	// 摨婜僒乕僶僐儞僩儘乕儔傪庢摼偡傞
	iSyncModel = iPlayerEnv.FilterSyncServerCtrl();
	
	iSyncModel->SetSyncServerNotifySyncObserver(this);
	}

/**
 * 價儏乕僐儞僥僫弶婜壔帪張棟
 */
void CSmbMusicAPMainPlayerSettingView::DoConstructContainerL()
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::DoConstructContainerL()");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400030, ELogLevelNormal, KLogFmt);

	// View 忋偵攝抲偡傞僐儞僩儘乕儖晹昳偺弶婜壔偲 View 傊偺搊榐傪偍偙側偆丅
 	// 僞僀僩儖僶乕傪惗惉偡傞
 	CreateTitleL(R_MUSIC_MAINPLAYER_SETTING_TITLEBAR);
 	
 	// 償傽乕僠僇儖僐儞僥僫傪惗惉偡傞
 	CreateContainerL(R_MUSIC_MAINPLAYER_SETTING_CONTAINER);
 	}

/**
 * 價儏乕傾僋僥傿僽姰椆帪偺僐乕儖僶僢僋娭悢撪張棟
 *
 * @param[in]		aViewId				屇傃弌偟尦價儏乕ID
 * @param[in]		aCustomMessageId	儊僢僙乕僕ID
 * @param[in]		aCust				儊僢僙乕僕僶僢僼傽
 * @leave			res					僼僅乕僇僗愝掕偵幐攕偟偨応崌
 */
void CSmbMusicAPMainPlayerSettingView::DoViewActivatedImplL(const TVwsViewId& /*aViewId*/, TUid aCustomMessageId, const TDesC8& aCustomMessage)
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::DoViewActivatedImplL(%d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400040, ELogLevelNormal, KLogFmt, aCustomMessageId);

	//婲摦僷儔儊乕僞傪僠僃僢僋偡傞
	if(KSmbMusicAPMainPlayerChangeViewMsgUid!=aCustomMessageId)
		{
		return;
		}
	
	// 儊僢僙乕僕僷儔儊乕僞傪撪晹偵僉儍僢僔儏偡傞
	const TLaViewParam* param = reinterpret_cast<const TLaViewParam*>(aCustomMessage.Ptr());
	iStartParam = *param;

	// 僼僅乕僇僗弶婜壔
    // 愭摢偺僐儞僩儘乕儖傪庢摼偡傞
    CSkonCompoundSettingLabel* focusControl = static_cast<CSkonCompoundSettingLabel*>(iContainer->ControlByIndex(0));
	// 僼僅乕僇僗傪愝掕偡傞
// Mod-S PTX-824 D_82400008841懳墳 暯壀 2007.08.10
//	iContainer->SetFocusControl(focusControl);
	iContainer->SetFocusControl(focusControl, ENoDrawNow);
// Mod-E PTX-824 D_82400008841懳墳 暯壀 2007.08.10 
	
	if (EFalse == iPlayerEnv.IsCaseClosedL())
		{
		//僒僽僾儗僀儎乕偵儈儏乕僕僢僋愝掕夋柺偵慗堏偟偨偙偲傪捠抦偡傞
		TSmbMusicAPSyncEngineAppSyncInfo info;
		info.iParam1 = ESmbMusicAPPlayerChangeSettingViewEvent;	//暿夋柺偐傜愝掕夋柺偵慗堏偟偨
		iSyncModel->UpdateDisplayInfo(info);
		}
//ADD-S 2006.08.31 kobayashi
//@@@@@> TRK6657
	//PA偐傜愝掕抣傪撉傒崬傓
//	iMusicSetting->ReadSettingFromPAL();

	//2006.10.02 TRK#8959
    // 僐儞僩儘乕儖偺億僀儞僞傪庢摼偡傞
    CSkonCompoundSettingLabel* compoundSettingLabel = static_cast<CSkonCompoundSettingLabel*>(iContainer->ControlByIndex(ESettingLabelReset));		
	if(NULL!=compoundSettingLabel)
		{
		if(ESmbPGMusicAPPlayerStatePlaying==SmbPGMusic::MusicAPPlayerStateL(iAfEnv.PropAgent()))
			{
			compoundSettingLabel->SetDimmed(ETrue);
			}
		else
			{
			compoundSettingLabel->SetDimmed(EFalse);
			}
//INSERT Start PTX825 CQ-TRK D_82400011770
		compoundSettingLabel->DrawNow();
//INSERT End PTX825 CQ-TRK D_82400011770
		}

	//僪儘僢僾僟僂儞儕僗僩偵抣傪斀塮偡傞
	SetDropDownValues();
// Del-S PTX-824 D_82400005871 暯壀丂2007.07.20
//	iContainer->DrawNow();
// Del-E PTX-824 D_82400005871 暯壀丂2007.07.20
//<@@@@@ TRK6657
//ADD-E 2006.08.31 kobayashi
	}

/**
 * 僉乕僀儀儞僩張棟
 *
 * @param[in]		aKeyEvent		僉乕僀儀儞僩
 * @param[in]		aType			僀儀儞僩僞僀僾
 * @return							僉乕儗僗億儞僗
 */
TKeyResponse CSmbMusicAPMainPlayerSettingView::OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode aType)
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::OfferKeyEventImplL(%d, %d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400050, ELogLevelNormal, KLogFmt, aKeyEvent.iCode, aType);
	
	// 僼僅乕僇僗偟偰偄傞僐儞僩儘乕儖傪庢摼偡傞
	CCoeControl* focusedControl = iContainer->CurrentFocusedControl();
	// 僼僅乕僇僗偟偰偄傞僐儞僩儘乕儖偺僀儞僨僢僋僗斣崋傪庢摼偡傞
	TInt index = iContainer->IndexOfComponentControl(focusedControl);
	
	// 僋儕傾僉乕偱慜夋柺偵傕偳傞
	if (EWcdmaMpKeyClear==aKeyEvent.iCode)
		{
//MOD-S 2006.08.31 kobayashi
//@@@@@> TRK7630
//		iPlayerEnv.BasisPartFuncInterface().ChangeViewL((TSmbMusicAPMainPlayerViewIds)iStartParam.iViewId.iViewUid.iUid, KSmbMusicAPMainPlayerChangeViewMsgUid, KNullDesC8);
//		return EKeyWasConsumed;
		if(ESettingLabelReset==index)//愝掕儕僙僢僩偺応崌
			{
			//慜偺View傊栠傞
			iPlayerEnv.BasisPartFuncInterface().ChangeViewL((TSmbMusicAPMainPlayerViewIds)iStartParam.iViewId.iViewUid.iUid, KSmbMusicAPMainPlayerChangeViewMsgUid, KNullDesC8);
			return EKeyWasConsumed;
			}
		else
			{
			// CompoundSettingLabel傪庢摼偡傞
			CSkonCompoundSettingLabel* settingLabel = static_cast<CSkonCompoundSettingLabel*>(iContainer->ControlByIndex(index));
			// DropdownList傪庢摼偡傞
			CSkonListDropdown* dropDownList = static_cast<CSkonListDropdown*>(settingLabel->RightControl());
			if(!dropDownList->IsOperationMode())// 僪儘僢僾僟僂儞忬懺偱側偄応崌
				{
				//慜偺View傊栠傞
				iPlayerEnv.BasisPartFuncInterface().ChangeViewL((TSmbMusicAPMainPlayerViewIds)iStartParam.iViewId.iViewUid.iUid, KSmbMusicAPMainPlayerChangeViewMsgUid, KNullDesC8);
				return EKeyWasConsumed;
				}
			else// 僪儘僢僾僟僂儞忬懺偺応崌
				{
				return iContainer->OfferKeyEventL(aKeyEvent, aType);
				}
			}
//MOD-E 2006.08.31 kobayashi
//<@@@@@ TRK7630
		}
	// 愝掕儕僙僢僩偑墴偝傟偨応崌
	else if(EWcdmaMpKeySelect==aKeyEvent.iCode && ESettingLabelReset==index)
		{
		ResetCommandL();
//ADD-S 2006.08.31 kobayashi
//@@@@@> TRK7630
		return EKeyWasConsumed;
//ADD-E 2006.08.31 kobayashi
//<@@@@@ TRK7630
		}
	// 償傽乕僠僇儖僐儞僥僫偵僉乕僀儀儞僩傪搉偡
	else if(iContainer->OfferKeyEventL(aKeyEvent, aType)==EKeyWasConsumed)
		{
		return EKeyWasConsumed;
		}
//MOD-S 2006.08.31 kobayashi
//@@@@@> TRK7630
//	return CAfView::OfferKeyEventL(aKeyEvent, aType);
	return EKeyWasNotConsumed;
//MOD-E 2006.08.31 kobayashi
//<@@@@@ TRK7630
	}

/**
 * 僐儅儞僪張棟
 *
 * @param[in]		aCommandId			僐儅儞僪俬俢
 * @return								張棟寢壥
 */
MSmbAfCommandBase::TSmbAfCmdIdResponse CSmbMusicAPMainPlayerSettingView::HandleCommandL(TInt aCommandId)
	{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::HandleCommandL(%d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400060, ELogLevelNormal, KLogFmt, aCommandId);

	return MSmbAfCommandBase::ESmbAfCmdIdWasNotConsumed;
	}

/**
 * 愝掕崁栚慖戰僐儅儞僪張棟
 *
 * @param[in]		aCommandId			僐儅儞僪俬俢
 */
void CSmbMusicAPMainPlayerSettingView::ProcessCommandL(TInt aCommandId)
{
	_LIT(KLogFmt, "CSmbMusicAPMainPlayerSettingView::ProcessCommandL(%d)");
	SmbMusicAPMainPlayerUtility::OutputLog(iAfEnv.Log(), 400060, ELogLevelNormal, KLogFmt, aCommandId);

//kanemitsu ADD-S TRK12570懳墳
	if(ESmbPGMusicAPPlayerStateEnding == iPlayerEnv.MusicAPPlayerState())
		{
		//廔椆張棟拞忬懺偵愝掕偝傟偰偄傞偨傔丄埲崀偺張棟傪峴傢側偄
		return;
		}
//kanemitsu ADD-S TRK12570懳墳

	// 僼僅乕僇僗偟偰偄傞僐儞僩儘乕儖傪庢摼偡傞
	CCoeControl* focusedControl = iContainer->CurrentFocusedControl();
	// 僼僅乕僇僗偟偰偄傞僐儞僩儘乕儖偺僀儞僨僢僋僗斣崋傪庢摼偡傞
	TInt index = iContainer->IndexOfComponentControl(focusedControl);
	// CompoundSettingLabel傪庢摼偡傞
	CSkonCompoundSettingLabel* settingLabel = static_cast<CSkonCompoundSettingLabel*>(iContainer->ControlByIndex(index));
	// DropdownList傪庢摼偡傞
	CSkonListDropdown* dropDownList = static_cast<CSkonListDropdown*>(settingLabel->RightControl());
	// DropdownList偺愝掕抣傪庢摼偡傞
	TInt itemIndex = dropDownList->CurrentItemIndex();
	
	// 偦傟偧傟偺愝掕抣傪愝掕偡傞
	switch(aCommandId)
		{
		case EMainPlayerSettingViewSetPlayMode:
			{
			switch(itemIndex)
				{
				case 0:		///<僔儍僢僼儖OFF
					iSyncModel->SetPlayMode(ESmbMusicAPSyncEngineNonShuffle,EOwnerType_Setting,iRequestId,*this);
					break;
				case 1:		///<捠忢僔儍僢僼儖
					iSyncModel->SetPlayMode(ESmbMusicAPSyncEngineNormalShuffle,EOwnerType_Setting,iRequestId,*this);
					break;
				}
			break;
			}
		case EMainPlayerSettingViewSetRepeat:
			{
			//MOD-S 2006.08.31 kobayashi
			//@@@@@> TRK6899
			switch(itemIndex)
				{
				case 0:		///<慡嬋儕僺乕僩
					iSyncModel->SetRepeat(ESmbMusicAPSyncEngineAllRepeat,EOwnerType_Setting,iRequestId,*this);
					break;
				case 1:		///<侾嬋儕僺乕僩
					iSyncModel->SetRepeat(ESmbMusicAPSyncEngineSingleRepeat,EOwnerType_Setting,iRequestId,*this);
					break;
				case 2:		///<儕僺乕僩OFF
					iSyncModel->SetRepeat(ESmbMusicAPSyncEngineNonRepeat,EOwnerType_Setting,iRequestId,*this);
					break;
				}
			//MOD-E 2006.08.31 kobayashi
			//<@@@@@ TRK6899
			break;
			}
		case EMainPlayerSettingViewSetVPT:
			{
			//MOD-S 2006.08.31 kobayashi
			//@@@@@> TRK6899
//			iMusicSetting->SetVPTL((TSmbMusicAPSyncEngineSurroundType)itemIndex);
			switch(itemIndex)
				{
				case 0:		///<VPT愝掕乮Studio乯
					iSyncModel->SetVPT(ESmbMusicAPSyncEngineSurround1,EOwnerType_Setting,iRequestId,*this);
					break;
				case 1:		///<VPT愝掕乮Live乯
					iSyncModel->SetVPT(ESmbMusicAPSyncEngineSurround2,EOwnerType_Setting,iRequestId,*this);
					break;
				case 2:		///<VPT愝掕乮Club乯
					iSyncModel->SetVPT(ESmbMusicAPSyncEngineSurround3,EOwnerType_Setting,iRequestId,*this);
					break;
				case 3:		///<VPT愝掕乮Arena乯
					iSyncModel->SetVPT(ESmbMusicAPSyncEngineSurround4,EOwnerType_Setting,iRequestId,*this);
					break;
				case 4:		///<VPT愝掕乮OFF乯
					iSyncModel->SetVPT(ESmbMusicAPSyncEngineSurroundOFF,EOwnerType_Setting,iRequestId,*this);
					break;
				}
			//MOD-E 2006.08.31 kobayashi
			//<@@@@@ TRK6899
			break;
			}
		case EMainPlayerSettingViewSetEqualizer:
			{

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?