sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Part of the MVS Application for TechView sl@0: // sl@0: sl@0: sl@0: #include "MVSAudioSettingDialog.h" sl@0: #include "MVSApp.hrh" sl@0: sl@0: sl@0: void CMVSAudioSettingDialog::SetupDialogLD(TInt aNoRepeats, sl@0: TTimeIntervalMicroSeconds aTrailingSilence,TInt aAudioPriority, sl@0: TMdaPriorityPreference aPriorityPreference, TInt& aMaxFileBuf, sl@0: CMVSAppUi* aAppUi) sl@0: { sl@0: CMVSAudioSettingDialog* dialog = new (ELeave) CMVSAudioSettingDialog(aNoRepeats, sl@0: aTrailingSilence,aAudioPriority, aPriorityPreference, aMaxFileBuf, aAppUi); sl@0: dialog->ExecuteLD(R_NEW_MVS_DIALOG_AUDIOSETTING); sl@0: } sl@0: sl@0: void CMVSAudioSettingDialog::PreLayoutDynInitL() sl@0: { sl@0: CEikNumberEditor* repeatControl = static_cast(Control(EMVSCmdSetRepeats)); sl@0: CEikNumberEditor* myTrSilenceControl = static_cast(Control(EMVSCmdSetTrailingSilence)); sl@0: iMaxFileSizeCtrl = static_cast(Control(EMVSCmdSetMaxFileSizeNum)); sl@0: sl@0: if(iMaxFileBuf>0) sl@0: { sl@0: iMaxFileSizeCtrl->SetNumber(iMaxFileBuf); sl@0: } sl@0: else sl@0: { sl@0: iMaxFileSizeCtrl->SetNumber(0); sl@0: } sl@0: //Now seed the controls with appropriate values sl@0: if(repeatControl) sl@0: { sl@0: repeatControl->SetNumber(iNoRepeats); sl@0: } sl@0: if(myTrSilenceControl) sl@0: { sl@0: myTrSilenceControl->SetNumber(I64INT(iTrailingSilence.Int64()/1000000)); sl@0: } sl@0: // Get a downcasted pointer to the controls sl@0: CEikChoiceList* audioPriority = static_cast(Control(EMVSCmdSetAudioPriority)); sl@0: sl@0: CEikChoiceList* audioPriorityPref = static_cast(Control(EMVSCmdSetAudioPriorityPreference)); sl@0: sl@0: sl@0: if(audioPriority) sl@0: { sl@0: //Set the current item based on the argument passed to the object sl@0: switch (iAudioPriority) sl@0: { sl@0: case(EMdaPriorityMin): sl@0: audioPriority->SetCurrentItem(0); sl@0: break; sl@0: sl@0: case(EMdaPriorityMax): sl@0: audioPriority->SetCurrentItem(2); sl@0: break; sl@0: sl@0: case(EMdaPriorityNormal): sl@0: default: sl@0: audioPriority->SetCurrentItem(1); sl@0: break; sl@0: } sl@0: } sl@0: if(audioPriorityPref) sl@0: { sl@0: //Set the priority preference based on the argument passed to the object sl@0: switch (iPriorityPreference) sl@0: { sl@0: case(EMdaPriorityPreferenceTime): sl@0: audioPriorityPref->SetCurrentItem(1); sl@0: break; sl@0: sl@0: case(EMdaPriorityPreferenceQuality): sl@0: audioPriorityPref->SetCurrentItem(2); sl@0: break; sl@0: sl@0: case(EMdaPriorityPreferenceTimeAndQuality): sl@0: audioPriorityPref->SetCurrentItem(3); sl@0: break; sl@0: sl@0: case(EMdaPriorityPreferenceNone): sl@0: default: sl@0: audioPriorityPref->SetCurrentItem(0); sl@0: } sl@0: } sl@0: } sl@0: sl@0: sl@0: CMVSAudioSettingDialog::CMVSAudioSettingDialog(TInt aNoRepeats, sl@0: TTimeIntervalMicroSeconds aTrailingSilence,TInt aAudioPriority, sl@0: TMdaPriorityPreference aPriorityPreference, TInt& aMaxFileBuf, sl@0: CMVSAppUi* aAppUi) sl@0: : iAppUi(aAppUi),iAudioPriority(aAudioPriority), iPriorityPreference (aPriorityPreference), sl@0: iNoRepeats(aNoRepeats),iTrailingSilence(aTrailingSilence), iMaxFileBuf(aMaxFileBuf) sl@0: { sl@0: sl@0: } sl@0: sl@0: TKeyResponse CMVSAudioSettingDialog::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType) sl@0: { sl@0: if(aKeyEvent.iCode == EKeyEnter && aType == EEventKeyDown) sl@0: { sl@0: OkToExitL(EMVSButtonUpdate); sl@0: } sl@0: else if(aKeyEvent.iCode == EKeyEscape && aType == EEventKeyDown) sl@0: { sl@0: OkToExitL(EMVSButtonCancel); sl@0: } sl@0: return CEikDialog::OfferKeyEventL(aKeyEvent,aType); sl@0: } sl@0: sl@0: TBool CMVSAudioSettingDialog::OkToExitL(TInt aButtonId) sl@0: { sl@0: // Get a pointer to the progress bar control. sl@0: // Downcast the returned CCoeControl* pointer to the correct type. sl@0: CEikChoiceList* audioPriority = static_cast(Control(EMVSCmdSetAudioPriority)); sl@0: sl@0: CEikChoiceList* audioPriorityPref = static_cast(Control(EMVSCmdSetAudioPriorityPreference)); sl@0: sl@0: iMaxFileBuf = iMaxFileSizeCtrl->Number(); sl@0: iAppUi->SetMaxFileSize(iMaxFileBuf); sl@0: //Identify current Audio Priority item, and set that sl@0: if(audioPriority) sl@0: { sl@0: switch (audioPriority->CurrentItem()) sl@0: { sl@0: case 0: sl@0: iAudioPriority = EMdaPriorityMin; sl@0: break; sl@0: sl@0: case 1: sl@0: iAudioPriority = EMdaPriorityNormal; sl@0: break; sl@0: sl@0: case 2: sl@0: iAudioPriority = EMdaPriorityMax; sl@0: break; sl@0: sl@0: default: sl@0: iAudioPriority = EMdaPriorityNormal; sl@0: break; sl@0: } sl@0: } sl@0: sl@0: //Now do the same for the Priority Preference. sl@0: if(audioPriorityPref) sl@0: { sl@0: switch (audioPriorityPref->CurrentItem()) sl@0: { sl@0: case 1: sl@0: iPriorityPreference = EMdaPriorityPreferenceTime; sl@0: break; sl@0: sl@0: case 2: sl@0: iPriorityPreference = EMdaPriorityPreferenceQuality; sl@0: break; sl@0: sl@0: case 3: sl@0: iPriorityPreference = EMdaPriorityPreferenceTimeAndQuality; sl@0: break; sl@0: sl@0: case 0: sl@0: default: sl@0: iPriorityPreference = EMdaPriorityPreferenceNone; sl@0: break; sl@0: } sl@0: } sl@0: iNoRepeats = static_cast sl@0: (Control(EMVSCmdSetRepeats))->Number(); sl@0: sl@0: //Update the trailing silence from the control. sl@0: TInt64 silence64 = (static_cast sl@0: (Control(EMVSCmdSetTrailingSilence))->Number()); sl@0: TInt silence = I64INT(silence64*1000000); sl@0: TTimeIntervalMicroSeconds theSilence(silence); sl@0: sl@0: switch(aButtonId) sl@0: { sl@0: case(EMVSButtonUpdate): sl@0: iAppUi->SetPriorityL(iAudioPriority, iPriorityPreference); sl@0: iAppUi->SetRepeats(iNoRepeats, theSilence); sl@0: return ETrue; sl@0: sl@0: case(EMVSButtonCancel): sl@0: return ETrue; sl@0: default: sl@0: break; sl@0: } sl@0: return ETrue; sl@0: }