sl@0: /* sl@0: * Copyright (c) 2006 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: Utility to Access the StereoWidening Effect sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: // INCLUDE FILES sl@0: #include sl@0: #include sl@0: #include sl@0: //#include sl@0: #include "TempStereoWidening.h" sl@0: #include "StereoWideningInternalCRKeys.h" sl@0: #include sl@0: sl@0: // ============================ MEMBER FUNCTIONS =============================== sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::CStereoWideningUtility sl@0: // C++ default constructor can NOT contain any code, that sl@0: // might leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: CStereoWideningUtility::CStereoWideningUtility() sl@0: : iStereoWidening(NULL), sl@0: iPresetRepository(NULL) sl@0: { sl@0: } sl@0: sl@0: sl@0: // Destructor sl@0: CStereoWideningUtility::~CStereoWideningUtility() sl@0: { sl@0: iPresetArray.Close(); sl@0: iFullPresetArray.Close(); sl@0: delete iPresetRepository; sl@0: delete iTransStereoWidening; sl@0: delete iStereoWidening; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMMFDevSound& aDevSound) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aDevSound); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMdaAudioConvertUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMdaAudioInputStream& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMdaAudioOutputStream& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMdaAudioPlayerUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMdaAudioRecorderUtility& aUtility ) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility,ETrue,EFalse,0); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMdaAudioToneUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CCustomCommandUtility* aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(MCustomInterface& aCustomInterface) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aCustomInterface); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CMidiClientUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CDrmPlayerUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ConstructL sl@0: // Symbian 2nd phase constructor can leave. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::ConstructL(CVideoPlayerUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ConstructL")); sl@0: #endif sl@0: iStereoWidening = CStereoWidening::NewL(aUtility); sl@0: TInt level = iStereoWidening->StereoWideningLevel(); sl@0: sl@0: iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening); sl@0: sl@0: iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets); sl@0: sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMMFDevSound& aDevSound) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aDevSound); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioConvertUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioInputStream& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioOutputStream& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioPlayerUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioRecorderUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioToneUtility& aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CCustomCommandUtility* aUtility) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(MCustomInterface& aCustomInterface) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aCustomInterface); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMidiClientUtility& aUtility) sl@0: { sl@0: sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CDrmPlayerUtility& aUtility) sl@0: { sl@0: sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NewL sl@0: // Two-phased constructor. sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CVideoPlayerUtility& aUtility) sl@0: { sl@0: sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NewL")); sl@0: #endif sl@0: CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility; sl@0: CleanupStack::PushL( self ); sl@0: self->ConstructL(aUtility); sl@0: CleanupStack::Pop(self); sl@0: return self; sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ApplyPresetL() sl@0: // Applies the Preset to the StereoWidening Object sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C void CStereoWideningUtility::ApplyPresetL( sl@0: TInt aPresetIndex) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ApplyPresetL")); sl@0: #endif sl@0: // Get the Preset from the Central Repository sl@0: // and Apply it to the StereoWidening Object sl@0: // using SetBandData method. After that Just Enable() the Effect sl@0: sl@0: TInt level; sl@0: sl@0: if(aPresetIndex > (iPresetArray.Count() - 1)) sl@0: User::Leave(KErrArgument); sl@0: sl@0: // Write the StereoWidening Data in the first available NULL Space sl@0: for( TInt j = 0; j < iFullPresetArray.Count();j++) sl@0: { sl@0: if( iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) sl@0: { sl@0: iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,level); sl@0: iStereoWidening->SetStereoWideningLevelL(level); sl@0: // Applying the Settings to the Audio StereoWidening sl@0: // iStereoWidening->ApplyL(); sl@0: sl@0: iStereoWidening->EnableL(); sl@0: break; sl@0: } sl@0: } sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::CreatePresetL(TDesC& aName,CStereoWidening& aStereoWidening) sl@0: // Applies the Preset to the StereoWidening Object sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: sl@0: EXPORT_C void CStereoWideningUtility:: CreatePresetL( sl@0: TDesC& aName, sl@0: CStereoWidening& aStereoWideningUI) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::CreatePresetL")); sl@0: #endif sl@0: // Get the Preset from the UI and create a DesC using sl@0: // DoBandData() method and then store it to the sl@0: // Central Repository sl@0: sl@0: __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument)); sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: sl@0: iTransStereoWidening = &aStereoWideningUI; sl@0: sl@0: //Create New Keys at the End of the Repository sl@0: TInt currentNumber = 0; sl@0: // Get the number of User Defined Presets in the Repository sl@0: iPresetRepository->Get(KStereoWideningNumberOfUserDefinedPresets,currentNumber); sl@0: sl@0: TUint8 level = iTransStereoWidening->StereoWideningLevel(); sl@0: sl@0: // Calculate and Create the StereoWidening Data for the New Preset sl@0: iPresetRepository->Create(currentNumber*2+KStereoWideningUserDefinedPresetStart,level); sl@0: // Calculate and create the New Preset Name in the End sl@0: iPresetRepository->Create(currentNumber*2+KStereoWideningUserDefinedPresetStartName,aName); sl@0: // Update the Number of UserDefined Presets in the End sl@0: // Since we created new Keys for the Name and the Descriptor sl@0: currentNumber += 1; sl@0: iPresetRepository->Set(KStereoWideningNumberOfUserDefinedPresets,currentNumber); sl@0: iPresetRepository->Get(KStereoWideningPresetsCounter,currentNumber); sl@0: iPresetRepository->Set(KStereoWideningPresetsCounter,currentNumber + 1); sl@0: sl@0: // Refresh the iFullPresetArray sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::DeletePresetL() sl@0: // Deletes the Preset from the Central Repository sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C const TDesC& CStereoWideningUtility::GetPresetL( sl@0: TInt aPresetIndex) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::GetPresetL")); sl@0: #endif sl@0: // Get the Preset from the Central Repository sl@0: // and Apply it to the StereoWidening Object sl@0: // using SetBandData method. After that Just Enable() the Effect sl@0: sl@0: sl@0: if(aPresetIndex > (iPresetArray.Count() - 1)) sl@0: User::Leave(KErrArgument); sl@0: sl@0: TBool presetFound = EFalse; sl@0: TInt level; sl@0: sl@0: // Write the StereoWidening Data in the first available NULL Space sl@0: for(TInt j = 0; j < iFullPresetArray.Count();j++) sl@0: { sl@0: if( iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) sl@0: { sl@0: iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,level); sl@0: iTransStereoWidening->SetStereoWideningLevelL(level); sl@0: presetFound = ETrue; sl@0: return iFullPresetArray[j].iPresetName; sl@0: } sl@0: } sl@0: if(!presetFound) sl@0: User::Leave(KErrNotFound); sl@0: sl@0: return KNullDesC; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::DeletePresetL() sl@0: // Deletes the Preset from the Central Repository sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C void CStereoWideningUtility::DeletePresetL( sl@0: TInt aPresetIndex) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::DeletePresetL")); sl@0: #endif sl@0: // Get the Name from the PresetIndex sl@0: // This Preset Index is from the Array returned to the UI sl@0: sl@0: TInt err(KErrNone); sl@0: TBool presetFound = EFalse; sl@0: sl@0: // Leave if it deletes a predefined preset sl@0: TInt currentNumberOfPredefinedPresets = 0; sl@0: sl@0: // Get the number of User Defined Presets in the Repository sl@0: iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,currentNumberOfPredefinedPresets); sl@0: sl@0: if (aPresetIndex < currentNumberOfPredefinedPresets) //it is a predefined preset, sl@0: { sl@0: User::Leave(KErrArgument); sl@0: } sl@0: sl@0: if(aPresetIndex > (iPresetArray.Count() - 1)) sl@0: User::Leave(KErrArgument); sl@0: sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: #ifdef _DEBUG sl@0: RDebug::RawPrint(iPresetArray[aPresetIndex].iPresetName); sl@0: #endif sl@0: sl@0: // Deletes the Preset from the iFullPresetArray and then sl@0: // rewrite it to the Central Repository sl@0: for(TInt j = 0; j < iFullPresetArray.Count();j++) sl@0: { sl@0: sl@0: if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) && sl@0: (iFullPresetArray[j].iPresetName.Length())) sl@0: { sl@0: sl@0: presetFound = ETrue; sl@0: TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,KNullDesC)); sl@0: TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,KNullDesC)); sl@0: if(err != KErrNone) sl@0: { sl@0: break; sl@0: } sl@0: else sl@0: { sl@0: iFullPresetArray[j].iPresetName.FillZ(0); sl@0: iFullPresetArray[j].iPresetNameKey = 0; sl@0: iFullPresetArray[j].iPresetDescriptionKey = 0; sl@0: break; sl@0: } sl@0: } sl@0: #ifdef _DEBUG sl@0: RDebug::RawPrint(iFullPresetArray[j].iPresetName); sl@0: #endif sl@0: } sl@0: sl@0: if(!presetFound) sl@0: User::Leave(KErrNotFound); sl@0: // After This Update the iPresetArray for the UI sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::DisablePresetL() sl@0: // Disable the Preset sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: sl@0: EXPORT_C void CStereoWideningUtility::DisableStereoWideningL() sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::DisableStereoWideningL")); sl@0: #endif sl@0: sl@0: if(iStereoWidening) sl@0: { sl@0: iStereoWidening->DisableL(); sl@0: } sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::StereoWidening() sl@0: // Applies the Preset to the StereoWidening Object sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C CStereoWidening& CStereoWideningUtility::StereoWidening() sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::StereoWidening()")); sl@0: #endif sl@0: sl@0: return *iTransStereoWidening; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ModifyPresetL() sl@0: // Applies the Preset to the StereoWidening Object sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C void CStereoWideningUtility::ModifyPresetL( sl@0: TInt aPresetIndex, sl@0: TDesC& aName, sl@0: CStereoWidening& aStereoWideningUI) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ModifyPresetL")); sl@0: #endif sl@0: sl@0: __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument)); sl@0: // Modifies the Preset Data in the Central Repository sl@0: // with the updated Name and StereoWidening Settings for the sl@0: // given PresetIndex sl@0: sl@0: if(aPresetIndex > (iPresetArray.Count() - 1)) sl@0: User::Leave(KErrArgument); sl@0: sl@0: TUint8 level; sl@0: TBuf<32> presetName; sl@0: presetName = iPresetArray[aPresetIndex].iPresetName; sl@0: sl@0: iTransStereoWidening = &aStereoWideningUI; sl@0: sl@0: // Write the StereoWidening Data in the first available NULL Space sl@0: for( TInt j = 0; j < iFullPresetArray.Count();j++) sl@0: { sl@0: if( iFullPresetArray[j].iPresetName == presetName) sl@0: { sl@0: iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,aName); sl@0: level = iTransStereoWidening->StereoWideningLevel(); sl@0: iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,level); sl@0: break; sl@0: } sl@0: } sl@0: UpdateFullPresetArrayFromCenRep(iFullPresetArray); sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::NumberOfPreDefinedPresets() sl@0: // Applies the Preset to the StereoWidening Object sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: sl@0: sl@0: EXPORT_C TUint32 CStereoWideningUtility::NumberOfPreDefinedPresets() const sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::NumberOfPreDefinedPresets")); sl@0: #endif sl@0: sl@0: TInt numberOfPresets; sl@0: iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,numberOfPresets); sl@0: return numberOfPresets; sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::Presets() sl@0: // Applies the Preset to the StereoWidening Object sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C TArray CStereoWideningUtility::Presets() sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::Presets")); sl@0: #endif sl@0: sl@0: // returns all the Presets from the System Defined and sl@0: // User Defined Preset Array in the Central Repository sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: return iPresetArray.Array(); sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::ResetPresetL(TInt aPresetIndex) sl@0: // Applies the Preset to the StereoWidening Object sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: EXPORT_C void CStereoWideningUtility::ResetPresetL(TInt aPresetIndex) sl@0: { sl@0: #ifdef _DEBUG sl@0: RDebug::Print(_L("CStereoWideningUtility::ResetPresetL")); sl@0: #endif sl@0: sl@0: if(aPresetIndex > (iPresetArray.Count() - 1)) sl@0: User::Leave(KErrArgument); sl@0: sl@0: TBuf<32> aName; sl@0: aName = iPresetArray[aPresetIndex].iPresetName; sl@0: sl@0: TInt currentNumber = 0; sl@0: // Get the number of System Defined Presets in the Repository sl@0: iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,currentNumber); sl@0: sl@0: if(aPresetIndex >= currentNumber) sl@0: User::Leave(KErrNotSupported); sl@0: sl@0: sl@0: for( TInt j = 0; j < currentNumber;j++) sl@0: { sl@0: if( iFullPresetArray[j].iPresetName == aName) sl@0: { sl@0: iPresetRepository->Reset(iFullPresetArray[j].iPresetDescriptionKey); sl@0: iPresetRepository->Reset(iFullPresetArray[j].iPresetNameKey); sl@0: } sl@0: } sl@0: sl@0: UpdatePresetArray(iPresetArray,iFullPresetArray); sl@0: } sl@0: sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::UpdatePresetArrayFromCenRep(RArray &aFullPresetArray) sl@0: // Updates the Array with the Values in Central Repository sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: sl@0: void CStereoWideningUtility::UpdateFullPresetArrayFromCenRep(RArray& aFullPresetArray) sl@0: { sl@0: sl@0: aFullPresetArray.Reset(); sl@0: TEfStereoWideningUtilityPreset tempPreset; sl@0: sl@0: sl@0: TInt numberOfUserDefinedPresets = 0; sl@0: TInt numberOfPreDefinedPresets = 0; sl@0: sl@0: iPresetRepository->Get(KStereoWideningNumberOfUserDefinedPresets,numberOfUserDefinedPresets); sl@0: iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,numberOfPreDefinedPresets); sl@0: sl@0: for( TInt j = 0; j < (numberOfPreDefinedPresets); j++) sl@0: { sl@0: tempPreset.iPresetDescriptionKey = KStereoWideningPreDefinedPresetStart + (2 * j); sl@0: tempPreset.iPresetNameKey = KStereoWideningPreDefinedPresetStartName + (2 * j); sl@0: iPresetRepository->Get((KStereoWideningPreDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName); sl@0: #ifdef _DEBUG sl@0: RDebug::RawPrint(tempPreset.iPresetName); sl@0: #endif sl@0: aFullPresetArray.Append(tempPreset); sl@0: sl@0: } sl@0: sl@0: for( TInt j = 0; j < (numberOfUserDefinedPresets); j++) sl@0: { sl@0: tempPreset.iPresetDescriptionKey = KStereoWideningUserDefinedPresetStart + (2 * j); sl@0: tempPreset.iPresetNameKey = KStereoWideningUserDefinedPresetStartName + (2 * j); sl@0: iPresetRepository->Get((KStereoWideningUserDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName); sl@0: #ifdef _DEBUG sl@0: RDebug::RawPrint(tempPreset.iPresetName); sl@0: #endif sl@0: aFullPresetArray.Append(tempPreset); sl@0: sl@0: } sl@0: sl@0: } sl@0: sl@0: // ----------------------------------------------------------------------------- sl@0: // CStereoWideningUtility::UpdatePresetArray(RArray& aPresetArray,const RArray &aFullPresetArray) sl@0: // Creates the Descriptor Array of Names of the Presets Stored in Central Repository sl@0: // (other items were commented in a header). sl@0: // ----------------------------------------------------------------------------- sl@0: // sl@0: void CStereoWideningUtility::UpdatePresetArray(RArray& aPresetArray,const RArray& aFullPresetArray) sl@0: { sl@0: sl@0: aPresetArray.Reset(); sl@0: TEfStereoWideningUtilityPreset tempClientArray; sl@0: sl@0: // Write the StereoWidening Data in the first available NULL Space sl@0: for( TInt j = 0; j < aFullPresetArray.Count();j++) sl@0: { sl@0: if( aFullPresetArray[j].iPresetName.Length() != 0) sl@0: { sl@0: sl@0: tempClientArray.iPresetName = aFullPresetArray[j].iPresetName; sl@0: tempClientArray.iPresetNameKey = aFullPresetArray[j].iPresetNameKey; sl@0: tempClientArray.iPresetDescriptionKey = aFullPresetArray[j].iPresetDescriptionKey; sl@0: aPresetArray.Append(tempClientArray); sl@0: } sl@0: RDebug::Print(_L("Name Length %d "),aFullPresetArray[j].iPresetName.Length()); sl@0: RDebug::RawPrint(aFullPresetArray[j].iPresetName); sl@0: } sl@0: sl@0: } sl@0: sl@0: sl@0: // ========================== OTHER EXPORTED FUNCTIONS ========================= sl@0: sl@0: sl@0: sl@0: // End of File