os/mm/devsoundextensions/effectspresets/AudioEqualizerUtility/src/AudioEqualizerutility.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description:   Utility to Access the Equalizer Effect
sl@0
    15
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
sl@0
    20
// INCLUDE FILES
sl@0
    21
#include <e32std.h>
sl@0
    22
#include <AudioEqualizerUtility.h>
sl@0
    23
#include <DrmAudioSamplePlayer.h>
sl@0
    24
#include "TempAudioEqualizer.h"
sl@0
    25
#include "AudioEqUtilityInternalCRKeys.h"
sl@0
    26
#include <videoplayer.h>
sl@0
    27
sl@0
    28
// ============================ MEMBER FUNCTIONS ===============================
sl@0
    29
sl@0
    30
// -----------------------------------------------------------------------------
sl@0
    31
// CAudioEqualizerUtility::CAudioEqualizerUtility
sl@0
    32
// C++ default constructor can NOT contain any code, that
sl@0
    33
// might leave.
sl@0
    34
// -----------------------------------------------------------------------------
sl@0
    35
//
sl@0
    36
CAudioEqualizerUtility::CAudioEqualizerUtility()
sl@0
    37
	: iAudioEqualizer(NULL),
sl@0
    38
	  iBassBoost(NULL),
sl@0
    39
	  iPresetRepository(NULL)
sl@0
    40
	{
sl@0
    41
    }
sl@0
    42
sl@0
    43
sl@0
    44
// Destructor
sl@0
    45
CAudioEqualizerUtility::~CAudioEqualizerUtility()
sl@0
    46
    {
sl@0
    47
		iPresetArray.Close();
sl@0
    48
		iFullPresetArray.Close();
sl@0
    49
		delete iPresetRepository;
sl@0
    50
		delete iTransAudioEqualizer;
sl@0
    51
		delete iAudioEqualizer;
sl@0
    52
		//delete iBassBoost;
sl@0
    53
    }
sl@0
    54
sl@0
    55
sl@0
    56
// -----------------------------------------------------------------------------
sl@0
    57
// CAudioEqualizerUtility::ConstructL
sl@0
    58
// Symbian 2nd phase constructor can leave.
sl@0
    59
// -----------------------------------------------------------------------------
sl@0
    60
//
sl@0
    61
void CAudioEqualizerUtility::ConstructL(CMMFDevSound& aDevSound)
sl@0
    62
    {
sl@0
    63
#ifdef _DEBUG
sl@0
    64
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
    65
#endif
sl@0
    66
		iAudioEqualizer = CAudioEqualizer::NewL(aDevSound);
sl@0
    67
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
    68
sl@0
    69
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
    70
sl@0
    71
		//iBassBoost = CBassBoost::NewL(aDevSound,EFalse);
sl@0
    72
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
    73
sl@0
    74
sl@0
    75
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
    76
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
    77
sl@0
    78
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
    79
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
    80
    }
sl@0
    81
sl@0
    82
sl@0
    83
// -----------------------------------------------------------------------------
sl@0
    84
// CAudioEqualizerUtility::ConstructL
sl@0
    85
// Symbian 2nd phase constructor can leave.
sl@0
    86
// -----------------------------------------------------------------------------
sl@0
    87
//
sl@0
    88
void CAudioEqualizerUtility::ConstructL(CMdaAudioConvertUtility& aUtility)
sl@0
    89
    {
sl@0
    90
#ifdef _DEBUG
sl@0
    91
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
    92
#endif
sl@0
    93
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
    94
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
    95
sl@0
    96
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
    97
sl@0
    98
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
    99
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   100
sl@0
   101
sl@0
   102
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   103
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   104
sl@0
   105
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   106
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   107
    }
sl@0
   108
sl@0
   109
// -----------------------------------------------------------------------------
sl@0
   110
// CAudioEqualizerUtility::ConstructL
sl@0
   111
// Symbian 2nd phase constructor can leave.
sl@0
   112
// -----------------------------------------------------------------------------
sl@0
   113
//
sl@0
   114
void CAudioEqualizerUtility::ConstructL(CMdaAudioInputStream& aUtility)
sl@0
   115
    {
sl@0
   116
#ifdef _DEBUG
sl@0
   117
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   118
#endif
sl@0
   119
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   120
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   121
sl@0
   122
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   123
sl@0
   124
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   125
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   126
sl@0
   127
sl@0
   128
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   129
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   130
sl@0
   131
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   132
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   133
    }
sl@0
   134
sl@0
   135
// -----------------------------------------------------------------------------
sl@0
   136
// CAudioEqualizerUtility::ConstructL
sl@0
   137
// Symbian 2nd phase constructor can leave.
sl@0
   138
// -----------------------------------------------------------------------------
sl@0
   139
//
sl@0
   140
void CAudioEqualizerUtility::ConstructL(CMdaAudioOutputStream& aUtility)
sl@0
   141
    {
sl@0
   142
#ifdef _DEBUG
sl@0
   143
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   144
#endif
sl@0
   145
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   146
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   147
sl@0
   148
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   149
sl@0
   150
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   151
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   152
sl@0
   153
sl@0
   154
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   155
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   156
sl@0
   157
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   158
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   159
    }
sl@0
   160
sl@0
   161
// -----------------------------------------------------------------------------
sl@0
   162
// CAudioEqualizerUtility::ConstructL
sl@0
   163
// Symbian 2nd phase constructor can leave.
sl@0
   164
// -----------------------------------------------------------------------------
sl@0
   165
//
sl@0
   166
void CAudioEqualizerUtility::ConstructL(CMdaAudioPlayerUtility& aUtility)
sl@0
   167
    {
sl@0
   168
#ifdef _DEBUG
sl@0
   169
	    RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   170
#endif
sl@0
   171
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   172
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   173
sl@0
   174
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   175
sl@0
   176
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   177
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   178
sl@0
   179
sl@0
   180
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   181
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   182
sl@0
   183
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   184
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   185
	}
sl@0
   186
sl@0
   187
// -----------------------------------------------------------------------------
sl@0
   188
// CAudioEqualizerUtility::ConstructL
sl@0
   189
// Symbian 2nd phase constructor can leave.
sl@0
   190
// -----------------------------------------------------------------------------
sl@0
   191
//
sl@0
   192
void CAudioEqualizerUtility::ConstructL(CMdaAudioRecorderUtility& aUtility )
sl@0
   193
    {
sl@0
   194
#ifdef _DEBUG
sl@0
   195
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   196
#endif
sl@0
   197
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility,ETrue);
sl@0
   198
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   199
sl@0
   200
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   201
sl@0
   202
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   203
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   204
sl@0
   205
sl@0
   206
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   207
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   208
sl@0
   209
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   210
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   211
   }
sl@0
   212
sl@0
   213
// -----------------------------------------------------------------------------
sl@0
   214
// CAudioEqualizerUtility::ConstructL
sl@0
   215
// Symbian 2nd phase constructor can leave.
sl@0
   216
// -----------------------------------------------------------------------------
sl@0
   217
//
sl@0
   218
void CAudioEqualizerUtility::ConstructL(CMdaAudioToneUtility& aUtility)
sl@0
   219
    {
sl@0
   220
#ifdef _DEBUG
sl@0
   221
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   222
#endif
sl@0
   223
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   224
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   225
sl@0
   226
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   227
sl@0
   228
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   229
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   230
sl@0
   231
sl@0
   232
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   233
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   234
sl@0
   235
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   236
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   237
    }
sl@0
   238
sl@0
   239
// -----------------------------------------------------------------------------
sl@0
   240
// CAudioEqualizerUtility::ConstructL
sl@0
   241
// Symbian 2nd phase constructor can leave.
sl@0
   242
// -----------------------------------------------------------------------------
sl@0
   243
//
sl@0
   244
void CAudioEqualizerUtility::ConstructL(CCustomCommandUtility* aUtility)
sl@0
   245
    {
sl@0
   246
#ifdef _DEBUG
sl@0
   247
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   248
#endif
sl@0
   249
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   250
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   251
sl@0
   252
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   253
sl@0
   254
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   255
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   256
sl@0
   257
sl@0
   258
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   259
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   260
sl@0
   261
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   262
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   263
    }
sl@0
   264
sl@0
   265
// -----------------------------------------------------------------------------
sl@0
   266
// CAudioEqualizerUtility::ConstructL
sl@0
   267
// Symbian 2nd phase constructor can leave.
sl@0
   268
// -----------------------------------------------------------------------------
sl@0
   269
//
sl@0
   270
void CAudioEqualizerUtility::ConstructL(MCustomInterface& aCustomInterface)
sl@0
   271
    {
sl@0
   272
#ifdef _DEBUG
sl@0
   273
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   274
#endif
sl@0
   275
		iAudioEqualizer = CAudioEqualizer::NewL(aCustomInterface);
sl@0
   276
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   277
sl@0
   278
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   279
sl@0
   280
		//iBassBoost = CBassBoost::NewL(aCustomInterface,EFalse);
sl@0
   281
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   282
sl@0
   283
sl@0
   284
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   285
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   286
sl@0
   287
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   288
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   289
sl@0
   290
    }
sl@0
   291
sl@0
   292
// -----------------------------------------------------------------------------
sl@0
   293
// CAudioEqualizerUtility::ConstructL
sl@0
   294
// Symbian 2nd phase constructor can leave.
sl@0
   295
// -----------------------------------------------------------------------------
sl@0
   296
//
sl@0
   297
void CAudioEqualizerUtility::ConstructL(CMidiClientUtility& aUtility)
sl@0
   298
    {
sl@0
   299
#ifdef _DEBUG
sl@0
   300
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   301
#endif
sl@0
   302
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   303
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   304
sl@0
   305
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   306
sl@0
   307
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   308
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   309
sl@0
   310
sl@0
   311
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   312
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   313
sl@0
   314
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   315
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   316
	}
sl@0
   317
sl@0
   318
// -----------------------------------------------------------------------------
sl@0
   319
// CAudioEqualizerUtility::ConstructL
sl@0
   320
// Symbian 2nd phase constructor can leave.
sl@0
   321
// -----------------------------------------------------------------------------
sl@0
   322
//
sl@0
   323
void CAudioEqualizerUtility::ConstructL(CDrmPlayerUtility& aUtility)
sl@0
   324
    {
sl@0
   325
#ifdef _DEBUG
sl@0
   326
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   327
#endif
sl@0
   328
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   329
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   330
sl@0
   331
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   332
sl@0
   333
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   334
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   335
sl@0
   336
sl@0
   337
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   338
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   339
sl@0
   340
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   341
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   342
	}
sl@0
   343
sl@0
   344
// -----------------------------------------------------------------------------
sl@0
   345
// CAudioEqualizerUtility::ConstructL
sl@0
   346
// Symbian 2nd phase constructor can leave.
sl@0
   347
// -----------------------------------------------------------------------------
sl@0
   348
//
sl@0
   349
void CAudioEqualizerUtility::ConstructL(CVideoPlayerUtility& aUtility)
sl@0
   350
    {
sl@0
   351
#ifdef _DEBUG
sl@0
   352
		RDebug::Print(_L("CAudioEqualizerUtility::ConstructL"));
sl@0
   353
#endif
sl@0
   354
		iAudioEqualizer = CAudioEqualizer::NewL(aUtility);
sl@0
   355
		TInt numberBands = iAudioEqualizer->NumberOfBands();
sl@0
   356
sl@0
   357
		iTransAudioEqualizer = CTempAudioEqualizer::NewL(numberBands,iAudioEqualizer);
sl@0
   358
sl@0
   359
		//iBassBoost = CBassBoost::NewL(aUtility,EFalse);
sl@0
   360
		iPresetRepository = CRepository::NewL(KCRUidAudioEqUtilityPresets);
sl@0
   361
sl@0
   362
sl@0
   363
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   364
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   365
sl@0
   366
		iTransAudioEqualizer->SetBandDataL(2,iAudioEqualizer->DoBandDataL(1,ETrue));
sl@0
   367
		iTransAudioEqualizer->SetEffectData(iAudioEqualizer->DoEffectData());
sl@0
   368
	}
sl@0
   369
	
sl@0
   370
// -----------------------------------------------------------------------------
sl@0
   371
// CAudioEqualizerUtility::NewL
sl@0
   372
// Two-phased constructor.
sl@0
   373
// -----------------------------------------------------------------------------
sl@0
   374
//
sl@0
   375
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMMFDevSound& aDevSound)
sl@0
   376
    {
sl@0
   377
#ifdef _DEBUG
sl@0
   378
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   379
#endif
sl@0
   380
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   381
		CleanupStack::PushL( self );
sl@0
   382
		self->ConstructL(aDevSound);
sl@0
   383
		CleanupStack::Pop(self);
sl@0
   384
		return self;
sl@0
   385
    }
sl@0
   386
sl@0
   387
sl@0
   388
// -----------------------------------------------------------------------------
sl@0
   389
// CAudioEqualizerUtility::NewL
sl@0
   390
// Two-phased constructor.
sl@0
   391
// -----------------------------------------------------------------------------
sl@0
   392
//
sl@0
   393
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioConvertUtility& aUtility)
sl@0
   394
    {
sl@0
   395
#ifdef _DEBUG
sl@0
   396
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   397
#endif
sl@0
   398
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   399
		CleanupStack::PushL( self );
sl@0
   400
		self->ConstructL(aUtility);
sl@0
   401
		CleanupStack::Pop(self);
sl@0
   402
		return self;
sl@0
   403
    }
sl@0
   404
sl@0
   405
sl@0
   406
// -----------------------------------------------------------------------------
sl@0
   407
// CAudioEqualizerUtility::NewL
sl@0
   408
// Two-phased constructor.
sl@0
   409
// -----------------------------------------------------------------------------
sl@0
   410
//
sl@0
   411
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioInputStream& aUtility)
sl@0
   412
    {
sl@0
   413
#ifdef _DEBUG
sl@0
   414
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   415
#endif
sl@0
   416
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   417
		CleanupStack::PushL( self );
sl@0
   418
		self->ConstructL(aUtility);
sl@0
   419
		CleanupStack::Pop(self);
sl@0
   420
		return self;
sl@0
   421
    }
sl@0
   422
sl@0
   423
sl@0
   424
// -----------------------------------------------------------------------------
sl@0
   425
// CAudioEqualizerUtility::NewL
sl@0
   426
// Two-phased constructor.
sl@0
   427
// -----------------------------------------------------------------------------
sl@0
   428
//
sl@0
   429
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioOutputStream& aUtility)
sl@0
   430
    {
sl@0
   431
#ifdef _DEBUG
sl@0
   432
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   433
#endif
sl@0
   434
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   435
		CleanupStack::PushL( self );
sl@0
   436
		self->ConstructL(aUtility);
sl@0
   437
		CleanupStack::Pop(self);
sl@0
   438
		return self;
sl@0
   439
    }
sl@0
   440
sl@0
   441
sl@0
   442
// -----------------------------------------------------------------------------
sl@0
   443
// CAudioEqualizerUtility::NewL
sl@0
   444
// Two-phased constructor.
sl@0
   445
// -----------------------------------------------------------------------------
sl@0
   446
//
sl@0
   447
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioPlayerUtility& aUtility)
sl@0
   448
    {
sl@0
   449
#ifdef _DEBUG
sl@0
   450
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   451
#endif
sl@0
   452
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   453
		CleanupStack::PushL( self );
sl@0
   454
		self->ConstructL(aUtility);
sl@0
   455
		CleanupStack::Pop(self);
sl@0
   456
		return self;
sl@0
   457
    }
sl@0
   458
sl@0
   459
sl@0
   460
// -----------------------------------------------------------------------------
sl@0
   461
// CAudioEqualizerUtility::NewL
sl@0
   462
// Two-phased constructor.
sl@0
   463
// -----------------------------------------------------------------------------
sl@0
   464
//
sl@0
   465
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioRecorderUtility& aUtility)
sl@0
   466
    {
sl@0
   467
#ifdef _DEBUG
sl@0
   468
	    RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   469
#endif
sl@0
   470
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   471
		CleanupStack::PushL( self );
sl@0
   472
		self->ConstructL(aUtility);
sl@0
   473
		CleanupStack::Pop(self);
sl@0
   474
		return self;
sl@0
   475
    }
sl@0
   476
sl@0
   477
sl@0
   478
// -----------------------------------------------------------------------------
sl@0
   479
// CAudioEqualizerUtility::NewL
sl@0
   480
// Two-phased constructor.
sl@0
   481
// -----------------------------------------------------------------------------
sl@0
   482
//
sl@0
   483
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMdaAudioToneUtility& aUtility)
sl@0
   484
    {
sl@0
   485
#ifdef _DEBUG
sl@0
   486
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   487
#endif
sl@0
   488
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   489
		CleanupStack::PushL( self );
sl@0
   490
		self->ConstructL(aUtility);
sl@0
   491
		CleanupStack::Pop(self);
sl@0
   492
		return self;
sl@0
   493
    }
sl@0
   494
sl@0
   495
sl@0
   496
// -----------------------------------------------------------------------------
sl@0
   497
// CAudioEqualizerUtility::NewL
sl@0
   498
// Two-phased constructor.
sl@0
   499
// -----------------------------------------------------------------------------
sl@0
   500
