/*
* Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description: Handles the updating of touch buttons
*
*/
#include <eikappui.h>
#include <eikenv.h>
#include <pevirtualengine.h>
#include <AknsSkinInstance.h>
#include <AknsUtils.h>
#include <AknsConstants.h>
#include <data_caging_path_literals.hrh>
#include <phoneui.mbg>
#include "cphonebuttonscontroller.h"
#include "phoneui.hrh"
#include "tphonecommandparam.h"
#include "tphonecmdparamboolean.h"
#include "tphonecmdparaminteger.h"
#include "tphonecmdparamcallheaderdata.h"
#include "cphonemainresourceresolver.h"
#include "phonerssbase.h"
_LIT( KPhoneUiScalableIconFile, "Z:phoneui.mif" );
// ======== MEMBER FUNCTIONS ========
// ---------------------------------------------------------------------------
// Constructor
// ---------------------------------------------------------------------------
//
CPhoneButtonsController::CPhoneButtonsController(
MBubbleTouchPaneInterface& aTouchPane ) :
iTouchPane( aTouchPane )
{
iTouchPane.SetIconProvider( this );
}
// ---------------------------------------------------------------------------
// Second phase constructor
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::ConstructL()
{
}
// ---------------------------------------------------------------------------
// Static constructor
// ---------------------------------------------------------------------------
//
CPhoneButtonsController* CPhoneButtonsController::NewL(
MBubbleTouchPaneInterface& aTouchPane )
{
CPhoneButtonsController* self =
new (ELeave) CPhoneButtonsController( aTouchPane );
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop( self );
return self;
}
// ---------------------------------------------------------------------------
// Destructor
// ---------------------------------------------------------------------------
//
CPhoneButtonsController::~CPhoneButtonsController()
{
}
// ---------------------------------------------------------------------------
// SetButtonSet
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::SetButtonSet(
TPhoneCommandParam* aCommandParam )
{
TPhoneCmdParamInteger* cbaResource =
static_cast<TPhoneCmdParamInteger*>( aCommandParam );
TInt resourceId = cbaResource->Integer();
iTouchPane.SetButtonSet( resourceId );
ReplaceAudioButton();
SetButtonDimming();
}
// ---------------------------------------------------------------------------
// SetMuteFlag
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::SetMuteFlag(
TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsPhoneMuted;
}
else
{
iFlags &= ~EButtonsPhoneMuted;
}
if ( iFlags & EButtonsPhoneMuted )
{
iTouchPane.SetButtonState( EPhoneInCallCmdUnmute );
}
else
{
iTouchPane.SetButtonState( EPhoneInCallCmdMute );
}
}
}
// ---------------------------------------------------------------------------
// SetHoldFlag
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::SetHoldFlag(
TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() ==
TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsCallOnHold;
}
else
{
iFlags &= ~EButtonsCallOnHold;
}
if ( iFlags & EButtonsCallOnHold )
{
iTouchPane.SetButtonState( EPhoneInCallCmdUnhold );
}
else
{
iTouchPane.SetButtonState( EPhoneInCallCmdHold );
}
}
}
// ---------------------------------------------------------------------------
// SetIhfFlag
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::SetIhfFlag(
TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsIhfActive;
}
else
{
iFlags &= ~EButtonsIhfActive;
}
}
}
// ---------------------------------------------------------
// CPhoneButtonsController::SetBTAccFlag
// ---------------------------------------------------------
//
void CPhoneButtonsController::SetBTAccFlag( TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsBTAcc;
}
else
{
iFlags &= ~EButtonsBTAcc;
}
// Temporary unavailability
if ( ( iFlags & EButtonsBTAccAvail ) && !( iFlags & EButtonsBTAcc ) )
{
iFlags |= EButtonsBTAccTmpUn;
}
else
{
iFlags &= ~EButtonsBTAccTmpUn;
}
}
}
// ---------------------------------------------------------
// CPhoneButtonsController::SetWiredAccFlag
// ---------------------------------------------------------
//
void CPhoneButtonsController::SetWiredAccFlag( TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsWiredAcc;
}
else
{
iFlags &= ~EButtonsWiredAcc;
}
}
}
// ---------------------------------------------------------
// CPhoneButtonsController::SetBTAccAvailableFlag
// ---------------------------------------------------------
//
void CPhoneButtonsController::SetBTAccAvailableFlag( TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsBTAccAvail;
}
else
{
iFlags &= ~EButtonsBTAccAvail;
}
// Temporary unavailability
if ( ( iFlags & EButtonsBTAccAvail ) && !( iFlags & EButtonsBTAcc ) )
{
iFlags |= EButtonsBTAccTmpUn;
}
else
{
iFlags &= ~EButtonsBTAccTmpUn;
}
}
}
// ---------------------------------------------------------------------------
// SetVideoCallFlag
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::SetVideoCallFlag(
TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsVideoCallOngoing;
}
else
{
iFlags &= ~EButtonsVideoCallOngoing;
}
if ( iFlags & EButtonsVideoCallOngoing )
{
iTouchPane.SetButtonState( EPhoneInCallCmdSwitchToVoice );
iTouchPane.SetButtonDimmed( EPhoneInCallCmdHold, ETrue );
}
else
{
iTouchPane.SetButtonState( EPhoneInCallCmdSwitchToVideo );
iTouchPane.SetButtonDimmed( EPhoneInCallCmdHold, EFalse );
}
}
}
// ---------------------------------------------------------
// CPhoneButtonsController::SetInCallJoinEnabled
// ---------------------------------------------------------
//
void CPhoneButtonsController::SetInCallJoinEnabled( TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
{
TPhoneCmdParamBoolean* booleanParam =
static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
if ( booleanParam->Boolean() )
{
iFlags |= EButtonsDimJoin;
}
else
{
iFlags &= ~EButtonsDimJoin;
}
}
SetButtonDimming();
}
// ---------------------------------------------------------
// SetButtonEnabled
// ---------------------------------------------------------
//
void CPhoneButtonsController::SetButtonEnabled(
TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() ==
TPhoneCommandParam::EPhoneParamIdInteger )
{
TInt commandId =
static_cast<TPhoneCmdParamInteger*>( aCommandParam )->Integer();
switch ( commandId )
{
case EPhoneCallComingCmdAnswer:
iFlags &= ~EButtonsDimAnswer;
break;
case EPhoneInCallCmdPrivate:
iFlags &= ~EButtonsDimPrivate;
break;
case EPhoneCallComingCmdSilent:
iFlags &= ~EButtonsDimSilence;
break;
case EPhoneInCallCmdCreateConference:
iFlags &= ~EButtonsDimCreateConference;
break;
case EPhoneInCallCmdHold:
iFlags &= ~EButtonsDimHold;
break;
default:
break;
}
SetButtonDimming();
}
}
// ---------------------------------------------------------
// SetButtonDisabled
// ---------------------------------------------------------
//
void CPhoneButtonsController::SetButtonDisabled(
TPhoneCommandParam* aCommandParam )
{
if ( aCommandParam->ParamId() ==
TPhoneCommandParam::EPhoneParamIdInteger )
{
TInt commandId =
static_cast<TPhoneCmdParamInteger*>( aCommandParam )->Integer();
switch ( commandId )
{
case EPhoneCallComingCmdAnswer:
iFlags |= EButtonsDimAnswer;
break;
case EPhoneInCallCmdPrivate:
iFlags |= EButtonsDimPrivate;
break;
case EPhoneCallComingCmdSilent:
iFlags |= EButtonsDimSilence;
break;
case EPhoneInCallCmdCreateConference:
iFlags |= EButtonsDimCreateConference;
break;
case EPhoneInCallCmdHold:
iFlags |= EButtonsDimHold;
break;
default:
break;
}
SetButtonDimming();
}
}
// ---------------------------------------------------------------------------
// SetToggleButtons
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::SetToggleButtons()
{
TInt buttonCount = iTouchPane.NumberOfButtonsInPane();
for ( TInt i=0; i < buttonCount ; i++ )
{
switch ( iTouchPane.ButtonCommandId( i ) )
{
case EPhoneInCallCmdMute:
{
if ( iFlags & EButtonsPhoneMuted )
{
iTouchPane.SetButtonState( EPhoneInCallCmdUnmute );
}
}
break;
case EPhoneInCallCmdUnmute:
{
if ( !( iFlags & EButtonsPhoneMuted ) )
{
iTouchPane.SetButtonState( EPhoneInCallCmdMute );
}
}
break;
case EPhoneInCallCmdHold:
{
if ( iFlags & EButtonsCallOnHold )
{
iTouchPane.SetButtonState( EPhoneInCallCmdUnhold );
}
}
break;
case EPhoneInCallCmdUnhold:
{
if ( !( iFlags & EButtonsCallOnHold ) )
{
iTouchPane.SetButtonState( EPhoneInCallCmdHold );
}
}
break;
case EPhoneInCallCmdActivateIhf:
{
if ( iFlags & EButtonsIhfActive )
{
iTouchPane.SetButtonState( EPhoneInCallCmdDeactivateIhf );
}
}
break;
case EPhoneInCallCmdDeactivateIhf:
{
if ( !( iFlags & EButtonsIhfActive ) )
{
iTouchPane.SetButtonState( EPhoneInCallCmdActivateIhf );
}
}
break;
case EPhoneInCallCmdHandset:
{
if ( iFlags & EButtonsBTAccTmpUn )
{
iTouchPane.SetButtonState( EPhoneInCallCmdBtHandsfree );
}
}
break;
case EPhoneInCallCmdBtHandsfree:
{
if ( iFlags & EButtonsBTAcc )
{
iTouchPane.SetButtonState( EPhoneInCallCmdHandset );
}
}
break;
case EPhoneInCallCmdSwitchToVideo:
{
if ( iFlags & EButtonsVideoCallOngoing )
{
iTouchPane.SetButtonState( EPhoneInCallCmdSwitchToVoice );
}
}
break;
case EPhoneInCallCmdSwitchToVoice:
{
if ( !( iFlags & EButtonsVideoCallOngoing ) )
{
iTouchPane.SetButtonState( EPhoneInCallCmdSwitchToVideo );
}
}
break;
default:
break;
}
}
}
// ---------------------------------------------------------------------------
// ReplaceAudioButton
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::ReplaceAudioButton()
{
TInt buttonCount = iTouchPane.NumberOfButtonsInPane();
for ( TInt i=0; i < buttonCount; i++ )
{
TInt commandId = iTouchPane.ButtonCommandId( i );
if( commandId == EPhoneInCallCmdHandset ||
commandId == EPhoneInCallCmdBtHandsfree )
{
// wired connect
if ( iFlags & EButtonsWiredAcc )
{
// Bt disconnect when wired
if ( !( iFlags & EButtonsBTAccTmpUn ) )
{
iTouchPane.ReplaceButton( i,
CPhoneMainResourceResolver::Instance()->ResolveResourceID( EPhoneAudioDefButton ) );
commandId = iTouchPane.ButtonCommandId( i );
}
iTouchPane.SetButtonDimmed( commandId, ETrue);
}
// BTA connect or temporarary unavailable
else if ( iFlags & EButtonsBTAcc || iFlags & EButtonsBTAccTmpUn )
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
else
{
iTouchPane.ReplaceButton( i,
CPhoneMainResourceResolver::Instance()->ResolveResourceID( EPhoneAudioDefButton ) );
}
}
else if ( commandId == EPhoneInCallCmdActivateIhf ||
commandId == EPhoneInCallCmdDeactivateIhf )
{
// wired connect
if ( iFlags & EButtonsWiredAcc )
{
// Bt connect when wired
if ( iFlags & EButtonsBTAccTmpUn )
{
iTouchPane.ReplaceButton( i,
CPhoneMainResourceResolver::Instance()->ResolveResourceID( EPhoneAudioBTAButton ) );
commandId = iTouchPane.ButtonCommandId( i );
}
iTouchPane.SetButtonDimmed( commandId, ETrue);
}
// BTA connect or temporarary unavailable
else if ( iFlags & EButtonsBTAcc || iFlags & EButtonsBTAccTmpUn )
{
iTouchPane.ReplaceButton( i,
CPhoneMainResourceResolver::Instance()->ResolveResourceID( EPhoneAudioBTAButton ) );
}
else
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
}
}
SetToggleButtons();
}
// ---------------------------------------------------------------------------
// SetButtonDimming
// ---------------------------------------------------------------------------
//
void CPhoneButtonsController::SetButtonDimming()
{
TInt buttonCount = iTouchPane.NumberOfButtonsInPane();
for ( TInt i=0; i < buttonCount; i++ )
{
TInt commandId = iTouchPane.ButtonCommandId( i );
switch ( commandId )
{
case EPhoneCallComingCmdAnswer:
{
if ( iFlags & EButtonsDimAnswer )
{
iTouchPane.SetButtonDimmed( commandId, ETrue );
}
else
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
break;
}
case EPhoneInCallCmdPrivate:
{
if ( iFlags & EButtonsDimPrivate )
{
iTouchPane.SetButtonDimmed( commandId, ETrue );
}
else
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
break;
}
case EPhoneInCallCmdJoin:
{
if ( iFlags & EButtonsDimJoin )
{
iTouchPane.SetButtonDimmed( commandId, ETrue );
}
else
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
break;
}
case EPhoneInCallCmdHold:
{
if ( iFlags & EButtonsVideoCallOngoing || iFlags & EButtonsDimHold )
{
iTouchPane.SetButtonDimmed( commandId, ETrue );
}
else
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
break;
}
case EPhoneCallComingCmdSilent:
{
if ( iFlags & EButtonsDimSilence )
{
iTouchPane.SetButtonDimmed( commandId, ETrue );
}
else
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
break;
}
case EPhoneInCallCmdCreateConference:
{
if ( iFlags & EButtonsDimCreateConference )
{
iTouchPane.SetButtonDimmed( commandId, ETrue );
}
else
{
iTouchPane.SetButtonDimmed( commandId, EFalse );
}
break;
}
default:
break;
} // switch
} // for
if ( iCustomization )
{
// Customizes touch pane button.
iCustomization->CustomizeTouchPaneButtons( iTouchPane );
}
}
// -----------------------------------------------------------
// CPhoneButtonsController::SetCustomization
// -----------------------------------------------------------
//
void CPhoneButtonsController::SetCustomization(
MPhoneButtonCustomization* aCustomization )
{
iCustomization = aCustomization;
}
// ---------------------------------------------------------------------------
// GetIconForCommandL
// ---------------------------------------------------------------------------
//
CGulIcon* CPhoneButtonsController::GetIconForCommandL( TInt aCommandId )
{
TAknsItemID skinId( KAknsIIDNone );
TInt fileIndex( 0 );
TInt maskIndex(0);
switch ( aCommandId )
{
case EPhoneInCallCmdMute:
{
skinId =KAknsIIDQgnIndiButtonMuteMic;
fileIndex = EMbmPhoneuiQgn_indi_button_mute_mic;
maskIndex = EMbmPhoneuiQgn_indi_button_mute_mic_mask;
break;
}
case EPhoneInCallCmdUnmute:
{
skinId = KAknsIIDQgnIndiButtonUnmuteMic;
fileIndex = EMbmPhoneuiQgn_indi_button_unmute_mic;
maskIndex = EMbmPhoneuiQgn_indi_button_unmute_mic_mask;
break;
}
case EPhoneInCallCmdEndAllCalls:
{
skinId = KAknsIIDQgnIndiButtonEndAllCalls;
fileIndex = EMbmPhoneuiQgn_indi_button_end_all_calls;
maskIndex = EMbmPhoneuiQgn_indi_button_end_all_calls_mask;
break;
}
case EPhoneInCallCmdHold:
{
skinId = KAknsIIDQgnIndiButtonHold;
fileIndex = EMbmPhoneuiQgn_indi_button_hold;
maskIndex = EMbmPhoneuiQgn_indi_button_hold_mask;
break;
}
case EPhoneInCallCmdUnhold:
{
skinId = KAknsIIDQgnIndiButtonUnhold;
fileIndex = EMbmPhoneuiQgn_indi_button_unhold;
maskIndex = EMbmPhoneuiQgn_indi_button_unhold_mask;
break;
}
case EPhoneInCallCmdActivateIhf:
{
skinId = KAknsIIDQgnIndiButtonLoudspeaker;
fileIndex = EMbmPhoneuiQgn_indi_button_loudspeaker;
maskIndex = EMbmPhoneuiQgn_indi_button_loudspeaker_mask;
break;
}
case EPhoneInCallCmdDeactivateIhf:
{
skinId = KAknsIIDQgnIndiButtonHandset;
fileIndex = EMbmPhoneuiQgn_indi_button_handset;
maskIndex = EMbmPhoneuiQgn_indi_button_handset_mask;
break;
}
case EPhoneInCallCmdHandset:
{
skinId = KAknsIIDQgnIndiButtonHandset;
fileIndex = EMbmPhoneuiQgn_indi_button_handset;
maskIndex = EMbmPhoneuiQgn_indi_button_handset_mask;
break;
}
case EPhoneInCallCmdBtHandsfree:
{
skinId = KAknsIIDQgnIndiButtonBluetooth;
fileIndex = EMbmPhoneuiQgn_indi_button_bluetooth;
maskIndex = EMbmPhoneuiQgn_indi_button_bluetooth_mask;
break;
}
case EPhoneInCallCmdSwap:
{
skinId = KAknsIIDQgnIndiButtonSwap;
fileIndex = EMbmPhoneuiQgn_indi_button_swap;
maskIndex = EMbmPhoneuiQgn_indi_button_swap_mask;
break;
}
case EPhoneInCallCmdGoToIdle:
{
skinId = KAknsIIDQgnIndiButtonGoIdle;
fileIndex = EMbmPhoneuiQgn_indi_button_go_idle;
maskIndex = EMbmPhoneuiQgn_indi_button_go_idle_mask;
break;
}
case EPhoneInCallCmdCreateConference:
{
skinId = KAknsIIDQgnIndiButtonConference;
fileIndex = EMbmPhoneuiQgn_indi_button_conference;
maskIndex = EMbmPhoneuiQgn_indi_button_conference_mask;
break;
}
case EPhoneInCallCmdParticipants:
{
skinId = KAknsIIDQgnIndiButtonParticipants;
fileIndex = EMbmPhoneuiQgn_indi_button_participants;
maskIndex = EMbmPhoneuiQgn_indi_button_participants_mask;
break;
}
case EPhoneInCallCmdDrop:
{
skinId = KAknsIIDQgnIndiButtonDrop;
fileIndex = EMbmPhoneuiQgn_indi_button_drop;
maskIndex = EMbmPhoneuiQgn_indi_button_drop_mask;
break;
}
case EPhoneInCallCmdPrivate:
{
skinId = KAknsIIDQgnIndiButtonPrivate;
fileIndex = EMbmPhoneuiQgn_indi_button_private;
maskIndex = EMbmPhoneuiQgn_indi_button_private_mask;
break;
}
case EPhoneInCallCmdJoin:
{
skinId = KAknsIIDQgnIndiButtonJoin;
fileIndex = EMbmPhoneuiQgn_indi_button_join;
maskIndex = EMbmPhoneuiQgn_indi_button_join_mask;
break;
}
case EPhoneInCallCmdEndThisOutgoingCall:
{
skinId = KAknsIIDQgnIndiButtonEndActiveCall;
fileIndex = EMbmPhoneuiQgn_indi_button_end_active_call;
maskIndex = EMbmPhoneuiQgn_indi_button_end_active_call_mask;
break;
}
case EPhoneCmdEnd:
{
skinId = KAknsIIDQgnIndiButtonEndCall;
fileIndex = EMbmPhoneuiQgn_indi_button_end_active_call;
maskIndex = EMbmPhoneuiQgn_indi_button_end_active_call_mask;
break;
}
case EPhoneCallComingCmdAnswer:
{
skinId = KAknsIIDQgnIndiButtonAnswer;
fileIndex = EMbmPhoneuiQgn_indi_button_answer;
maskIndex = EMbmPhoneuiQgn_indi_button_answer_mask;
break;
}
case EPhoneCallComingCmdReject:
{
skinId = KAknsIIDQgnIndiButtonReject;
fileIndex = EMbmPhoneuiQgn_indi_button_reject;
maskIndex = EMbmPhoneuiQgn_indi_button_reject_mask;
break;
}
case EPhoneInCallCmdSwitchToVideo:
{
skinId = KAknsIIDQgnIndiButtonVoiceToVideo;
fileIndex = EMbmPhoneuiQgn_indi_button_voice_to_video;
maskIndex = EMbmPhoneuiQgn_indi_button_voice_to_video_mask;
break;
}
case EPhoneInCallCmdSwitchToVoice:
{
skinId = KAknsIIDQgnIndiButtonVideoToVoice;
fileIndex = EMbmPhoneuiQgn_indi_button_video_to_voice;
maskIndex = EMbmPhoneuiQgn_indi_button_video_to_voice_mask;
break;
}
case EPhoneCallComingCmdSilent:
{
skinId = KAknsIIDQgnIndiButtonSilence;
fileIndex = EMbmPhoneuiQgn_indi_button_silence;
maskIndex = EMbmPhoneuiQgn_indi_button_silence_mask;
break;
}
case EPhoneInCallCmdShareLiveVideo:
{
skinId = KAknsIIDQgnIndiButtonVideoShare;
fileIndex = EMbmPhoneuiQgn_indi_button_video_share;
maskIndex = EMbmPhoneuiQgn_indi_button_video_share_mask;
break;
}
default:
return NULL;
} // switch
CGulIcon* icon = NULL;
if ( skinId != KAknsIIDNone )
{
TParse* fp = new( ELeave ) TParse();
CleanupStack::PushL( fp );
TInt err = fp->Set(KPhoneUiScalableIconFile, &KDC_APP_BITMAP_DIR, NULL);
if (err != KErrNone)
{
User::Leave(err);
}
TBuf<KMaxFileName> fileName = fp->FullName();
CleanupStack::PopAndDestroy(); //fp
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
icon = AknsUtils::CreateGulIconL( skin,
skinId,
fileName,
fileIndex,
maskIndex );
}
return icon;
}
// ---------------------------------------------------------------------------
// GetButtonForCommandL
// ---------------------------------------------------------------------------
//
TAknsItemID CPhoneButtonsController::GetButtonForCommandL( TInt aCommandId )
{
TAknsItemID frameId( KAknsIIDNone );
switch ( aCommandId )
{
case EPhoneInCallCmdEndAllCalls:
{
frameId = KAknsIIDQsnFrButtonNormalReject;
break;
}
case EPhoneInCallCmdEndThisOutgoingCall:
{
frameId = KAknsIIDQsnFrButtonNormalReject;
break;
}
case EPhoneCmdEnd:
{
frameId = KAknsIIDQsnFrButtonNormalReject;
break;
}
case EPhoneCallComingCmdAnswer:
{
frameId = KAknsIIDQsnFrButtonNormalAnswer;
break;
}
case EPhoneCallComingCmdReject:
{
frameId = KAknsIIDQsnFrButtonNormalReject;
break;
}
default:
frameId= KAknsIIDQsnFrButtonNormal;
break;
} // switch
return frameId;
}
// END