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