📄 smbmusicapmainplayerstateinitial.cpp
字号:
/* Copyright (C) 2007 Sony Ericsson Mobile Communications Japan, Inc. */
/*-------------------------------------------------------------------------*/
// FileName:
// SmbMusicAPMainPlayerStateInitial.cpp
//
// Description:
// 儈儏乕僕僢僋僾儗僀儎乕嵞惗宯偺忬懺僋儔僗
// 弶婜忬懺
/*------------------------------------------------------------------------*/
//曄峏棜楌
//擔晅 |曄峏幰 |撪梕
//--------------+-----------+----------------------------------------------
//2006/06/07 |K3拞堜 | 弶斉儕儕乕僗
/// 弶婜忬懺僋儔僗
/**
* @file SmbMusicAPMainPlayerStateInitial.cpp
*
* 儈儏乕僕僢僋僾儗僀儎乕嵞惗宯偺忬懺僋儔僗
* 弶婜忬懺
*/
//////////////////////////////////////////////////////////
//#define __SKIP_GETIMAGE__ // 摦嶌晄椙偺偨傔僗僉僢僾
//#define __SKIP_NOTIFY_INDEX__ // 摦嶌晄椙偺偨傔僗僉僢僾
#define __SKIP_ASSERT__
//////////////////////////////////////////////////////////
#include "SmbMusicAPMainPlayerPlayDebug.h"
#ifndef FJAFENV_H__
#include <FjAfEnv.h>
#endif
#ifndef FJPGBASIC_H__
#include <FjpgBasic.h>
#endif
#ifndef FJPGBASICSTATUS_H__
#include <FjpgBasicStatus.h>
#endif
#ifndef FJPGBASICLASERVER_H__
#include <FjpgBasicLaServer.h>
#endif
#ifndef __SMBPGMENU_H__
#include <SmbPGMenu.h>
#endif
#ifndef FJPGKEYSOUNDBACKLIGHTS_H__
#include <FjpgKeySoundBackLight.h>
#endif
#ifndef FJLACOMMON_H__
#include <Fjlacommon.h>
#endif
#ifndef __SMBMUSICAPPLAYERCOMMONDEF_H__
#include "SmbMusicAPPlayerCommonDef.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYEREXTERNALINTERFACE_H__
#include <SmbMusicAPMainPlayerExternalInterface.h>
#endif
#ifndef __SMBMUSICAPSONGINFOEXTERNALINTERFACE_H__
#include <SmbMusicAPSongInfoExternalInterface.h>
#endif
#ifndef __SMBMUSICAPMAINPLAYERSTATEINITIAL_H__
#include "SmbMusicAPMainPlayerStateInitial.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERUTILITY_H__
#include "SmbMusicAPMainPlayerUtility.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERDIALOGMANAGER_H__
#include "SmbMusicAPMainPlayerDialogManager.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERAPPBASISPARTFUNCINTERFACE_H__
#include "SmbMusicAPMainPlayerBasisPartFuncInterface.h"
#endif
#ifndef __SMBMUSICAPMAINPLAYERAPPUI_H__
#include "SmbMusicAPMainPlayerAppUi.h"
#endif
#ifndef __SMBAFWORDING_RSG__
#include <SmbAfWording.rsg>
#endif
SEMCJ_NAMESPACE_BEGIN
USING_NAMESPACE_DCM
#include <SmbMusicAPMainPlayer.RSG>
#include <Music.mbg>
/**
* 弶婜忬懺夋柺偺僉乕僀儀儞僩懳墳昞
*/
const TSmbMusicAPMainPlayerStateKeyEvent KSmbMusicAPMainPlayerStateKeyInitial[] =
{
// DEL 2007.02.22
// {// 0.寛掕
// EWcdmaMpKeySelect, // iKeyCode
// ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
// CSmbMusicAPMainPlayerStateInitial::ProcKeyDecideL, // iShortPressFunc
// NULL, // iLongPressFunc
// NULL // iRepeatFunc
// },
// DEL End 2007.02.22
{// 1.僜僼僩1
EWcdmaMpKeyMail, // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ShowSubMenuL, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 2.僜僼僩3
EWcdmaMpKeyMenu, // iKeyCode
ESmbMusicAPMainPlayerStateKeyUnUse, // 旕徚旓
NULL, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 3.廔榖
EWcdmaMpKeyOnHook, // iKeyCode
ESmbMusicAPMainPlayerStateKeyUnUse, // 旕徚旓
NULL, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 4.Clear
EWcdmaMpKeyClear, // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ChangeFilterViewL, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 5.忋
EWcdmaMpKeyUp, // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ProcKeyUpL, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 6.壓
EWcdmaMpKeyDown, // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ProcKeyDownL, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
#ifdef __SMBMUSICAP_PERFORMANCE_DEF__
},
{// 7.'1'
'1', // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ProcKeyOne, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 8.'2'
'2', // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ProcKeyTwo, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 9.'3'
'3', // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ProcKeyThree, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
},
{// 10.'4'
'4', // iKeyCode
ESmbMusicAPMainPlayerStateKeyUse, // 張棟偁傝
CSmbMusicAPMainPlayerStateInitial::ProcKeyFour, // iShortPressFunc
NULL, // iLongPressFunc
NULL // iRepeatFunc
#endif
}
};
/**
* 僀儞僗僞儞僗惗惉
* @param[in] aMusicAPMainPlayerEnv 儊僀儞僾儗僀儎乕娐嫬
* @param[in] aMusicSyncEngine 摨婜僄儞僕儞
* @param[in] aSelectView 専嶕宯價儏乕
*/
CSmbMusicAPMainPlayerStateInitial::CSmbMusicAPMainPlayerStateInitial(MSmbMusicAPMainPlayerEnv& aPlayerEnv,
RLog& aLog, RPGPropAgent& aPropAgent, CSmbMusicAPMainPlayerPlayView* aView
) : CSmbMusicAPMainPlayerStateBase(aPlayerEnv, aLog, aPropAgent, aView)
{
}
/**
* 僨僗僩儔僋僞
*/
CSmbMusicAPMainPlayerStateInitial::~CSmbMusicAPMainPlayerStateInitial()
{
}
//==============================================================================================
//
// Query儊僜僢僪
//
//
//==============================================================================================
/**
* 忬懺傪幆暿偡傞Enum抣偺庢摼
*
* @return 忬懺傪幆暿偡傞TSmbMusicAPMainPlayerPlayStatus宆偺抣
*/
TSmbMusicAPMainPlayerPlayStatus CSmbMusicAPMainPlayerStateInitial::PlayStatus()
{
return ESmbMusicAPMainPlayerPlayInitial;
}
//==============================================================================================
//
// ViewActivated娭楢儊僜僢僪
//
//
//==============================================================================================
/**
* 價儏乕愗懼偊傪梫媮偝傟偨偲偒偺張棟
* Y: public
* Y: DoViewActivatedImplL()偐傜屇偽傟傞丅
* Y: 撪梕僠僃僢僋嵪傒乮View僋儔僗偐傜嶍彍)
*/
void CSmbMusicAPMainPlayerStateInitial::ChangeViewFromFilterViewL()
{
if (ESmbMusicAPMainPlayerPlayProcNone == iView->iProc)
{
//僄儞僕儞傊偺梫媮偑敪峴偝傟偰偄側偄応崌
iView->iDrawer->DrawIdlePictureL(EFalse, EFalse);
// Add 2007.09.11
iView->ChangeFuncKeyState(ETrue); // 婡擻僉乕傪桳岠偵偡傞
// Add End 2007.09.11
}
}
//==============================================================================================
//
// OfferKeyEvent娭楢儊僜僢僪
//
//
//==============================================================================================
/**
* 弶婜忬懺偱偺僉乕僀儀儞僩庴怣張棟
*
* @param[in] aKeyEvent 僉乕僀儀儞僩
* @param[in] aType 僀儀儞僩僐乕僪
* @return 僉乕偺徚旓(EKeyWasConsumed)丒旕徚旓(EKeyWasNotConsumed)傪曉媝偡傞丅
*/
TKeyResponse CSmbMusicAPMainPlayerStateInitial::OfferKeyEventImplL(const TKeyEvent& aKeyEvent, TEventCode aType)
{
TInt num;
TKeyResponse response(EKeyWasNotConsumed);
if(iView->IsActiveKeyEvent(aType) != EFalse)
{
// 傾僾儕掅揹埑偵傛傞掆巭忬懺傪夝彍 2006.10.25
iView->iLowBatteryStoped = EFalse;
// 弶婜忬懺偺僉乕僥乕僽儖傪巊梡偟偰張棟傪僨傿僗僷僢僠偡傞丅
iView->iKeyEvent = aKeyEvent;
num = sizeof(KSmbMusicAPMainPlayerStateKeyInitial) / sizeof(KSmbMusicAPMainPlayerStateKeyInitial[0]);
response = KeyEventL(aKeyEvent, KSmbMusicAPMainPlayerStateKeyInitial, num);
}
return response;
}
/**
* 寛掕僉乕張棟\n
* 嵞惗拞偼掆巭張棟丄掆巭拞偼嵞惗奐巒張棟傪峴偆丅
*
* Y: public
* Y: staic娭悢
*
* @param[in] aKeyFunc 僉乕僀儀儞僩張棟僋儔僗
*/
void CSmbMusicAPMainPlayerStateInitial::NSProcKeyDecideL()
{
// TBool failStatue = iView->iFailState;
iView->iFailState = EFalse;
if (iView->IsEnableDecideKey(*iView) != EFalse)
{
if (iView->IsProcStartPlay(iView->iProc) != EFalse)
{// 嵞惗奐巒張棟拞偺応崌(弶婜忬懺偐傜嵞惗忬懺傊偺忬懺慗堏拞)
ProcKeyDecideInProcStartL();
}
else
{
if (EFalse == iView->iPlay2Start)
{//忬懺慗堏拞偱偼側偄応崌
// 嵞惗忬懺傊偺慗堏偺奐巒
ProcKeyDecideInPauseL();
}
}
}
}
/**
* 嵞惗奐巒張棟拞忬懺偺寛掕僉乕張棟
* 嵞惗奐巒傪僉儍儞僙儖偡傞
* Y: private
* Y: ProcKeyDecideL()偐傜屇偽傟傞
* Y: 旕static娭悢
*
* @param[in] aKeyFunc 僉乕僀儀儞僩張棟僋儔僗
*/
void CSmbMusicAPMainPlayerStateInitial::ProcKeyDecideInProcStartL()
{
//梫媮敪峴忬嫷偺庢摼
iView->iCmd->GetRequestKind(iView->iProckind, iView->iInfokind);
if (iView->IsPlayModeCommand() != EFalse)
{//梫媮偑敪峴偝傟偰偍傝丄梫媮偑GetSoundLevel丄SetVolume埲奜偺応崌
//乮Resp懸偪偺応崌)
//掆巭張棟偑儁儞僨傿儞僌偵側偭偰偄傞偙偲傪帵偡僼儔僌傪僙僢僩偡傞
iView->iPauseWaiting = ETrue;
//掆巭夋柺偺昞帵
iView->iDrawer->DrawStopPictureL(EFalse);
}
else if (ESmbMusicAPMainPlayerReqNone == iView->iProckind)
{//嵞惗宯偺梫媮偑敪峴偝傟偰偄側偄応崌
//(Notification懸偪偺応崌)
iView->ProcCancelAction(); // 2006.10.23 TRK:12007
//掆巭梫媮偺敪峴
iView->iCmd->PlayStop();
//儅僫乕儌乕僪嵞惗僼儔僌偺儕僙僢僩
iView->iPlayerEnv.SetMannerModePlayingStateL(EFalse); // 2006.09.29
//掆巭梫媮敪峴嵪傒偱偁傞偙偲傪帵偡僼儔僌傪僙僢僩
iView->iPauseState = ETrue; // 2006.10.01 TRK:10167
//掆巭夋柺偺昞帵
iView->iDrawer->DrawStopPictureL(EFalse);
}
}
/**
* 掆巭拞忬懺偺寛掕僉乕張棟
*
* Y: private
* Y: ProcKeyDecideL()偐傜屇偽傟傞
* Y: 旕static娭悢
*
* @param[in] aKeyFunc 僉乕僀儀儞僩張棟僋儔僗
*/
void CSmbMusicAPMainPlayerStateInitial::ProcKeyDecideInPauseL()
{
// 儅僫乕儌乕僪敾掕
// if (EFalse != iView->DecideMannerModePlayL(iView->iPlayList.iListHandle, iView->iPlayList.iIndex))
if (EFalse != iPlayerEnv.BasisPartFuncInterface().PreCheckWhenStartPlayL(iView->iPlayList.iListHandle, iView->iPlayList.iIndex))
{//儅僫乕儌乕僪嵞惗偺敾掕偱嵞惗OK偺応崌
// 嵞惗壜擻 仺 嵞惗傪奐巒偡傞丅
if (ESmbMusicAPMainPlayerPlayProcNone != iView->iProc)
{//懠偺張棟梫媮敪峴拞偺応崌偵偼偦偺梫媮傪僉儍儞僙儖偡傞
iView->ProcCancelAction(); // 2006.10.23 TRK:12007
}
//嵞惗奐巒梫媮偺敪峴
TBool result = iView->iCmd->PlayStart(iPlayerEnv.MannerModePlayingState());
if (EFalse == result)
{//梫媮敪峴偺僄儔乕帪
iView->iPlay2Start = ETrue;
return;
}
// 嵞惗梫媮敪峴屻偺張棟
if (EFalse == iView->iPlayComplete) // 2006.08.05
{
// 儕僗僩嵞惗拞偺億乕僘忬懺偺応崌
iView->iProc = ESmbMusicAPMainPlayerPlayProcPlayAction;
}
else
{
// 儕僗僩嵞惗姰椆帪
iView->iProc = ESmbMusicAPMainPlayerPlayProcStartPlay;
}
iView->iPlay2Start = ETrue;
}
else
{//儅僫乕儌乕僪嵞惗偺敾掕偱嵞惗NG偺応崌
//掆巭夋柺傪昞帵偡傞丅
iView->iDrawer->DrawStopPictureL(EFalse);
}
}
/**
* 僋儕傾僉乕張棟\n
* 僼傿儖僞價儏乕傊愗懼偊傞丅
* @param[in] aKeyFunc 僉乕僀儀儞僩張棟僋儔僗
*/
void CSmbMusicAPMainPlayerStateInitial::NSChangeFilterViewL()
{
TSmbMusicAPMainPlayerPrmDeleteOne param;
param.iListHandle = iView->iPlayList.iListHandle;
param.iIndex = iView->iPlayList.iIndex;
iView->iViewTop = EFalse; // 2007.09.13
// 僼傿儖僞乕價儏乕婲摦僷儔儊乕僞嶌惉
TPckgBuf<TSmbMusicAPMainPlayerPrmDeleteOne> parambuf(param);
// 僼傿儖僞乕價儏乕傊愗懼偊傞丅
iView->iDrawer->DoMusicEnableL(EFalse); // TRK:11398 2006.10.16
iPlayerEnv.BasisPartFuncInterface().ChangeViewL(ESmbMusicAPMainPlayerFilterViewId,
KSmbMusicAPMainPlayerChangeViewMsgUid, parambuf);
}
//==============================================================================================
//
// 旕摨婜屇傃弌偟偺墳摎張棟娭楢儊僜僢僪
//
//
//==============================================================================================
/**
* 嵞惗弨旛墳摎張棟
* @param[in] aResult 張棟寢壥
*/
//void CSmbMusicAPMainPlayerStateInitial::RespPreparePlayL(TInt aResult)
// {
//
// iView->iJacketIndex = KSmbMusicAPMainPlayerPlayDefaaultJaket; // 2006.08.25
// iView->iSongInfoIndex = KSmbMusicAPMainPlayerPlayDefaaultJaket; // 2006.09.12
//
// iView->iBottomSong = EFalse; // 2006.10.16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -