--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxplugins/viewplugins/views/audioeffectsview/src/mpxaudioeffectsitems.cpp Thu Dec 17 08:45:05 2009 +0200
@@ -0,0 +1,280 @@
+/*
+* Copyright (c) 2006 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: Setting List
+*
+*/
+
+
+// INCLUDE FILES
+
+#include <aknnotewrappers.h>
+#include <aknsettingpage.h>
+#include <aknslidersettingpage.h>
+#include <eikfrlbd.h>
+#include <eikfrlb.h>
+#include <mpxlog.h>
+
+#include <mpxaudioeffectsview.rsg>
+#include <avkon.rsg>
+#include <StringLoader.h>
+
+// User Includes
+#include "mpxaudioeffectsitems.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::CMPXAudioEffectsItems()
+// Constructor
+// -----------------------------------------------------------------------------
+//
+CMPXAudioEffectsItems::CMPXAudioEffectsItems(CMPXAudioEffectsModel* aModel)
+ {
+ iModel = aModel;
+ }
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::~CMPXAudioEffectsItems()
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CMPXAudioEffectsItems::~CMPXAudioEffectsItems()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::SizeChanged()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CMPXAudioEffectsItems::SizeChanged()
+ {
+ if( ListBox() )
+ {
+ ListBox()->SetRect( Rect() );
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::CreateSettingItemL()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+CAknSettingItem* CMPXAudioEffectsItems::CreateSettingItemL(TInt aIdentifier)
+ {
+ CAknSettingItem* settingItem = NULL;
+
+ switch (aIdentifier)
+ {
+ case EEqualizerSettingItem: // Not used
+ settingItem = new (ELeave) CAknTextSettingItem(aIdentifier,
+ iModel->iPresetName);
+ break;
+ case EBalanceSettingItem:
+ settingItem = new (ELeave) CAknSliderSettingItem(aIdentifier,
+ iModel->iBalance);
+ break;
+ case EReverbSettingItem:
+ settingItem = new ( ELeave ) CAknEnumeratedTextPopupSettingItem(
+ aIdentifier,iModel->iReverb);
+ break;
+ case EStereoWideningSettingItem:
+ settingItem = new (ELeave) CAknBinaryPopupSettingItem(aIdentifier,
+ iModel->iStereo);
+ break;
+ case ELoudnessItem:
+ settingItem = new (ELeave) CAknBinaryPopupSettingItem(aIdentifier,
+ iModel->iLoudness);
+ break;
+ }
+ return settingItem;
+ }
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::ChangeSelectedItemL()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CMPXAudioEffectsItems::ChangeSelectedItemL()
+ {
+ EditItemL(ListBox()->CurrentItemIndex(), ETrue);
+ }
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::EditItemL()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CMPXAudioEffectsItems::EditItemL(TInt aIndex, TBool aCalledFromMenu)
+ {
+ if (aIndex==0) //balance
+ {
+ TInt oldValue = iModel->iBalance;
+
+ CAknSliderSettingPage* dlg =
+ new(ELeave) CAknSliderSettingPage(R_BALANCE_SETTING_PAGE,
+ iModel->iBalance);
+ dlg->SetSettingId(EBalanceSettingItem);
+ dlg->SetSettingPageObserver(this);
+ SetBalanceTextL(dlg);
+ dlg->ExecuteLD(CAknSettingPage::EUpdateWhenChanged);
+
+ MPX_TRAPD( err, iModel->SetBalanceL() );
+ if(err != KErrNone)// the slider button will return to the previous
+ // position if an error accures
+ {
+ iModel->iBalance = oldValue;
+ TRAP_IGNORE(iModel->SetBalanceL()); // update value in file
+ }
+
+ // Redraw the text box correctly
+ CAknSliderSettingItem* settingItem = (CAknSliderSettingItem*)
+ SettingItemArray()->At(0);
+ settingItem->LoadL();
+ settingItem->UpdateListBoxTextL();
+ }
+ else if (aIndex==1) //Loundness
+ {
+ TBool oldLoudnessValue = iModel->iLoudness;
+ CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );
+ (*SettingItemArray())[aIndex]->StoreL(); //activates change in listbox
+ MPX_TRAPD( err, iModel->SetLoudnessL() ); //calls engine to change API
+
+ if (err != KErrNone) //change in UI will not accure if API is not changed
+ {
+ CAknSettingItemList::EditItemL( aIndex, EFalse );
+ iModel->iLoudness = oldLoudnessValue;
+ TRAP_IGNORE(iModel->SetLoudnessL());
+ }
+ }
+ else if (aIndex==2)//stereo widening
+ {
+ TBool oldStereoValue = iModel->iStereo;
+ CAknSettingItemList::EditItemL( aIndex, aCalledFromMenu );
+ (*SettingItemArray())[aIndex]->StoreL(); //activates change in listbox
+ MPX_TRAPD( err, iModel->SetStereoWideningL() ); //calls engine to change API
+
+ if (err != KErrNone) //change in UI will not accure if API is not
+ //changed(=error in API)
+ {
+ CAknSettingItemList::EditItemL( aIndex, EFalse );
+ iModel->iStereo = oldStereoValue;
+ TRAP_IGNORE(iModel->SetStereoWideningL()); // update value in file
+ }
+ }
+ DrawDeferred();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::HandleSettingPageEventL()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CMPXAudioEffectsItems::HandleSettingPageEventL(
+ CAknSettingPage* aSettingPage,
+ TAknSettingPageEvent aEventType)
+ {
+ TInt id = aSettingPage->SettingId();
+
+ if (aEventType == EEventSettingChanged)
+ {
+ switch (id)
+ {
+ case EBalanceSettingItem:
+ {
+ CAknSliderSettingPage* slider =
+ static_cast<CAknSliderSettingPage*>(aSettingPage);
+ iModel->iBalance = slider->SliderControl()->Value();
+ iModel->SetBalanceL();
+ SetBalanceTextL( slider );
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMPXAudioEffectsItems::SetBalanceTextL()
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CMPXAudioEffectsItems::SetBalanceTextL( CAknSliderSettingPage* slider )
+ {
+ HBufC* title = NULL;
+
+ switch ( iModel->iBalance )
+ {
+
+ case -100:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_LEFT100 );
+ break;
+ }
+ case -75:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_LEFT75 );
+ break;
+ }
+ case -50:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_LEFT50 );
+ break;
+ }
+ case -25:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_LEFT25 );
+ break;
+ }
+ case 0:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_CENTER );
+ break;
+ }
+ case 25:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_RIGHT25 );
+ break;
+ }
+ case 50:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_RIGHT50 );
+ break;
+ }
+ case 75:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_RIGHT75 );
+ break;
+ }
+ case 100:
+ {
+ title = StringLoader::LoadLC( R_AUDIOEFFECT_BALANCE_RIGHT100 );
+ break;
+ }
+ default:
+ break;
+ }
+
+ if( title )
+ {
+ slider->SetSettingTextL( *title );
+ slider->DrawNow();
+ CleanupStack::PopAndDestroy( title );
+ }
+ }
+
+// End of file