//
sl@0
   501
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CCustomCommandUtility* aUtility)
sl@0
   502
    {
sl@0
   503
#ifdef _DEBUG
sl@0
   504
		    RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   505
#endif
sl@0
   506
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   507
		CleanupStack::PushL( self );
sl@0
   508
		self->ConstructL(aUtility);
sl@0
   509
		CleanupStack::Pop(self);
sl@0
   510
		return self;
sl@0
   511
    }
sl@0
   512
sl@0
   513
sl@0
   514
// -----------------------------------------------------------------------------
sl@0
   515
// CAudioEqualizerUtility::NewL
sl@0
   516
// Two-phased constructor.
sl@0
   517
// -----------------------------------------------------------------------------
sl@0
   518
//
sl@0
   519
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(MCustomInterface& aCustomInterface)
sl@0
   520
    {
sl@0
   521
#ifdef _DEBUG
sl@0
   522
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   523
#endif
sl@0
   524
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   525
		CleanupStack::PushL( self );
sl@0
   526
		self->ConstructL(aCustomInterface);
sl@0
   527
		CleanupStack::Pop(self);
sl@0
   528
		return self;
sl@0
   529
    }
sl@0
   530
sl@0
   531
// -----------------------------------------------------------------------------
sl@0
   532
// CAudioEqualizerUtility::NewL
sl@0
   533
// Two-phased constructor.
sl@0
   534
// -----------------------------------------------------------------------------
sl@0
   535
//
sl@0
   536
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CMidiClientUtility& aUtility)
sl@0
   537
    {
sl@0
   538
#ifdef _DEBUG
sl@0
   539
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   540
#endif
sl@0
   541
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   542
		CleanupStack::PushL( self );
sl@0
   543
		self->ConstructL(aUtility);
sl@0
   544
		CleanupStack::Pop(self);
sl@0
   545
		return self;
sl@0
   546
    }
sl@0
   547
sl@0
   548
// -----------------------------------------------------------------------------
sl@0
   549
// CAudioEqualizerUtility::NewL
sl@0
   550
// Two-phased constructor.
sl@0
   551
// -----------------------------------------------------------------------------
sl@0
   552
//
sl@0
   553
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CDrmPlayerUtility& aUtility)
sl@0
   554
    {
sl@0
   555
#ifdef _DEBUG
sl@0
   556
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   557
#endif
sl@0
   558
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   559
		CleanupStack::PushL( self );
sl@0
   560
		self->ConstructL(aUtility);
sl@0
   561
		CleanupStack::Pop(self);
sl@0
   562
		return self;
sl@0
   563
    }
sl@0
   564
sl@0
   565
// -----------------------------------------------------------------------------
sl@0
   566
// CAudioEqualizerUtility::NewL
sl@0
   567
// Two-phased constructor.
sl@0
   568
// -----------------------------------------------------------------------------
sl@0
   569
//
sl@0
   570
EXPORT_C CAudioEqualizerUtility* CAudioEqualizerUtility::NewL(CVideoPlayerUtility& aUtility)
sl@0
   571
    {
sl@0
   572
#ifdef _DEBUG
sl@0
   573
		RDebug::Print(_L("CAudioEqualizerUtility::NewL"));
sl@0
   574
#endif
sl@0
   575
		CAudioEqualizerUtility* self = new( ELeave ) CAudioEqualizerUtility;
sl@0
   576
		CleanupStack::PushL( self );
sl@0
   577
		self->ConstructL(aUtility);
sl@0
   578
		CleanupStack::Pop(self);
sl@0
   579
		return self;
sl@0
   580
    }
sl@0
   581
    
sl@0
   582
// -----------------------------------------------------------------------------
sl@0
   583
// CAudioEqualizerUtility::ApplyPresetL()
sl@0
   584
// Applies the Preset to the Equalizer Object
sl@0
   585
// (other items were commented in a header).
sl@0
   586
// -----------------------------------------------------------------------------
sl@0
   587
//
sl@0
   588
EXPORT_C void CAudioEqualizerUtility::ApplyPresetL(
sl@0
   589
    TInt aPresetIndex)
sl@0
   590
    {
sl@0
   591
#ifdef _DEBUG
sl@0
   592
		    RDebug::Print(_L("CAudioEqualizerUtility::ApplyPresetL"));
sl@0
   593
#endif
sl@0
   594
		// Get the Preset from the Central Repository
sl@0
   595
		// and Apply it to the Equalizer Object
sl@0
   596
		// using SetBandData method. After that Just Enable() the Effect
sl@0
   597
sl@0
   598
		TBuf8<256> aDescription;
sl@0
   599
		TBufC8<256> aDes;
sl@0
   600
		TBool presetFound = EFalse;
sl@0
   601
sl@0
   602
		if(aPresetIndex > (iPresetArray.Count() - 1))
sl@0
   603
			User::Leave(KErrArgument);
sl@0
   604
sl@0
   605
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   606
sl@0
   607
		// Write the Equalizer Data in the first available NULL Space
sl@0
   608
		for( TInt j = 0; j < iFullPresetArray.Count();j++)
sl@0
   609
			{
sl@0
   610
				if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) &&
sl@0
   611
						(iFullPresetArray[j].iPresetName.Length()))
sl@0
   612
					{
sl@0
   613
						iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,aDescription);
sl@0
   614
						aDes = aDescription;
sl@0
   615
						iAudioEqualizer->SetBandDataL(2,aDes);
sl@0
   616
sl@0
   617
						// Applying the Settings to the Audio Equalizer
sl@0
   618
						iAudioEqualizer->EnableL();
sl@0
   619
					//	iAudioEqualizer->ApplyL();
sl@0
   620
						presetFound =  ETrue;
sl@0
   621
						break;
sl@0
   622
					}
sl@0
   623
			}
sl@0
   624
sl@0
   625
		if(!presetFound)
sl@0
   626
			User::Leave(KErrNotFound);
sl@0
   627
    }
