os/mm/devsoundextensions/effectspresets/AudioEqualizerUtility/src/AudioEqualizerutility.cpp
First public contribution.
2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
4 * This component and the accompanying materials are made available
5 * under the terms of "Eclipse Public License v1.0"
6 * which accompanies this distribution, and is available
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Utility to Access the Equalizer Effect
22 #include <AudioEqualizerUtility.h>
23 #include <DrmAudioSamplePlayer.h>
24 #include "TempAudioEqualizer.h"
25 #include "AudioEqUtilityInternalCRKeys.h"
26 #include <videoplayer.h>
28 // ============================ MEMBER FUNCTIONS ===============================
30 // -----------------------------------------------------------------------------
31 // CAudioEqualizerUtility::CAudioEqualizerUtility
32 // C++ default constructor can NOT contain any code, that
34 // -----------------------------------------------------------------------------
36 CAudioEqualizerUtility::CAudioEqualizerUtility()
37 : iAudioEqualizer(NULL),
39 iPresetRepository(NULL)
45 CAudioEqualizerUtility::~CAudioEqualizerUtility()
48 iFullPresetArray.Close();
49 delete iPresetRepository;
50 delete iTransAudioEqualizer;
51 delete iAudioEqualizer;
56 // -----------------------------------------------------------------------------
57 // CAudioEqualizerUtility::ConstructL
58 // Symbian 2nd phase constructor can leave.
59 // -----------------------------------------------------------------------------
61 void CAudioEqualizerUtility::ConstructL(CMMFDevSound& aDevSound)
64 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
66 iAudioEqualizer = CAudioEqualizer::NewL(aDevSound);
67 TInt numberBands = iAudioEqualizer->NumberOfBands();
69 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
71 //iBassBoost = CBassBoost::NewL(aDevSound,EFalse);
72 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
75 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
76 UpdatePresetArray(iPresetArray,iFullPresetArray);
78 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
79 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
83 // -----------------------------------------------------------------------------
84 // CAudioEqualizerUtility::ConstructL
85 // Symbian 2nd phase constructor can leave.
86 // -----------------------------------------------------------------------------
88 void CAudioEqualizerUtility::ConstructL(CMdaAudioConvertUtility& aUtility)
91 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
93 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
94 TInt numberBands = iAudioEqualizer->NumberOfBands();
96 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
98 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
99 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
102 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
103 UpdatePresetArray(iPresetArray,iFullPresetArray);
105 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
106 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
109 // -----------------------------------------------------------------------------
110 // CAudioEqualizerUtility::ConstructL
111 // Symbian 2nd phase constructor can leave.
112 // -----------------------------------------------------------------------------
114 void CAudioEqualizerUtility::ConstructL(CMdaAudioInputStream& aUtility)
117 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
119 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
120 TInt numberBands = iAudioEqualizer->NumberOfBands();
122 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
124 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
125 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
128 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
129 UpdatePresetArray(iPresetArray,iFullPresetArray);
131 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
132 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
135 // -----------------------------------------------------------------------------
136 // CAudioEqualizerUtility::ConstructL
137 // Symbian 2nd phase constructor can leave.
138 // -----------------------------------------------------------------------------
140 void CAudioEqualizerUtility::ConstructL(CMdaAudioOutputStream& aUtility)
143 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
145 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
146 TInt numberBands = iAudioEqualizer->NumberOfBands();
148 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
150 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
151 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
154 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
155 UpdatePresetArray(iPresetArray,iFullPresetArray);
157 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
158 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
161 // -----------------------------------------------------------------------------
162 // CAudioEqualizerUtility::ConstructL
163 // Symbian 2nd phase constructor can leave.
164 // -----------------------------------------------------------------------------
166 void CAudioEqualizerUtility::ConstructL(CMdaAudioPlayerUtility& aUtility)
169 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
171 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
172 TInt numberBands = iAudioEqualizer->NumberOfBands();
174 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
176 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
177 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
180 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
181 UpdatePresetArray(iPresetArray,iFullPresetArray);
183 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
184 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
187 // -----------------------------------------------------------------------------
188 // CAudioEqualizerUtility::ConstructL
189 // Symbian 2nd phase constructor can leave.
190 // -----------------------------------------------------------------------------
192 void CAudioEqualizerUtility::ConstructL(CMdaAudioRecorderUtility& aUtility )
195 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
197 iAudioEqualizer = CAudioEqualizer::NewL(aUtility,ETrue);
198 TInt numberBands = iAudioEqualizer->NumberOfBands();
200 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
202 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
203 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
206 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
207 UpdatePresetArray(iPresetArray,iFullPresetArray);
209 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
210 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
213 // -----------------------------------------------------------------------------
214 // CAudioEqualizerUtility::ConstructL
215 // Symbian 2nd phase constructor can leave.
216 // -----------------------------------------------------------------------------
218 void CAudioEqualizerUtility::ConstructL(CMdaAudioToneUtility& aUtility)
221 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
223 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
224 TInt numberBands = iAudioEqualizer->NumberOfBands();
226 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
228 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
229 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
232 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
233 UpdatePresetArray(iPresetArray,iFullPresetArray);
235 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
236 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
239 // -----------------------------------------------------------------------------
240 // CAudioEqualizerUtility::ConstructL
241 // Symbian 2nd phase constructor can leave.
242 // -----------------------------------------------------------------------------
244 void CAudioEqualizerUtility::ConstructL(CCustomCommandUtility* aUtility)
247 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
249 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
250 TInt numberBands = iAudioEqualizer->NumberOfBands();
252 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
254 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
255 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
258 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
259 UpdatePresetArray(iPresetArray,iFullPresetArray);
261 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
262 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
265 // -----------------------------------------------------------------------------
266 // CAudioEqualizerUtility::ConstructL
267 // Symbian 2nd phase constructor can leave.
268 // -----------------------------------------------------------------------------
270 void CAudioEqualizerUtility::ConstructL(MCustomInterface& aCustomInterface)
273 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
275 iAudioEqualizer = CAudioEqualizer::NewL(aCustomInterface);
276 TInt numberBands = iAudioEqualizer->NumberOfBands();
278 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
280 //iBassBoost = CBassBoost::NewL(aCustomInterface,EFalse);
281 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
284 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
285 UpdatePresetArray(iPresetArray,iFullPresetArray);
287 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
288 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
292 // -----------------------------------------------------------------------------
293 // CAudioEqualizerUtility::ConstructL
294 // Symbian 2nd phase constructor can leave.
295 // -----------------------------------------------------------------------------
297 void CAudioEqualizerUtility::ConstructL(CMidiClientUtility& aUtility)
300 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
302 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
303 TInt numberBands = iAudioEqualizer->NumberOfBands();
305 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
307 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
308 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
311 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
312 UpdatePresetArray(iPresetArray,iFullPresetArray);
314 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
315 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
318 // -----------------------------------------------------------------------------
319 // CAudioEqualizerUtility::ConstructL
320 // Symbian 2nd phase constructor can leave.
321 // -----------------------------------------------------------------------------
323 void CAudioEqualizerUtility::ConstructL(CDrmPlayerUtility& aUtility)
326 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
328 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
329 TInt numberBands = iAudioEqualizer->NumberOfBands();
331 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
333 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
334 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
337 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
338 UpdatePresetArray(iPresetArray,iFullPresetArray);
340 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
341 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
344 // -----------------------------------------------------------------------------
345 // CAudioEqualizerUtility::ConstructL
346 // Symbian 2nd phase constructor can leave.
347 // -----------------------------------------------------------------------------
349 void CAudioEqualizerUtility::ConstructL(CVideoPlayerUtility& aUtility)
352 RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
354 iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
355 TInt numberBands = iAudioEqualizer->NumberOfBands();
357 iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
359 //iBassBoost = CBassBoost::NewL(aUtility,EFalse);
360 iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
363 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
364 UpdatePresetArray(iPresetArray,iFullPresetArray);
366 iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
367 iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
370 // -----------------------------------------------------------------------------
371 // CAudioEqualizerUtility::NewL
372 // Two-phased constructor.
373 // -----------------------------------------------------------------------------
375 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMMFDevSound& aDevSound)
378 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
380 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
381 CleanupStack::PushL( self );
382 self->ConstructL(aDevSound);
383 CleanupStack::Pop(self);
388 // -----------------------------------------------------------------------------
389 // CAudioEqualizerUtility::NewL
390 // Two-phased constructor.
391 // -----------------------------------------------------------------------------
393 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioConvertUtility& aUtility)
396 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
398 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
399 CleanupStack::PushL( self );
400 self->ConstructL(aUtility);
401 CleanupStack::Pop(self);
406 // -----------------------------------------------------------------------------
407 // CAudioEqualizerUtility::NewL
408 // Two-phased constructor.
409 // -----------------------------------------------------------------------------
411 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioInputStream& aUtility)
414 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
416 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
417 CleanupStack::PushL( self );
418 self->ConstructL(aUtility);
419 CleanupStack::Pop(self);
424 // -----------------------------------------------------------------------------
425 // CAudioEqualizerUtility::NewL
426 // Two-phased constructor.
427 // -----------------------------------------------------------------------------
429 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioOutputStream& aUtility)
432 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
434 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
435 CleanupStack::PushL( self );
436 self->ConstructL(aUtility);
437 CleanupStack::Pop(self);
442 // -----------------------------------------------------------------------------
443 // CAudioEqualizerUtility::NewL
444 // Two-phased constructor.
445 // -----------------------------------------------------------------------------
447 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioPlayerUtility& aUtility)
450 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
452 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
453 CleanupStack::PushL( self );
454 self->ConstructL(aUtility);
455 CleanupStack::Pop(self);
460 // -----------------------------------------------------------------------------
461 // CAudioEqualizerUtility::NewL
462 // Two-phased constructor.
463 // -----------------------------------------------------------------------------
465 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioRecorderUtility& aUtility)
468 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
470 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
471 CleanupStack::PushL( self );
472 self->ConstructL(aUtility);
473 CleanupStack::Pop(self);
478 // -----------------------------------------------------------------------------
479 // CAudioEqualizerUtility::NewL
480 // Two-phased constructor.
481 // -----------------------------------------------------------------------------
483 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioToneUtility& aUtility)
486 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
488 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
489 CleanupStack::PushL( self );
490 self->ConstructL(aUtility);
491 CleanupStack::Pop(self);
496 // -----------------------------------------------------------------------------
497 // CAudioEqualizerUtility::NewL
498 // Two-phased constructor.
499 // -----------------------------------------------------------------------------
501 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CCustomCommandUtility* aUtility)
504 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
506 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
507 CleanupStack::PushL( self );
508 self->ConstructL(aUtility);
509 CleanupStack::Pop(self);
514 // -----------------------------------------------------------------------------
515 // CAudioEqualizerUtility::NewL
516 // Two-phased constructor.
517 // -----------------------------------------------------------------------------
519 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(MCustomInterface& aCustomInterface)
522 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
524 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
525 CleanupStack::PushL( self );
526 self->ConstructL(aCustomInterface);
527 CleanupStack::Pop(self);
531 // -----------------------------------------------------------------------------
532 // CAudioEqualizerUtility::NewL
533 // Two-phased constructor.
534 // -----------------------------------------------------------------------------
536 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMidiClientUtility& aUtility)
539 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
541 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
542 CleanupStack::PushL( self );
543 self->ConstructL(aUtility);
544 CleanupStack::Pop(self);
548 // -----------------------------------------------------------------------------
549 // CAudioEqualizerUtility::NewL
550 // Two-phased constructor.
551 // -----------------------------------------------------------------------------
553 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CDrmPlayerUtility& aUtility)
556 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
558 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
559 CleanupStack::PushL( self );
560 self->ConstructL(aUtility);
561 CleanupStack::Pop(self);
565 // -----------------------------------------------------------------------------
566 // CAudioEqualizerUtility::NewL
567 // Two-phased constructor.
568 // -----------------------------------------------------------------------------
570 EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CVideoPlayerUtility& aUtility)
573 RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
575 CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
576 CleanupStack::PushL( self );
577 self->ConstructL(aUtility);
578 CleanupStack::Pop(self);
582 // -----------------------------------------------------------------------------
583 // CAudioEqualizerUtility::ApplyPresetL()
584 // Applies the Preset to the Equalizer Object
585 // (other items were commented in a header).
586 // -----------------------------------------------------------------------------
588 EXPORT_C void CAudioEqualizerUtility::ApplyPresetL(
592 RDebug::Print(_L("CAudioEqualizerUtility::ApplyPresetL"));
594 // Get the Preset from the Central Repository
595 // and Apply it to the Equalizer Object
596 // using SetBandData method. After that Just Enable() the Effect
598 TBuf8<256> aDescription;
600 TBool presetFound = EFalse;
602 if(aPresetIndex > (iPresetArray.Count() - 1))
603 User::Leave(KErrArgument);
605 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
607 // Write the Equalizer Data in the first available NULL Space
608 for( TInt j = 0; j < iFullPresetArray.Count();j++)
610 if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) &&
611 (iFullPresetArray[j].iPresetName.Length()))
613 iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,aDescription);
615 iAudioEqualizer->SetBandDataL(2,aDes);
617 // Applying the Settings to the Audio Equalizer
618 iAudioEqualizer->EnableL();
619 // iAudioEqualizer->ApplyL();
626 User::Leave(KErrNotFound);
629 // -----------------------------------------------------------------------------
630 // CAudioEqualizerUtility::CreatePresetL(TDesC& aName,CAudioEqualizer& aAudioEqualizer)
631 // Applies the Preset to the Equalizer Object
632 // (other items were commented in a header).
633 // -----------------------------------------------------------------------------
636 EXPORT_C void CAudioEqualizerUtility:: CreatePresetL(
638 CAudioEqualizer& /*aAudioEqualizerUI*/)
641 RDebug::Print(_L("CAudioEqualizerUtility::CreatePresetL"));
643 // Get the Preset from the UI and create a DesC using
644 // DoBandData() method and then store it to the
645 // Central Repository
647 __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument));
650 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
652 // iTransAudioEqualizer = &aAudioEqualizerUI;
654 //Create New Keys at the End of the Repository
655 TInt currentNumber = 0;
656 // Get the number of User Defined Presets in the Repository
657 iPresetRepository->Get(KAudioEqUtilityNumberOfUserDefinedPresets,currentNumber);
659 HBufC8* presetHeap = HBufC8::NewL(iAudioEqualizer->NumberOfBands() * sizeof(TEfAudioEqualizerBand));
660 TPtr8 des = presetHeap->Des();
661 des.SetLength(presetHeap->Size());
662 des.Append(iTransAudioEqualizer->DoBandDataL(2,ETrue));
664 // Calculate and Create the Equalizer Data for the New Preset
665 iPresetRepository->Create(currentNumber*2+KAudioEqUtilityUserDefinedPresetStart,des);
666 // Calculate and create the New Preset Name in the End
667 iPresetRepository->Create(currentNumber*2+KAudioEqUtilityUserDefinedPresetStartName,aName);
668 // Update the Number of UserDefined Presets in the End
669 // Since we created new Keys for the Name and the Descriptor
671 iPresetRepository->Set(KAudioEqUtilityNumberOfUserDefinedPresets,currentNumber);
672 iPresetRepository->Get(KAudioEqUtilityPresetsCounter,currentNumber);
673 iPresetRepository->Set(KAudioEqUtilityPresetsCounter,currentNumber + 1);
675 // Refresh the iFullPresetArray
676 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
682 // -----------------------------------------------------------------------------
683 // CAudioEqualizerUtility::GetPresetL()
684 // Gets the Preset from the Central Repository
685 // (other items were commented in a header).
686 // -----------------------------------------------------------------------------
688 EXPORT_C const TDesC& CAudioEqualizerUtility::GetPresetL(
692 RDebug::Print(_L("CAudioEqualizerUtility::GetPresetL"));
694 // Get the Preset from the Central Repository
695 // and Apply it to the Equalizer Object
696 // using SetBandData method. After that Just Enable() the Effect
699 if(aPresetIndex > (iPresetArray.Count() - 1))
700 User::Leave(KErrArgument);
702 TBuf8<256> aDescription;
704 TBool presetFound = EFalse;
706 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
708 // Write the Equalizer Data in the first available NULL Space
709 for(TInt j = 0; j < iFullPresetArray.Count();j++)
711 if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) &&
712 (iFullPresetArray[j].iPresetName.Length()))
714 iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,aDescription);
717 iTransAudioEqualizer->SetBandDataL(2,aDes); // The First Argument should be > 1 for getting all bands
719 return iFullPresetArray[j].iPresetName;
724 User::Leave(KErrNotFound);
731 // -----------------------------------------------------------------------------
732 // CAudioEqualizerUtility::DeletePresetL()
733 // Deletes the Preset from the Central Repository
734 // (other items were commented in a header).
735 // -----------------------------------------------------------------------------
737 EXPORT_C void CAudioEqualizerUtility::DeletePresetL(
741 RDebug::Print(_L("CAudioEqualizerUtility::DeletePresetL"));
743 // Get the Name from the PresetIndex
744 // This Preset Index is from the Array returned to the UI
747 TBool presetFound = EFalse;
750 // Leave if it deletes a predefined preset
751 TInt currentNumberOfPredefinedPresets = 0;
753 // Get the number of User Defined Presets in the Repository
754 iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,currentNumberOfPredefinedPresets);
756 if (aPresetIndex < currentNumberOfPredefinedPresets) //it is a predefined preset,
758 User::Leave(KErrArgument);
761 if(aPresetIndex > (iPresetArray.Count() - 1))
762 User::Leave(KErrArgument);
764 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
765 UpdatePresetArray(iPresetArray,iFullPresetArray);
768 RDebug::RawPrint(iPresetArray[aPresetIndex].iPresetName);
771 // Deletes the Preset from the iFullPresetArray and then
772 // rewrite it to the Central Repository
773 for(TInt j = 0; j < iFullPresetArray.Count();j++)
776 if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) &&
777 (iFullPresetArray[j].iPresetName.Length()))
780 TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,KNullDesC));
781 TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,KNullDesC));
788 iFullPresetArray[j].iPresetName.FillZ(0);
789 iFullPresetArray[j].iPresetNameKey = 0;
790 iFullPresetArray[j].iPresetDescriptionKey = 0;
797 RDebug::RawPrint(iFullPresetArray[j].iPresetName);
801 // update the KAudioEqUtilityNumberOfUserDefinedPresets in CR
803 User::Leave(KErrNotFound);
805 // After This Update the iPresetArray for the UI
806 UpdatePresetArray(iPresetArray,iFullPresetArray);
809 // -----------------------------------------------------------------------------
810 // CAudioEqualizerUtility::DisablePresetL()
811 // Disable the Preset
812 // (other items were commented in a header).
813 // -----------------------------------------------------------------------------
816 EXPORT_C void CAudioEqualizerUtility::DisableEqualizerL()
819 RDebug::Print(_L("CAudioEqualizerUtility::DisableEqualizerL"));
824 iAudioEqualizer->DisableL();
828 // -----------------------------------------------------------------------------
829 // CAudioEqualizerUtility::Equalizer()
830 // Applies the Preset to the Equalizer Object
831 // (other items were commented in a header).
832 // -----------------------------------------------------------------------------
834 EXPORT_C CAudioEqualizer& CAudioEqualizerUtility::Equalizer()
837 RDebug::Print(_L("CAudioEqualizerUtility::Equalizer()"));
840 return *iTransAudioEqualizer;
843 // -----------------------------------------------------------------------------
844 // CAudioEqualizerUtility::BassBoost()
845 // Applies the Preset to the Equalizer Object
846 // (other items were commented in a header).
847 // -----------------------------------------------------------------------------
849 EXPORT_C CBassBoost& CAudioEqualizerUtility::BassBoost()
852 RDebug::Print(_L("CAudioEqualizerUtility::BassBoost()"));
858 // -----------------------------------------------------------------------------
859 // CAudioEqualizerUtility::ModifyPresetL()
860 // Applies the Preset to the Equalizer Object
861 // (other items were commented in a header).
862 // -----------------------------------------------------------------------------
864 EXPORT_C void CAudioEqualizerUtility::ModifyPresetL(
867 CAudioEqualizer& aAudioEqualizerUI)
870 RDebug::Print(_L("CAudioEqualizerUtility::ModifyPresetL"));
873 __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument));
875 // Modifies the Preset Data in the Central Repository
876 // with the updated Name and Equalizer Settings for the
879 if(aPresetIndex > (iPresetArray.Count() - 1))
880 User::Leave(KErrArgument);
882 iTransAudioEqualizer = &aAudioEqualizerUI;
884 // Write the Equalizer Data in the first available NULL Space
885 for( TInt j = 0; j < iFullPresetArray.Count();j++)
887 if( iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey)
889 iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,aName);
891 HBufC8* presetHeap = HBufC8::NewL(iAudioEqualizer->NumberOfBands() * sizeof(TEfAudioEqualizerBand));
892 TPtr8 des = presetHeap->Des();
893 des.SetLength(presetHeap->Size());
894 des.Append(iTransAudioEqualizer->DoBandDataL(2,ETrue));
896 iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,des);
902 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
906 // -----------------------------------------------------------------------------
907 // CAudioEqualizerUtility::NumberOfPreDefinedPresets()
908 // Applies the Preset to the Equalizer Object
909 // (other items were commented in a header).
910 // -----------------------------------------------------------------------------
914 EXPORT_C TUint32 CAudioEqualizerUtility::NumberOfPreDefinedPresets() const
917 RDebug::Print(_L("CAudioEqualizerUtility::NumberOfPreDefinedPresets"));
920 TInt numberOfPresets;
921 iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,numberOfPresets);
922 return numberOfPresets;
926 // -----------------------------------------------------------------------------
927 // CAudioEqualizerUtility::Presets()
928 // Applies the Preset to the Equalizer Object
929 // (other items were commented in a header).
930 // -----------------------------------------------------------------------------
932 EXPORT_C TArray<TEfAudioEqualizerUtilityPreset> CAudioEqualizerUtility::Presets()
935 RDebug::Print(_L("CAudioEqualizerUtility::Presets"));
938 // returns all the Presets from the System Defined and
939 // User Defined Preset Array in the Central Repository
940 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
941 UpdatePresetArray(iPresetArray,iFullPresetArray);
942 return iPresetArray.Array();
946 // -----------------------------------------------------------------------------
947 // CAudioEqualizerUtility::ResetPresetL(TInt aPresetIndex)
948 // Applies the Preset to the Equalizer Object
949 // (other items were commented in a header).
950 // -----------------------------------------------------------------------------
952 EXPORT_C void CAudioEqualizerUtility::ResetPresetL(TInt aPresetIndex)
955 RDebug::Print(_L("CAudioEqualizerUtility::ResetPresetL"));
958 if(aPresetIndex > (iPresetArray.Count() - 1))
959 User::Leave(KErrArgument);
961 TInt currentNumber = 0;
962 // Get the number of System Defined Presets in the Repository
963 iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,currentNumber);
965 if(aPresetIndex >= currentNumber)
966 User::Leave(KErrNotSupported);
969 for( TInt j = 0; j < currentNumber;j++)
971 if( iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey)
973 iPresetRepository->Reset(iFullPresetArray[j].iPresetDescriptionKey);
974 iPresetRepository->Reset(iFullPresetArray[j].iPresetNameKey);
977 UpdateFullPresetArrayFromCenRep(iFullPresetArray);
978 UpdatePresetArray(iPresetArray,iFullPresetArray);
982 // -----------------------------------------------------------------------------
983 // CAudioEqualizerUtility::UpdatePresetArrayFromCenRep(RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray)
984 // Updates the Array with the Values in Central Repository
985 // (other items were commented in a header).
986 // -----------------------------------------------------------------------------
989 void CAudioEqualizerUtility::UpdateFullPresetArrayFromCenRep(RArray<TEfAudioEqualizerUtilityPreset>& aFullPresetArray)
992 aFullPresetArray.Reset();
993 TEfAudioEqualizerUtilityPreset tempPreset;
996 TInt numberOfUserDefinedPresets = 0;
997 TInt numberOfPreDefinedPresets = 0;
999 iPresetRepository->Get(KAudioEqUtilityNumberOfUserDefinedPresets,numberOfUserDefinedPresets);
1000 iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,numberOfPreDefinedPresets);
1002 for( TInt j = 0; j < (numberOfPreDefinedPresets); j++)
1004 tempPreset.iPresetDescriptionKey = KAudioEqUtilityPreDefinedPresetStart + (2 * j);
1005 tempPreset.iPresetNameKey = KAudioEqUtilityPreDefinedPresetStartName + (2 * j);
1006 iPresetRepository->Get((KAudioEqUtilityPreDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName);
1008 RDebug::RawPrint(tempPreset.iPresetName);
1010 aFullPresetArray.Append(tempPreset);
1014 for( TInt j = 0; j < (numberOfUserDefinedPresets); j++)
1016 tempPreset.iPresetDescriptionKey = KAudioEqUtilityUserDefinedPresetStart + (2 * j);
1017 tempPreset.iPresetNameKey = KAudioEqUtilityUserDefinedPresetStartName + (2 * j);
1018 iPresetRepository->Get((KAudioEqUtilityUserDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName);
1020 RDebug::RawPrint(tempPreset.iPresetName);
1022 aFullPresetArray.Append(tempPreset);
1028 // -----------------------------------------------------------------------------
1029 // CAudioEqualizerUtility::UpdatePresetArray(RArray<TDesC>& aPresetArray,const RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray)
1030 // Creates the Descriptor Array of Names of the Presets Stored in Central Repository
1031 // (other items were commented in a header).
1032 // -----------------------------------------------------------------------------
1034 void CAudioEqualizerUtility::UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray,const RArray<TEfAudioEqualizerUtilityPreset>& aFullPresetArray)
1037 aPresetArray.Reset();
1038 TEfAudioEqualizerUtilityPreset tempClientArray;
1040 // Write the Equalizer Data in the first available NULL Space
1041 for( TInt j = 0; j < aFullPresetArray.Count();j++)
1043 if( aFullPresetArray[j].iPresetName.Length() != 0)
1046 tempClientArray.iPresetName = aFullPresetArray[j].iPresetName;
1047 tempClientArray.iPresetNameKey = aFullPresetArray[j].iPresetNameKey;
1049 aPresetArray.Append(tempClientArray);
1052 RDebug::Print(_L("Name Length %d "),aFullPresetArray[j].iPresetName.Length());
1053 RDebug::RawPrint(aFullPresetArray[j].iPresetName);
1060 // ========================== OTHER EXPORTED FUNCTIONS =========================