diff -r 000000000000 -r 1bce908db942 multimediacommsengine/tsrc/MCETestUI/src/CMCETestUIAppUi.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/tsrc/MCETestUI/src/CMCETestUIAppUi.cpp Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,533 @@ +/* +* Copyright (c) 2009 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: +* +*/ + + +#include "CMCETestUIAppUi.h" +#include "CMCETestUIDoc.h" +#include "CMCETestUIAppView.h" +#include "CMCETestUISessionView.h" +#include "CMCETestUIStreamView.h" +#include "createpocsessiondialog.h" +#include "createvoipsessiondialog.h" +#include "create2wayvideosessiondialog.h" +#include "createsessiondialog.h" +#include "createeventdialog.h" +#include "createreferdialog.h" +#include "createNotifyDialog.h" +#include "createsessionEstablishValuesdialog.h" +#include "createMceTestValueSettingsDialog.h" +#include "createMceTestSettingsDialog.h" +#include "createStartDTMFDialog.h" +#include "createSendDTMFDialog.h" +#include "createSendDTMFSequenceDialog.h" +#include "createCryptoHandlingDialog.h" +#include "createAudioCodecDialog.h" +#include "mcetestuiactivitymanager.h" +#include + +#include +#include +#include +#include + +#include "CMCETestUIEngine.h" + +const TInt KBufLength = 100; +const TInt KMCETestUIBacklightTimeOut = 4; // seconds + + +CMCETestUIAppUi::CMCETestUIAppUi( CMCETestUIEngine& aEngine ) + :iEngine(aEngine) + { + iEngine.SetUserInterface( this ); + } + +void CMCETestUIAppUi::ConstructL() + { + + BaseConstructL(EAknEnableSkin); + + + iMainView = CMCETestUIAppView::NewL( iEngine ); + AddViewL( iMainView ); // transfer ownership + + iSessionView = CMCETestUISessionView::NewL( iEngine ); + AddViewL( iSessionView ); + + iStreamView = CMCETestUIStreamView::NewL(iEngine); + AddViewL(iStreamView); + + SetDefaultViewL( *iMainView ); + iEnableVideo = EFalse; + + iActivityManager = CMCETestUIActivityManager::NewL( KMCETestUIBacklightTimeOut ); + iActivityManager->Reset(); + + } + + +CMCETestUIAppUi::~CMCETestUIAppUi() + { + delete iActivityManager; + } + + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::EngineStateChanged +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::EngineStateChangedL() + { + iMainView->EngineStateChangedL(); + iSessionView->EngineStateChangedL(); + iStreamView->EngineStateChangedL(); + } + + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::NotifyUser +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::NotifyUser( const TDesC& aMessage ) + { + // User::InfoPrint( aMessage ); + CAknInformationNote* note = new (ELeave) CAknInformationNote( EFalse ); + note->SetTimeout( CAknNoteDialog::EShortTimeout ); + note->ExecuteLD( aMessage ); + } + +void CMCETestUIAppUi::NotifyUserWaitL( const TDesC& aMessage ) +{ + CAknConfirmationNote* note = new (ELeave) CAknConfirmationNote( ETrue ); + note->SetTimeout( CAknNoteDialog::ENoTimeout ); + note->ExecuteLD( aMessage ); +} + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::AskQuestion +// ----------------------------------------------------------------------------- +// +TInt CMCETestUIAppUi::AskQuestionL( + const CMCETestUIQuestionSingleSelection& aQuestion ) + { + + // Generate list + CAknSinglePopupMenuStyleListBox* listBox = + new (ELeave) CAknSinglePopupMenuStyleListBox; + CleanupStack::PushL( listBox ); + + CAknPopupList* popup = CAknPopupList::NewL( + listBox, + R_AVKON_SOFTKEYS_MENU_LIST, + AknPopupLayouts::EPopupSNotePopupWindow ); + CleanupStack::PushL( popup ); + popup->SetTitleL( aQuestion.Caption() ); + + listBox->ConstructL( popup, + EAknListBoxSelectionList | EAknListBoxLoopScrolling); + + listBox->CreateScrollBarFrameL( ETrue ); + listBox->ScrollBarFrame()->SetScrollBarVisibilityL( + CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto ); + + listBox->Model()->SetItemTextArray( &(aQuestion.Choices()) ); + listBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); + + CleanupStack::Pop( popup ); + TInt selectedIndex = -1; + if ( popup->ExecuteLD() ) + { + selectedIndex = listBox->CurrentItemIndex(); + } + + CleanupStack::PopAndDestroy( listBox ); + return selectedIndex; + + } + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::AskQuestion +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::AskQuestionL( CMCETestUIQuestionDataQuery& aQuestion ) + { + + TBuf answer; + answer.Copy( aQuestion.DefaultValue() ); + CAknTextQueryDialog* dlg = CAknTextQueryDialog::NewL( answer ); + dlg->SetMaxLength( KBufLength ); + dlg->ExecuteLD( R_TEXT_QUERY_DIALOG, aQuestion.Caption() ); + aQuestion.SetAnswerL( answer ); + + } +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::SessionParams +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::SessionParamsL(TSessionParams &aSessionParams, TSessionType aSessionType) +{ + if( aSessionType == EPoCSession) + { + CCreatePoCSessionDialog* dialog = new ( ELeave ) CCreatePoCSessionDialog( &aSessionParams ); + if(dialog->ExecuteLD( R_POC_SESSION_DIALOG )) + { + return ETrue; + } + } + else if( aSessionType == EVoIPSession) + { + CCreateVoIPSessionDialog* dialog = new ( ELeave ) CCreateVoIPSessionDialog( &aSessionParams ); + if(dialog->ExecuteLD( R_VOIP_SESSION_DIALOG )) + { + return ETrue; + } + } + else if ( aSessionType == E2WayVideoSession ) + { + CCreate2WayVideoSessionDialog* dialog = new ( ELeave ) CCreate2WayVideoSessionDialog( &aSessionParams ); + if(dialog->ExecuteLD( R_2WAYVIDEO_SESSION_DIALOG )) + { + return ETrue; + } + } + else if ( aSessionType == ECustomSession) + { + CCreateSessionDialog* dialog = new ( ELeave ) CCreateSessionDialog( &aSessionParams ); + if(dialog->ExecuteLD( R_MCE_SESSION_DIALOG ) ) + { + return ETrue; + } + } + return ETrue ;// this code still needs to be updated as it is wrong behaviour + } + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::SessionEstablishValues +// ----------------------------------------------------------------------------- +// + +TBool CMCETestUIAppUi::SessionEstablishValues(TSessionEstablishValues &sessionValues) + { + CSessionEstablishValuesDialog *dialog = new (ELeave)CSessionEstablishValuesDialog(&sessionValues); + if (dialog->ExecuteLD(R_MCE_ESTABLISH_VALUES_DIALOG)) + { + return ETrue; + } + + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::SessionEstablishValues +// ----------------------------------------------------------------------------- +// + +TBool CMCETestUIAppUi::NotifyValues(TNotifyValues ¬ifyValues) + { + CNotifyDialog *dialog = new (ELeave)CNotifyDialog(¬ifyValues); + if (dialog->ExecuteLD(R_MCE_NOTIFY_DIALOG)) + { + return ETrue; + } + + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::SessionResponseValues +// ----------------------------------------------------------------------------- +// + +TBool CMCETestUIAppUi::SessionResponseValues(TSessionResponseValues &responseValues) + { + CSessionResponseValuesDialog *dialog = new (ELeave)CSessionResponseValuesDialog(&responseValues); + if (dialog->ExecuteLD(R_MCE_RESPONSE_VALUES_DIALOG)) + { + return ETrue; + } + + return EFalse; + } +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::StartDTMFToneL +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::StartDTMFToneL( TChar& aChar ) + { + CStartDTMFDialog *dialog = new (ELeave)CStartDTMFDialog( aChar ); + if (dialog->ExecuteLD( R_MCE_START_DTMF_TONE_DIALOG )) + { + return ETrue; + } + + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::StartDTMFToneL +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::SendDTMFToneL( TChar& aChar, TInt& aInterval ) + { + CSendDTMFDialog *dialog = new (ELeave)CSendDTMFDialog( aChar, aInterval ); + if (dialog->ExecuteLD( R_MCE_SEND_DTMF_TONE_DIALOG )) + { + return ETrue; + } + + return EFalse; + } +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::StartDTMFToneL +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::SendDTMFToneSequenceL( TDes& aSequence ) + { + CSendDTMFSequenceDialog *dialog = new (ELeave)CSendDTMFSequenceDialog( aSequence ); + if (dialog->ExecuteLD( R_MCE_SEND_DTMF_TONE_SEQUENCE_DIALOG )) + { + return ETrue; + } + + return EFalse; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::GetCodecTypeL +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::GetCodecTypeL( TInt &aCodecIndex) + { + aCodecIndex = 1; + CAddCodecDialog* dlg = new (ELeave) CAddCodecDialog(aCodecIndex); + if(dlg->ExecuteLD(R_MCE_ADD_CODEC_DIALOG)) + { + return ETrue; + } + return EFalse; + } +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::GetIapIdL +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::GetIapIdL( TInt &aNumber) + { + aNumber = 1; + CAknNumberQueryDialog* dlg = new (ELeave) CAknNumberQueryDialog(aNumber,CAknQueryDialog::ENoTone); + if(dlg->ExecuteLD(R_NUMBER_QUERY_DIALOG)) + { + return ETrue; + } + return EFalse; + } + + + // ----------------------------------------------------------------------------- +// CMCETestUIAppUi::GetIapIdL +// ----------------------------------------------------------------------------- +// + void CMCETestUIAppUi::ShowCurrentCryptoContextsL(TBool aCrypto32,TBool aCrypto80) + { + CCurrentCryptoContextsDialog *dialog = new (ELeave)CCurrentCryptoContextsDialog( aCrypto32,aCrypto80 ); + dialog->ExecuteLD( R_MCE_SECURE_SESSION_DIALOG ); + } + + // ----------------------------------------------------------------------------- +// CMCETestUIAppUi::GetIapIdL +// ----------------------------------------------------------------------------- +// + void CMCETestUIAppUi::ShowSupportedCryptoContextsL(TBool aCrypto32,TBool aCrypto80) + { + CSupportedCryptoContextsDialog *dialog = new (ELeave)CSupportedCryptoContextsDialog( aCrypto32,aCrypto80 ); + dialog->ExecuteLD( R_MCE_SECURE_SESSION_DIALOG ); + } + + // ----------------------------------------------------------------------------- +// CMCETestUIAppUi::GetIapIdL +// ----------------------------------------------------------------------------- +// + void CMCETestUIAppUi::GetCryptoContextsL(TBool& aCrypto32,TBool& aCrypto80) + { + CGetCryptoContextsDialog *dialog = new (ELeave)CGetCryptoContextsDialog( aCrypto32,aCrypto80 ); + dialog->ExecuteLD( R_MCE_SECURE_SESSION_DIALOG ); + } +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::EventParams +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::EventParamsL(TEventParams& aEventParams) +{ + + CCreateEventDialog* dialog = new ( ELeave ) CCreateEventDialog( &aEventParams ); + if (dialog->ExecuteLD( R_MCE_EVENT_DIALOG ) ) + { + return ETrue; + } + return ETrue ; // this code still needs to be updated as it is wrong behaviour +} + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::ReferParamsL +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::ReferParamsL(TReferParams& aReferParams) +{ + + CCreateReferDialog* dialog = new ( ELeave ) CCreateReferDialog( &aReferParams ); + if (dialog->ExecuteLD( R_MCE_REFER_DIALOG ) ) + { + return ETrue; + } + return ETrue ; // this code still needs to be updated as it is wrong behaviour +} + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::ReferToParamsL +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::ReferToParamsL(TReferParams& aReferParams) +{ + + CCreateReferToDialog* dialog = new ( ELeave ) CCreateReferToDialog( &aReferParams ); + if (dialog->ExecuteLD( R_MCE_REFERTO_DIALOG ) ) + { + return ETrue; + } + return ETrue ; // this code still needs to be updated as it is wrong behaviour +} + +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::CreateMceSettingsL +// ----------------------------------------------------------------------------- +// + +void CMCETestUIAppUi::CreateMceSettingsL() +{ + CCreateMceSettingsDialog* dialog = new(ELeave)CCreateMceSettingsDialog(iEngine); + dialog->ExecuteLD(R_MCE_MCESETTINGS_DIALOG ); + +} + +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::CreateMceValueSettingsL +// ----------------------------------------------------------------------------- +// + +void CMCETestUIAppUi::CreateMceValueSettingsL() + { + CCreateMceValueSettingsDialog* dialog = new(ELeave)CCreateMceValueSettingsDialog(iEngine); + dialog->ExecuteLD(R_MCE_VALUE_SETTINGS_DIALOG ); + + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::HandleCommandL +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::HandleCommandL(TInt aCommand) + { + switch (aCommand) + { + case EAknSoftkeyExit: + case EEikCmdExit: + { + Exit(); + break; + } + case EAknSoftkeyBack: + { + iSessionView->ChangeToMainViewL(); + break; + } + case EAknSoftkeyOptions: + { + if ( iView ) + { + iView->HandleCommandL(aCommand); + } + break; + } + default: + break; + + } + } + +// ----------------------------------------------------------------------------- +// CMCETestUIAppUi::ProcessCommandL +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::ProcessCommandL(TInt aCommand) + { + if ( aCommand == EAknSoftkeyOptions) + { + if ( iView ) + { + iView->HandleCommandL(aCommand); + } + return; + } + CAknViewAppUi::ProcessCommandL(aCommand); + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::ChangeToMainViewL +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::ChangeToMainViewL() + { + iSessionView->ChangeToMainViewL(); + } +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::IsVideoEnabled +// ----------------------------------------------------------------------------- +// +TBool CMCETestUIAppUi::IsVideoEnabled() + { + return iEnableVideo; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::EnableVideo +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::EnableVideo() + { + iMainView->iContainer->MakeVisible( EFalse ); +// iMainView->MakeVisible( EFalse ); + iEnableVideo = ETrue; + } + +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::DisableVideo +// ----------------------------------------------------------------------------- +// +void CMCETestUIAppUi::DisableVideo() + { + iMainView->iContainer->MakeVisible( ETrue ); +// iMainView->MakeVisible( ETrue ); + + iEnableVideo = EFalse; + } +// ----------------------------------------------------------------------------- +// CMCETestUIEngine::DisableVideo +// ----------------------------------------------------------------------------- +// +TRect CMCETestUIAppUi::GetRect() + { + return ClientRect(); + }