sl@0
   628
sl@0
   629
// -----------------------------------------------------------------------------
sl@0
   630
// CAudioEqualizerUtility::CreatePresetL(TDesC& aName,CAudioEqualizer& aAudioEqualizer)
sl@0
   631
// Applies the Preset to the Equalizer Object
sl@0
   632
// (other items were commented in a header).
sl@0
   633
// -----------------------------------------------------------------------------
sl@0
   634
//
sl@0
   635
sl@0
   636
EXPORT_C void CAudioEqualizerUtility:: CreatePresetL(
sl@0
   637
    TDesC& aName,
sl@0
   638
    CAudioEqualizer& /*aAudioEqualizerUI*/)
sl@0
   639
    {
sl@0
   640
#ifdef _DEBUG
sl@0
   641
		    RDebug::Print(_L("CAudioEqualizerUtility::CreatePresetL"));
sl@0
   642
#endif
sl@0
   643
		// Get the Preset from the UI and create a DesC using
sl@0
   644
		// DoBandData() method and then store it to the
sl@0
   645
		// Central Repository
sl@0
   646
sl@0
   647
		 __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument));
sl@0
   648
sl@0
   649
sl@0
   650
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   651
sl@0
   652
	//	iTransAudioEqualizer = &aAudioEqualizerUI;
sl@0
   653
sl@0
   654
				//Create New Keys at the End of the Repository
sl@0
   655
		TInt currentNumber = 0;
sl@0
   656
				// Get the number of User Defined Presets in the Repository
sl@0
   657
		iPresetRepository->Get(KAudioEqUtilityNumberOfUserDefinedPresets,currentNumber);
sl@0
   658
sl@0
   659
		HBufC8* presetHeap = HBufC8::NewL(iAudioEqualizer->NumberOfBands() * sizeof(TEfAudioEqualizerBand));
sl@0
   660
		TPtr8 des = presetHeap->Des();
sl@0
   661
		des.SetLength(presetHeap->Size());
sl@0
   662
		des.Append(iTransAudioEqualizer->DoBandDataL(2,ETrue));
sl@0
   663
sl@0
   664
				// Calculate and Create the Equalizer Data for the New Preset
sl@0
   665
		iPresetRepository->Create(currentNumber*2+KAudioEqUtilityUserDefinedPresetStart,des);
sl@0
   666
				// Calculate and create the New Preset Name in the End
sl@0
   667
		iPresetRepository->Create(currentNumber*2+KAudioEqUtilityUserDefinedPresetStartName,aName);
sl@0
   668
				// Update the Number of UserDefined Presets in the End
sl@0
   669
				// Since we created new Keys for the Name and the Descriptor
sl@0
   670
		currentNumber += 1;
sl@0
   671
		iPresetRepository->Set(KAudioEqUtilityNumberOfUserDefinedPresets,currentNumber);
sl@0
   672
		iPresetRepository->Get(KAudioEqUtilityPresetsCounter,currentNumber);
sl@0
   673
		iPresetRepository->Set(KAudioEqUtilityPresetsCounter,currentNumber + 1);
sl@0
   674
sl@0
   675
		// Refresh the iFullPresetArray
sl@0
   676
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   677
		delete presetHeap;
sl@0
   678
		presetHeap = NULL;
sl@0
   679
sl@0
   680
    }
sl@0
   681
sl@0
   682
// -----------------------------------------------------------------------------
sl@0
   683
// CAudioEqualizerUtility::GetPresetL()
sl@0
   684
// Gets the Preset from the Central Repository
sl@0
   685
// (other items were commented in a header).
sl@0
   686
// -----------------------------------------------------------------------------
sl@0
   687
//
sl@0
   688
EXPORT_C const TDesC& CAudioEqualizerUtility::GetPresetL(
sl@0
   689
    TInt aPresetIndex)
sl@0
   690
    {
sl@0
   691
#ifdef _DEBUG
sl@0
   692
		    RDebug::Print(_L("CAudioEqualizerUtility::GetPresetL"));
sl@0
   693
#endif
sl@0
   694
		// Get the Preset from the Central Repository
sl@0
   695
		// and Apply it to the Equalizer Object
sl@0
   696
		// using SetBandData method. After that Just Enable() the Effect
sl@0
   697
sl@0
   698
sl@0
   699
		if(aPresetIndex > (iPresetArray.Count() - 1))
sl@0
   700
			User::Leave(KErrArgument);
sl@0
   701
sl@0
   702
		TBuf8<256> aDescription;
sl@0
   703
		TBufC8<256> aDes;
sl@0
   704
		TBool presetFound = EFalse;
sl@0
   705
sl@0
   706
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   707
sl@0
   708
		// Write the Equalizer Data in the first available NULL Space
sl@0
   709
		for(TInt j = 0; j < iFullPresetArray.Count();j++)
sl@0
   710
			{
sl@0
   711
				if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) &&
sl@0
   712
						(iFullPresetArray[j].iPresetName.Length()))
sl@0
   713
					{
sl@0
   714
						iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,aDescription);
sl@0
   715
						aDes = aDescription;
sl@0
   716
sl@0
   717
						iTransAudioEqualizer->SetBandDataL(2,aDes); // The First Argument should be > 1 for getting all bands
sl@0
   718
						presetFound = ETrue;
sl@0
   719
						return iFullPresetArray[j].iPresetName;
sl@0
   720
					}
sl@0
   721
			}
sl@0
   722
sl@0
   723
		if(!presetFound)
sl@0
   724
			User::Leave(KErrNotFound);
sl@0
   725
sl@0
   726
		return KNullDesC;
sl@0
   727
sl@0
   728
    }
sl@0
   729
sl@0
   730
sl@0
   731
// -----------------------------------------------------------------------------
sl@0
   732
// CAudioEqualizerUtility::DeletePresetL()
sl@0
   733
// Deletes the Preset from the Central Repository
sl@0
   734
// (other items were commented in a header).
sl@0
   735
// -----------------------------------------------------------------------------
sl@0
   736
//
sl@0
   737
EXPORT_C void CAudioEqualizerUtility::DeletePresetL(
sl@0
   738
    TInt aPresetIndex)
sl@0
   739
    {
sl@0
   740
#ifdef _DEBUG
sl@0
   741
		    RDebug::Print(_L("CAudioEqualizerUtility::DeletePresetL"));
sl@0
   742
#endif
sl@0
   743
		// Get the Name from the PresetIndex
sl@0
   744
		// This Preset Index is from the Array returned to the UI
sl@0
   745
sl@0
   746
		TInt err(KErrNone);
sl@0
   747
		TBool presetFound = EFalse;
sl@0
   748
sl@0
   749
sl@0
   750
        // Leave if it deletes a predefined preset  
sl@0
   751
		TInt currentNumberOfPredefinedPresets = 0;
sl@0
   752
				                
sl@0
   753
	    // Get the number of User Defined Presets in the Repository
sl@0
   754
		iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,currentNumberOfPredefinedPresets);
sl@0
   755
sl@0
   756
        if (aPresetIndex < currentNumberOfPredefinedPresets)  //it is a predefined preset, 
sl@0
   757
        {
sl@0
   758
			User::Leave(KErrArgument);        	
sl@0
   759
        }
sl@0
   760
sl@0
   761
		if(aPresetIndex > (iPresetArray.Count() - 1))
sl@0
   762
			User::Leave(KErrArgument);
sl@0
   763
sl@0
   764
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   765
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   766
sl@0
   767
#ifdef _DEBUG
sl@0
   768
		RDebug::RawPrint(iPresetArray[aPresetIndex].iPresetName);
sl@0
   769
#endif
sl@0
   770
sl@0
   771
		// Deletes the Preset from the iFullPresetArray and then
sl@0
   772
		// rewrite it to the Central Repository
sl@0
   773
		for(TInt j = 0; j < iFullPresetArray.Count();j++)
sl@0
   774
			{
sl@0
   775
sl@0
   776
				if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) &&
sl@0
   777
						(iFullPresetArray[j].iPresetName.Length()))
sl@0
   778
					{
sl@0
   779
						presetFound = ETrue;
sl@0
   780
						TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,KNullDesC));
sl@0
   781
						TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,KNullDesC));
sl@0
   782
						if(err != KErrNone)
sl@0
   783
							{
sl@0
   784
								break;
sl@0
   785
							}
sl@0
   786
						else
sl@0
   787
							{
sl@0
   788
								iFullPresetArray[j].iPresetName.FillZ(0);
sl@0
   789
								iFullPresetArray[j].iPresetNameKey = 0;
sl@0
   790
								iFullPresetArray[j].iPresetDescriptionKey = 0;
sl@0
   791
                                break;
sl@0
   792
 			                    
sl@0
   793
							}
sl@0
   794
sl@0
   795
					}
sl@0
   796
#ifdef _DEBUG
sl@0
   797
				RDebug::RawPrint(iFullPresetArray[j].iPresetName);
sl@0
   798
#endif
sl@0
   799
			}
sl@0
   800
sl@0
   801
        // update the KAudioEqUtilityNumberOfUserDefinedPresets in CR
sl@0
   802
		if(!presetFound)
sl@0
   803
			User::Leave(KErrNotFound);
sl@0
   804
sl@0
   805
		// After This Update the iPresetArray for the UI
sl@0
   806
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   807
    }
sl@0
   808
sl@0
   809
// -----------------------------------------------------------------------------
sl@0
   810
// CAudioEqualizerUtility::DisablePresetL()
sl@0
   811
// Disable the Preset
sl@0
   812
// (other items were commented in a header).
sl@0
   813
// -----------------------------------------------------------------------------
sl@0
   814
//
sl@0
   815
sl@0
   816
EXPORT_C void CAudioEqualizerUtility::DisableEqualizerL()
sl@0
   817
{
sl@0
   818
#ifdef _DEBUG
sl@0
   819
		    RDebug::Print(_L("CAudioEqualizerUtility::DisableEqualizerL"));
sl@0
   820
#endif
sl@0
   821
sl@0
   822
	if(iAudioEqualizer)
sl@0
   823
	{
sl@0
   824
		iAudioEqualizer->DisableL();
sl@0
   825
	}
sl@0
   826
}
sl@0
   827
sl@0
   828
// -----------------------------------------------------------------------------
sl@0
   829
// CAudioEqualizerUtility::Equalizer()
sl@0
   830
// Applies the Preset to the Equalizer Object
sl@0
   831
// (other items were commented in a header).
sl@0
   832
// -----------------------------------------------------------------------------
sl@0
   833
//
sl@0
   834
EXPORT_C CAudioEqualizer& CAudioEqualizerUtility::Equalizer()
sl@0
   835
    {
sl@0
   836
#ifdef _DEBUG
sl@0
   837
		    RDebug::Print(_L("CAudioEqualizerUtility::Equalizer()"));
sl@0
   838
#endif
sl@0
   839
sl@0
   840
		return *iTransAudioEqualizer;
sl@0
   841
    }
sl@0
   842
sl@0
   843
// -----------------------------------------------------------------------------
sl@0
   844
// CAudioEqualizerUtility::BassBoost()
sl@0
   845
// Applies the Preset to the Equalizer Object
sl@0
   846
// (other items were commented in a header).
sl@0
   847
// -----------------------------------------------------------------------------
sl@0
   848
//
sl@0
   849
EXPORT_C CBassBoost& CAudioEqualizerUtility::BassBoost()
sl@0
   850
    {
sl@0
   851
#ifdef _DEBUG
sl@0
   852
		    RDebug::Print(_L("CAudioEqualizerUtility::BassBoost()"));
sl@0
   853
#endif
sl@0
   854
		return *iBassBoost;
sl@0
   855
    }
sl@0
   856
sl@0
   857
sl@0
   858
// -----------------------------------------------------------------------------
sl@0
   859
// CAudioEqualizerUtility::ModifyPresetL()
sl@0
   860
// Applies the Preset to the Equalizer Object
sl@0
   861
// (other items were commented in a header).
sl@0
   862
// -----------------------------------------------------------------------------
sl@0
   863
//
sl@0
   864
EXPORT_C void CAudioEqualizerUtility::ModifyPresetL(
sl@0
   865
    TInt aPresetIndex,
sl@0
   866
    TDesC& aName,
sl@0
   867
    CAudioEqualizer& aAudioEqualizerUI)
sl@0
   868
    {
sl@0
   869
#ifdef _DEBUG
sl@0
   870
		    RDebug::Print(_L("CAudioEqualizerUtility::ModifyPresetL"));
sl@0
   871
#endif
sl@0
   872
sl@0
   873
		 __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument));
sl@0
   874
sl@0
   875
		// Modifies the Preset Data in the Central Repository
sl@0
   876
		// with the updated Name and Equalizer Settings for the
sl@0
   877
		// given PresetIndex
sl@0
   878
sl@0
   879
		if(aPresetIndex > (iPresetArray.Count() - 1))
sl@0
   880
			User::Leave(KErrArgument);
sl@0
   881
sl@0
   882
		iTransAudioEqualizer = &aAudioEqualizerUI;
sl@0
   883
sl@0
   884
		// Write the Equalizer Data in the first available NULL Space
sl@0
   885
		for( TInt j = 0; j < iFullPresetArray.Count();j++)
sl@0
   886
			{
sl@0
   887
				if( iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey)
sl@0
   888
					{
sl@0
   889
						iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,aName);
sl@0
   890
sl@0
   891
						HBufC8* presetHeap = HBufC8::NewL(iAudioEqualizer->NumberOfBands() * sizeof(TEfAudioEqualizerBand));
sl@0
   892
						TPtr8 des = presetHeap->Des();
sl@0
   893
						des.SetLength(presetHeap->Size());
sl@0
   894
						des.Append(iTransAudioEqualizer->DoBandDataL(2,ETrue));
sl@0
   895
sl@0
   896
						iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,des);
sl@0
   897
						delete presetHeap;
sl@0
   898
						presetHeap = NULL;
sl@0
   899
						break;
sl@0
   900
					}
sl@0
   901
			}
sl@0
   902
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   903
    }
sl@0
   904
sl@0
   905
sl@0
   906
// -----------------------------------------------------------------------------
sl@0
   907
// CAudioEqualizerUtility::NumberOfPreDefinedPresets()
sl@0
   908
// Applies the Preset to the Equalizer Object
sl@0
   909
// (other items were commented in a header).
sl@0
   910
// -----------------------------------------------------------------------------
sl@0
   911
//
sl@0
   912
sl@0
   913
sl@0
   914
EXPORT_C TUint32 CAudioEqualizerUtility::NumberOfPreDefinedPresets() const
sl@0
   915
    {
sl@0
   916
#ifdef _DEBUG
sl@0
   917
		    RDebug::Print(_L("CAudioEqualizerUtility::NumberOfPreDefinedPresets"));
sl@0
   918
#endif
sl@0
   919
sl@0
   920
		TInt numberOfPresets;
sl@0
   921
		iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,numberOfPresets);
sl@0
   922
		return numberOfPresets;
sl@0
   923
    }
sl@0
   924
sl@0
   925
sl@0
   926
// -----------------------------------------------------------------------------
sl@0
   927
// CAudioEqualizerUtility::Presets()
sl@0
   928
// Applies the Preset to the Equalizer Object
sl@0
   929
// (other items were commented in a header).
sl@0
   930
// -----------------------------------------------------------------------------
sl@0
   931
//
sl@0
   932
EXPORT_C TArray<TEfAudioEqualizerUtilityPreset> CAudioEqualizerUtility::Presets()
sl@0
   933
    {
sl@0
   934
#ifdef _DEBUG
sl@0
   935
		    RDebug::Print(_L("CAudioEqualizerUtility::Presets"));
sl@0
   936
#endif
sl@0
   937
sl@0
   938
		// returns all the Presets from the System Defined and
sl@0
   939
		// User Defined Preset Array in the Central Repository
sl@0
   940
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   941
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   942
		return iPresetArray.Array();
sl@0
   943
    }
sl@0
   944
sl@0
   945
sl@0
   946
// -----------------------------------------------------------------------------
sl@0
   947
// CAudioEqualizerUtility::ResetPresetL(TInt aPresetIndex)
sl@0
   948
// Applies the Preset to the Equalizer Object
sl@0
   949
// (other items were commented in a header).
sl@0
   950
// -----------------------------------------------------------------------------
sl@0
   951
//
sl@0
   952
EXPORT_C void CAudioEqualizerUtility::ResetPresetL(TInt aPresetIndex)
sl@0
   953
    {
sl@0
   954
#ifdef _DEBUG
sl@0
   955
		    RDebug::Print(_L("CAudioEqualizerUtility::ResetPresetL"));
sl@0
   956
#endif
sl@0
   957
sl@0
   958
		if(aPresetIndex > (iPresetArray.Count() - 1))
sl@0
   959
			User::Leave(KErrArgument);
sl@0
   960
sl@0
   961
		TInt currentNumber = 0;
sl@0
   962
		// Get the number of System Defined Presets in the Repository
sl@0
   963
		iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,currentNumber);
sl@0
   964
sl@0
   965
		if(aPresetIndex >= currentNumber)
sl@0
   966
			User::Leave(KErrNotSupported);
sl@0
   967
sl@0
   968
sl@0
   969
		for( TInt j = 0; j < currentNumber;j++)
sl@0
   970
				{
sl@0
   971
					if(  iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey)
sl@0
   972
						{
sl@0
   973
							iPresetRepository->Reset(iFullPresetArray[j].iPresetDescriptionKey);
sl@0
   974
							iPresetRepository->Reset(iFullPresetArray[j].iPresetNameKey);
sl@0
   975
						}
sl@0
   976
				}
sl@0
   977
		UpdateFullPresetArrayFromCenRep(iFullPresetArray);
sl@0
   978
		UpdatePresetArray(iPresetArray,iFullPresetArray);
sl@0
   979
	}
sl@0
   980
sl@0
   981
sl@0
   982
// -----------------------------------------------------------------------------
sl@0
   983
// CAudioEqualizerUtility::UpdatePresetArrayFromCenRep(RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray)
sl@0
   984
// Updates the Array with the Values in Central Repository
sl@0
   985
// (other items were commented in a header).
sl@0
   986
// -----------------------------------------------------------------------------
sl@0
   987
//
sl@0
   988
sl@0
   989
void CAudioEqualizerUtility::UpdateFullPresetArrayFromCenRep(RArray<TEfAudioEqualizerUtilityPreset>& aFullPresetArray)
sl@0
   990
	{
sl@0
   991
sl@0
   992
		aFullPresetArray.Reset();
sl@0
   993
 		TEfAudioEqualizerUtilityPreset tempPreset;
sl@0
   994
sl@0
   995
sl@0
   996
		TInt numberOfUserDefinedPresets = 0;
sl@0
   997
		TInt numberOfPreDefinedPresets = 0;
sl@0
   998
sl@0
   999
		iPresetRepository->Get(KAudioEqUtilityNumberOfUserDefinedPresets,numberOfUserDefinedPresets);
sl@0
  1000
		iPresetRepository->Get(KAudioEqUtilityNumberOfPreDefinedPresets,numberOfPreDefinedPresets);
sl@0
  1001
sl@0
  1002
		for( TInt j = 0; j < (numberOfPreDefinedPresets); j++)
sl@0
  1003
				{
sl@0
  1004
					tempPreset.iPresetDescriptionKey = KAudioEqUtilityPreDefinedPresetStart + (2 * j);
sl@0
  1005
					tempPreset.iPresetNameKey = KAudioEqUtilityPreDefinedPresetStartName + (2 * j);
sl@0
  1006
					iPresetRepository->Get((KAudioEqUtilityPreDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName);
sl@0
  1007
#ifdef _DEBUG
sl@0
  1008
					RDebug::RawPrint(tempPreset.iPresetName);
sl@0
  1009
#endif
sl@0
  1010
					aFullPresetArray.Append(tempPreset);
sl@0
  1011
sl@0
  1012
				}
sl@0
  1013
sl@0
  1014
			for( TInt j = 0; j < (numberOfUserDefinedPresets); j++)
sl@0
  1015
				{
sl@0
  1016
					tempPreset.iPresetDescriptionKey = KAudioEqUtilityUserDefinedPresetStart + (2 * j);
sl@0
  1017
					tempPreset.iPresetNameKey = KAudioEqUtilityUserDefinedPresetStartName + (2 * j);
sl@0
  1018
					iPresetRepository->Get((KAudioEqUtilityUserDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName);
sl@0
  1019
#ifdef _DEBUG
sl@0
  1020
					RDebug::RawPrint(tempPreset.iPresetName);
sl@0
  1021
#endif
sl@0
  1022
					aFullPresetArray.Append(tempPreset);
sl@0
  1023
sl@0
  1024
				}
sl@0
  1025
sl@0
  1026
	}
sl@0
  1027
sl@0
  1028
// -----------------------------------------------------------------------------
sl@0
  1029
// CAudioEqualizerUtility::UpdatePresetArray(RArray<TDesC>& aPresetArray,const RArray<TEfAudioEqualizerUtilityPreset> &aFullPresetArray)
sl@0
  1030
// Creates the Descriptor Array of Names of the Presets Stored in Central Repository
sl@0
  1031
// (other items were commented in a header).
sl@0
  1032
// -----------------------------------------------------------------------------
sl@0
  1033
//
sl@0
  1034
void CAudioEqualizerUtility::UpdatePresetArray(RArray<TEfAudioEqualizerUtilityPreset>& aPresetArray,const RArray<TEfAudioEqualizerUtilityPreset>& aFullPresetArray)
sl@0
  1035
	{
sl@0
  1036
sl@0
  1037
		aPresetArray.Reset();
sl@0
  1038
		TEfAudioEqualizerUtilityPreset	tempClientArray;
sl@0
  1039
sl@0
  1040
		// Write the Equalizer Data in the first available NULL Space
sl@0
  1041
		for( TInt j = 0; j < aFullPresetArray.Count();j++)
sl@0
  1042
			{
sl@0
  1043
				if( aFullPresetArray[j].iPresetName.Length() != 0)
sl@0
  1044
					{
sl@0
  1045
sl@0
  1046
						tempClientArray.iPresetName = aFullPresetArray[j].iPresetName;
sl@0
  1047
						tempClientArray.iPresetNameKey = aFullPresetArray[j].iPresetNameKey;
sl@0
  1048
sl@0
  1049
						aPresetArray.Append(tempClientArray);
sl@0
  1050
					}
sl@0
  1051
#ifdef _DEBUG
sl@0
  1052
				RDebug::Print(_L("Name Length %d "),aFullPresetArray[j].iPresetName.Length());
sl@0
  1053
				RDebug::RawPrint(aFullPresetArray[j].iPresetName);
sl@0
  1054
#endif
sl@0
  1055
			}
sl@0
  1056
sl@0
  1057
	}
sl@0
  1058
sl@0
  1059
sl@0
  1060
// ========================== OTHER EXPORTED FUNCTIONS =========================
sl@0
  1061
sl@0
  1062
sl@0
  1063
sl@0
  1064
//  End of File