os/mm/devsoundextensions/effectspresets/StereoWideningUtility/src/StereoWideningUtility.cpp
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/mm/devsoundextensions/effectspresets/StereoWideningUtility/src/StereoWideningUtility.cpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,970 @@
1.4 +/*
1.5 +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
1.6 +* All rights reserved.
1.7 +* This component and the accompanying materials are made available
1.8 +* under the terms of "Eclipse Public License v1.0"
1.9 +* which accompanies this distribution, and is available
1.10 +* at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.11 +*
1.12 +* Initial Contributors:
1.13 +* Nokia Corporation - initial contribution.
1.14 +*
1.15 +* Contributors:
1.16 +*
1.17 +* Description: Utility to Access the StereoWidening Effect
1.18 +*
1.19 +*/
1.20 +
1.21 +
1.22 +
1.23 +// INCLUDE FILES
1.24 +#include <e32std.h>
1.25 +#include <StereoWideningUtility.h>
1.26 +#include <DrmAudioSamplePlayer.h>
1.27 +//#include <midiclientutility.h>
1.28 +#include "TempStereoWidening.h"
1.29 +#include "StereoWideningInternalCRKeys.h"
1.30 +#include <videoplayer.h>
1.31 +
1.32 +// ============================ MEMBER FUNCTIONS ===============================
1.33 +
1.34 +// -----------------------------------------------------------------------------
1.35 +// CStereoWideningUtility::CStereoWideningUtility
1.36 +// C++ default constructor can NOT contain any code, that
1.37 +// might leave.
1.38 +// -----------------------------------------------------------------------------
1.39 +//
1.40 +CStereoWideningUtility::CStereoWideningUtility()
1.41 + : iStereoWidening(NULL),
1.42 + iPresetRepository(NULL)
1.43 + {
1.44 + }
1.45 +
1.46 +
1.47 +// Destructor
1.48 +CStereoWideningUtility::~CStereoWideningUtility()
1.49 + {
1.50 + iPresetArray.Close();
1.51 + iFullPresetArray.Close();
1.52 + delete iPresetRepository;
1.53 + delete iTransStereoWidening;
1.54 + delete iStereoWidening;
1.55 + }
1.56 +
1.57 +
1.58 +// -----------------------------------------------------------------------------
1.59 +// CStereoWideningUtility::ConstructL
1.60 +// Symbian 2nd phase constructor can leave.
1.61 +// -----------------------------------------------------------------------------
1.62 +//
1.63 +void CStereoWideningUtility::ConstructL(CMMFDevSound& aDevSound)
1.64 + {
1.65 +#ifdef _DEBUG
1.66 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.67 +#endif
1.68 + iStereoWidening = CStereoWidening::NewL(aDevSound);
1.69 + TInt level = iStereoWidening->StereoWideningLevel();
1.70 +
1.71 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.72 +
1.73 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.74 +
1.75 +
1.76 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.77 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.78 + }
1.79 +
1.80 +
1.81 +// -----------------------------------------------------------------------------
1.82 +// CStereoWideningUtility::ConstructL
1.83 +// Symbian 2nd phase constructor can leave.
1.84 +// -----------------------------------------------------------------------------
1.85 +//
1.86 +void CStereoWideningUtility::ConstructL(CMdaAudioConvertUtility& aUtility)
1.87 + {
1.88 +#ifdef _DEBUG
1.89 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.90 +#endif
1.91 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.92 + TInt level = iStereoWidening->StereoWideningLevel();
1.93 +
1.94 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.95 +
1.96 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.97 +
1.98 +
1.99 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.100 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.101 + }
1.102 +
1.103 +// -----------------------------------------------------------------------------
1.104 +// CStereoWideningUtility::ConstructL
1.105 +// Symbian 2nd phase constructor can leave.
1.106 +// -----------------------------------------------------------------------------
1.107 +//
1.108 +void CStereoWideningUtility::ConstructL(CMdaAudioInputStream& aUtility)
1.109 + {
1.110 +#ifdef _DEBUG
1.111 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.112 +#endif
1.113 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.114 + TInt level = iStereoWidening->StereoWideningLevel();
1.115 +
1.116 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.117 +
1.118 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.119 +
1.120 +
1.121 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.122 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.123 + }
1.124 +
1.125 +// -----------------------------------------------------------------------------
1.126 +// CStereoWideningUtility::ConstructL
1.127 +// Symbian 2nd phase constructor can leave.
1.128 +// -----------------------------------------------------------------------------
1.129 +//
1.130 +void CStereoWideningUtility::ConstructL(CMdaAudioOutputStream& aUtility)
1.131 + {
1.132 +#ifdef _DEBUG
1.133 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.134 +#endif
1.135 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.136 + TInt level = iStereoWidening->StereoWideningLevel();
1.137 +
1.138 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.139 +
1.140 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.141 +
1.142 +
1.143 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.144 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.145 + }
1.146 +
1.147 +// -----------------------------------------------------------------------------
1.148 +// CStereoWideningUtility::ConstructL
1.149 +// Symbian 2nd phase constructor can leave.
1.150 +// -----------------------------------------------------------------------------
1.151 +//
1.152 +void CStereoWideningUtility::ConstructL(CMdaAudioPlayerUtility& aUtility)
1.153 + {
1.154 +#ifdef _DEBUG
1.155 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.156 +#endif
1.157 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.158 + TInt level = iStereoWidening->StereoWideningLevel();
1.159 +
1.160 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.161 +
1.162 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.163 +
1.164 +
1.165 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.166 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.167 + }
1.168 +
1.169 +// -----------------------------------------------------------------------------
1.170 +// CStereoWideningUtility::ConstructL
1.171 +// Symbian 2nd phase constructor can leave.
1.172 +// -----------------------------------------------------------------------------
1.173 +//
1.174 +void CStereoWideningUtility::ConstructL(CMdaAudioRecorderUtility& aUtility )
1.175 + {
1.176 +#ifdef _DEBUG
1.177 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.178 +#endif
1.179 + iStereoWidening = CStereoWidening::NewL(aUtility,ETrue,EFalse,0);
1.180 + TInt level = iStereoWidening->StereoWideningLevel();
1.181 +
1.182 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.183 +
1.184 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.185 +
1.186 +
1.187 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.188 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.189 + }
1.190 +
1.191 +// -----------------------------------------------------------------------------
1.192 +// CStereoWideningUtility::ConstructL
1.193 +// Symbian 2nd phase constructor can leave.
1.194 +// -----------------------------------------------------------------------------
1.195 +//
1.196 +void CStereoWideningUtility::ConstructL(CMdaAudioToneUtility& aUtility)
1.197 + {
1.198 +#ifdef _DEBUG
1.199 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.200 +#endif
1.201 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.202 + TInt level = iStereoWidening->StereoWideningLevel();
1.203 +
1.204 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.205 +
1.206 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.207 +
1.208 +
1.209 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.210 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.211 + }
1.212 +
1.213 +// -----------------------------------------------------------------------------
1.214 +// CStereoWideningUtility::ConstructL
1.215 +// Symbian 2nd phase constructor can leave.
1.216 +// -----------------------------------------------------------------------------
1.217 +//
1.218 +void CStereoWideningUtility::ConstructL(CCustomCommandUtility* aUtility)
1.219 + {
1.220 +#ifdef _DEBUG
1.221 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.222 +#endif
1.223 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.224 + TInt level = iStereoWidening->StereoWideningLevel();
1.225 +
1.226 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.227 +
1.228 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.229 +
1.230 +
1.231 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.232 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.233 + }
1.234 +
1.235 +// -----------------------------------------------------------------------------
1.236 +// CStereoWideningUtility::ConstructL
1.237 +// Symbian 2nd phase constructor can leave.
1.238 +// -----------------------------------------------------------------------------
1.239 +//
1.240 +void CStereoWideningUtility::ConstructL(MCustomInterface& aCustomInterface)
1.241 + {
1.242 +#ifdef _DEBUG
1.243 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.244 +#endif
1.245 + iStereoWidening = CStereoWidening::NewL(aCustomInterface);
1.246 + TInt level = iStereoWidening->StereoWideningLevel();
1.247 +
1.248 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.249 +
1.250 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.251 +
1.252 +
1.253 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.254 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.255 +
1.256 + }
1.257 +
1.258 +// -----------------------------------------------------------------------------
1.259 +// CStereoWideningUtility::ConstructL
1.260 +// Symbian 2nd phase constructor can leave.
1.261 +// -----------------------------------------------------------------------------
1.262 +//
1.263 +void CStereoWideningUtility::ConstructL(CMidiClientUtility& aUtility)
1.264 + {
1.265 +#ifdef _DEBUG
1.266 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.267 +#endif
1.268 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.269 + TInt level = iStereoWidening->StereoWideningLevel();
1.270 +
1.271 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.272 +
1.273 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.274 +
1.275 +
1.276 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.277 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.278 + }
1.279 +
1.280 +// -----------------------------------------------------------------------------
1.281 +// CStereoWideningUtility::ConstructL
1.282 +// Symbian 2nd phase constructor can leave.
1.283 +// -----------------------------------------------------------------------------
1.284 +//
1.285 +void CStereoWideningUtility::ConstructL(CDrmPlayerUtility& aUtility)
1.286 + {
1.287 +#ifdef _DEBUG
1.288 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.289 +#endif
1.290 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.291 + TInt level = iStereoWidening->StereoWideningLevel();
1.292 +
1.293 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.294 +
1.295 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.296 +
1.297 +
1.298 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.299 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.300 + }
1.301 +
1.302 +// -----------------------------------------------------------------------------
1.303 +// CStereoWideningUtility::ConstructL
1.304 +// Symbian 2nd phase constructor can leave.
1.305 +// -----------------------------------------------------------------------------
1.306 +//
1.307 +void CStereoWideningUtility::ConstructL(CVideoPlayerUtility& aUtility)
1.308 + {
1.309 +#ifdef _DEBUG
1.310 + RDebug::Print(_L("CStereoWideningUtility::ConstructL"));
1.311 +#endif
1.312 + iStereoWidening = CStereoWidening::NewL(aUtility);
1.313 + TInt level = iStereoWidening->StereoWideningLevel();
1.314 +
1.315 + iTransStereoWidening = CTempStereoWidening::NewL(level,iStereoWidening);
1.316 +
1.317 + iPresetRepository = CRepository::NewL(KCRUidStereoWideningPresets);
1.318 +
1.319 +
1.320 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.321 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.322 + }
1.323 +
1.324 +// -----------------------------------------------------------------------------
1.325 +// CStereoWideningUtility::NewL
1.326 +// Two-phased constructor.
1.327 +// -----------------------------------------------------------------------------
1.328 +//
1.329 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMMFDevSound& aDevSound)
1.330 + {
1.331 +#ifdef _DEBUG
1.332 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.333 +#endif
1.334 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.335 + CleanupStack::PushL( self );
1.336 + self->ConstructL(aDevSound);
1.337 + CleanupStack::Pop(self);
1.338 + return self;
1.339 + }
1.340 +
1.341 +
1.342 +// -----------------------------------------------------------------------------
1.343 +// CStereoWideningUtility::NewL
1.344 +// Two-phased constructor.
1.345 +// -----------------------------------------------------------------------------
1.346 +//
1.347 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioConvertUtility& aUtility)
1.348 + {
1.349 +#ifdef _DEBUG
1.350 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.351 +#endif
1.352 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.353 + CleanupStack::PushL( self );
1.354 + self->ConstructL(aUtility);
1.355 + CleanupStack::Pop(self);
1.356 + return self;
1.357 + }
1.358 +
1.359 +
1.360 +// -----------------------------------------------------------------------------
1.361 +// CStereoWideningUtility::NewL
1.362 +// Two-phased constructor.
1.363 +// -----------------------------------------------------------------------------
1.364 +//
1.365 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioInputStream& aUtility)
1.366 + {
1.367 +#ifdef _DEBUG
1.368 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.369 +#endif
1.370 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.371 + CleanupStack::PushL( self );
1.372 + self->ConstructL(aUtility);
1.373 + CleanupStack::Pop(self);
1.374 + return self;
1.375 + }
1.376 +
1.377 +
1.378 +// -----------------------------------------------------------------------------
1.379 +// CStereoWideningUtility::NewL
1.380 +// Two-phased constructor.
1.381 +// -----------------------------------------------------------------------------
1.382 +//
1.383 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioOutputStream& aUtility)
1.384 + {
1.385 +#ifdef _DEBUG
1.386 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.387 +#endif
1.388 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.389 + CleanupStack::PushL( self );
1.390 + self->ConstructL(aUtility);
1.391 + CleanupStack::Pop(self);
1.392 + return self;
1.393 + }
1.394 +
1.395 +
1.396 +// -----------------------------------------------------------------------------
1.397 +// CStereoWideningUtility::NewL
1.398 +// Two-phased constructor.
1.399 +// -----------------------------------------------------------------------------
1.400 +//
1.401 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioPlayerUtility& aUtility)
1.402 + {
1.403 +#ifdef _DEBUG
1.404 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.405 +#endif
1.406 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.407 + CleanupStack::PushL( self );
1.408 + self->ConstructL(aUtility);
1.409 + CleanupStack::Pop(self);
1.410 + return self;
1.411 + }
1.412 +
1.413 +
1.414 +// -----------------------------------------------------------------------------
1.415 +// CStereoWideningUtility::NewL
1.416 +// Two-phased constructor.
1.417 +// -----------------------------------------------------------------------------
1.418 +//
1.419 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioRecorderUtility& aUtility)
1.420 + {
1.421 +#ifdef _DEBUG
1.422 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.423 +#endif
1.424 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.425 + CleanupStack::PushL( self );
1.426 + self->ConstructL(aUtility);
1.427 + CleanupStack::Pop(self);
1.428 + return self;
1.429 + }
1.430 +
1.431 +
1.432 +// -----------------------------------------------------------------------------
1.433 +// CStereoWideningUtility::NewL
1.434 +// Two-phased constructor.
1.435 +// -----------------------------------------------------------------------------
1.436 +//
1.437 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMdaAudioToneUtility& aUtility)
1.438 + {
1.439 +#ifdef _DEBUG
1.440 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.441 +#endif
1.442 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.443 + CleanupStack::PushL( self );
1.444 + self->ConstructL(aUtility);
1.445 + CleanupStack::Pop(self);
1.446 + return self;
1.447 + }
1.448 +
1.449 +
1.450 +// -----------------------------------------------------------------------------
1.451 +// CStereoWideningUtility::NewL
1.452 +// Two-phased constructor.
1.453 +// -----------------------------------------------------------------------------
1.454 +//
1.455 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CCustomCommandUtility* aUtility)
1.456 + {
1.457 +#ifdef _DEBUG
1.458 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.459 +#endif
1.460 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.461 + CleanupStack::PushL( self );
1.462 + self->ConstructL(aUtility);
1.463 + CleanupStack::Pop(self);
1.464 + return self;
1.465 + }
1.466 +
1.467 +
1.468 +// -----------------------------------------------------------------------------
1.469 +// CStereoWideningUtility::NewL
1.470 +// Two-phased constructor.
1.471 +// -----------------------------------------------------------------------------
1.472 +//
1.473 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(MCustomInterface& aCustomInterface)
1.474 + {
1.475 +#ifdef _DEBUG
1.476 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.477 +#endif
1.478 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.479 + CleanupStack::PushL( self );
1.480 + self->ConstructL(aCustomInterface);
1.481 + CleanupStack::Pop(self);
1.482 + return self;
1.483 + }
1.484 +
1.485 +// -----------------------------------------------------------------------------
1.486 +// CStereoWideningUtility::NewL
1.487 +// Two-phased constructor.
1.488 +// -----------------------------------------------------------------------------
1.489 +//
1.490 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CMidiClientUtility& aUtility)
1.491 +{
1.492 +
1.493 + #ifdef _DEBUG
1.494 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.495 +#endif
1.496 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.497 + CleanupStack::PushL( self );
1.498 + self->ConstructL(aUtility);
1.499 + CleanupStack::Pop(self);
1.500 + return self;
1.501 +}
1.502 +
1.503 +// -----------------------------------------------------------------------------
1.504 +// CStereoWideningUtility::NewL
1.505 +// Two-phased constructor.
1.506 +// -----------------------------------------------------------------------------
1.507 +//
1.508 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CDrmPlayerUtility& aUtility)
1.509 +{
1.510 +
1.511 + #ifdef _DEBUG
1.512 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.513 +#endif
1.514 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.515 + CleanupStack::PushL( self );
1.516 + self->ConstructL(aUtility);
1.517 + CleanupStack::Pop(self);
1.518 + return self;
1.519 +}
1.520 +
1.521 +// -----------------------------------------------------------------------------
1.522 +// CStereoWideningUtility::NewL
1.523 +// Two-phased constructor.
1.524 +// -----------------------------------------------------------------------------
1.525 +//
1.526 +EXPORT_C CStereoWideningUtility* CStereoWideningUtility::NewL(CVideoPlayerUtility& aUtility)
1.527 +{
1.528 +
1.529 + #ifdef _DEBUG
1.530 + RDebug::Print(_L("CStereoWideningUtility::NewL"));
1.531 +#endif
1.532 + CStereoWideningUtility* self = new( ELeave ) CStereoWideningUtility;
1.533 + CleanupStack::PushL( self );
1.534 + self->ConstructL(aUtility);
1.535 + CleanupStack::Pop(self);
1.536 + return self;
1.537 +}
1.538 +
1.539 +// -----------------------------------------------------------------------------
1.540 +// CStereoWideningUtility::ApplyPresetL()
1.541 +// Applies the Preset to the StereoWidening Object
1.542 +// (other items were commented in a header).
1.543 +// -----------------------------------------------------------------------------
1.544 +//
1.545 +EXPORT_C void CStereoWideningUtility::ApplyPresetL(
1.546 + TInt aPresetIndex)
1.547 + {
1.548 +#ifdef _DEBUG
1.549 + RDebug::Print(_L("CStereoWideningUtility::ApplyPresetL"));
1.550 +#endif
1.551 + // Get the Preset from the Central Repository
1.552 + // and Apply it to the StereoWidening Object
1.553 + // using SetBandData method. After that Just Enable() the Effect
1.554 +
1.555 + TInt level;
1.556 +
1.557 + if(aPresetIndex > (iPresetArray.Count() - 1))
1.558 + User::Leave(KErrArgument);
1.559 +
1.560 + // Write the StereoWidening Data in the first available NULL Space
1.561 + for( TInt j = 0; j < iFullPresetArray.Count();j++)
1.562 + {
1.563 + if( iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey)
1.564 + {
1.565 + iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,level);
1.566 + iStereoWidening->SetStereoWideningLevelL(level);
1.567 + // Applying the Settings to the Audio StereoWidening
1.568 + // iStereoWidening->ApplyL();
1.569 +
1.570 + iStereoWidening->EnableL();
1.571 + break;
1.572 + }
1.573 + }
1.574 + }
1.575 +
1.576 +// -----------------------------------------------------------------------------
1.577 +// CStereoWideningUtility::CreatePresetL(TDesC& aName,CStereoWidening& aStereoWidening)
1.578 +// Applies the Preset to the StereoWidening Object
1.579 +// (other items were commented in a header).
1.580 +// -----------------------------------------------------------------------------
1.581 +//
1.582 +
1.583 +EXPORT_C void CStereoWideningUtility:: CreatePresetL(
1.584 + TDesC& aName,
1.585 + CStereoWidening& aStereoWideningUI)
1.586 + {
1.587 +#ifdef _DEBUG
1.588 + RDebug::Print(_L("CStereoWideningUtility::CreatePresetL"));
1.589 +#endif
1.590 + // Get the Preset from the UI and create a DesC using
1.591 + // DoBandData() method and then store it to the
1.592 + // Central Repository
1.593 +
1.594 + __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument));
1.595 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.596 +
1.597 + iTransStereoWidening = &aStereoWideningUI;
1.598 +
1.599 + //Create New Keys at the End of the Repository
1.600 + TInt currentNumber = 0;
1.601 + // Get the number of User Defined Presets in the Repository
1.602 + iPresetRepository->Get(KStereoWideningNumberOfUserDefinedPresets,currentNumber);
1.603 +
1.604 + TUint8 level = iTransStereoWidening->StereoWideningLevel();
1.605 +
1.606 + // Calculate and Create the StereoWidening Data for the New Preset
1.607 + iPresetRepository->Create(currentNumber*2+KStereoWideningUserDefinedPresetStart,level);
1.608 + // Calculate and create the New Preset Name in the End
1.609 + iPresetRepository->Create(currentNumber*2+KStereoWideningUserDefinedPresetStartName,aName);
1.610 + // Update the Number of UserDefined Presets in the End
1.611 + // Since we created new Keys for the Name and the Descriptor
1.612 + currentNumber += 1;
1.613 + iPresetRepository->Set(KStereoWideningNumberOfUserDefinedPresets,currentNumber);
1.614 + iPresetRepository->Get(KStereoWideningPresetsCounter,currentNumber);
1.615 + iPresetRepository->Set(KStereoWideningPresetsCounter,currentNumber + 1);
1.616 +
1.617 + // Refresh the iFullPresetArray
1.618 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.619 +
1.620 + }
1.621 +
1.622 +// -----------------------------------------------------------------------------
1.623 +// CStereoWideningUtility::DeletePresetL()
1.624 +// Deletes the Preset from the Central Repository
1.625 +// (other items were commented in a header).
1.626 +// -----------------------------------------------------------------------------
1.627 +//
1.628 +EXPORT_C const TDesC& CStereoWideningUtility::GetPresetL(
1.629 + TInt aPresetIndex)
1.630 + {
1.631 +#ifdef _DEBUG
1.632 + RDebug::Print(_L("CStereoWideningUtility::GetPresetL"));
1.633 +#endif
1.634 + // Get the Preset from the Central Repository
1.635 + // and Apply it to the StereoWidening Object
1.636 + // using SetBandData method. After that Just Enable() the Effect
1.637 +
1.638 +
1.639 + if(aPresetIndex > (iPresetArray.Count() - 1))
1.640 + User::Leave(KErrArgument);
1.641 +
1.642 + TBool presetFound = EFalse;
1.643 + TInt level;
1.644 +
1.645 + // Write the StereoWidening Data in the first available NULL Space
1.646 + for(TInt j = 0; j < iFullPresetArray.Count();j++)
1.647 + {
1.648 + if( iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey)
1.649 + {
1.650 + iPresetRepository->Get(iFullPresetArray[j].iPresetDescriptionKey,level);
1.651 + iTransStereoWidening->SetStereoWideningLevelL(level);
1.652 + presetFound = ETrue;
1.653 + return iFullPresetArray[j].iPresetName;
1.654 + }
1.655 + }
1.656 + if(!presetFound)
1.657 + User::Leave(KErrNotFound);
1.658 +
1.659 + return KNullDesC;
1.660 + }
1.661 +
1.662 +
1.663 +// -----------------------------------------------------------------------------
1.664 +// CStereoWideningUtility::DeletePresetL()
1.665 +// Deletes the Preset from the Central Repository
1.666 +// (other items were commented in a header).
1.667 +// -----------------------------------------------------------------------------
1.668 +//
1.669 +EXPORT_C void CStereoWideningUtility::DeletePresetL(
1.670 + TInt aPresetIndex)
1.671 + {
1.672 +#ifdef _DEBUG
1.673 + RDebug::Print(_L("CStereoWideningUtility::DeletePresetL"));
1.674 +#endif
1.675 + // Get the Name from the PresetIndex
1.676 + // This Preset Index is from the Array returned to the UI
1.677 +
1.678 + TInt err(KErrNone);
1.679 + TBool presetFound = EFalse;
1.680 +
1.681 + // Leave if it deletes a predefined preset
1.682 + TInt currentNumberOfPredefinedPresets = 0;
1.683 +
1.684 + // Get the number of User Defined Presets in the Repository
1.685 + iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,currentNumberOfPredefinedPresets);
1.686 +
1.687 + if (aPresetIndex < currentNumberOfPredefinedPresets) //it is a predefined preset,
1.688 + {
1.689 + User::Leave(KErrArgument);
1.690 + }
1.691 +
1.692 + if(aPresetIndex > (iPresetArray.Count() - 1))
1.693 + User::Leave(KErrArgument);
1.694 +
1.695 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.696 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.697 +#ifdef _DEBUG
1.698 + RDebug::RawPrint(iPresetArray[aPresetIndex].iPresetName);
1.699 +#endif
1.700 +
1.701 + // Deletes the Preset from the iFullPresetArray and then
1.702 + // rewrite it to the Central Repository
1.703 + for(TInt j = 0; j < iFullPresetArray.Count();j++)
1.704 + {
1.705 +
1.706 + if( (iFullPresetArray[j].iPresetNameKey == iPresetArray[aPresetIndex].iPresetNameKey) &&
1.707 + (iFullPresetArray[j].iPresetName.Length()))
1.708 + {
1.709 +
1.710 + presetFound = ETrue;
1.711 + TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,KNullDesC));
1.712 + TRAP(err,iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,KNullDesC));
1.713 + if(err != KErrNone)
1.714 + {
1.715 + break;
1.716 + }
1.717 + else
1.718 + {
1.719 + iFullPresetArray[j].iPresetName.FillZ(0);
1.720 + iFullPresetArray[j].iPresetNameKey = 0;
1.721 + iFullPresetArray[j].iPresetDescriptionKey = 0;
1.722 + break;
1.723 + }
1.724 + }
1.725 +#ifdef _DEBUG
1.726 + RDebug::RawPrint(iFullPresetArray[j].iPresetName);
1.727 +#endif
1.728 + }
1.729 +
1.730 + if(!presetFound)
1.731 + User::Leave(KErrNotFound);
1.732 + // After This Update the iPresetArray for the UI
1.733 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.734 + }
1.735 +
1.736 +// -----------------------------------------------------------------------------
1.737 +// CStereoWideningUtility::DisablePresetL()
1.738 +// Disable the Preset
1.739 +// (other items were commented in a header).
1.740 +// -----------------------------------------------------------------------------
1.741 +//
1.742 +
1.743 +EXPORT_C void CStereoWideningUtility::DisableStereoWideningL()
1.744 +{
1.745 +#ifdef _DEBUG
1.746 + RDebug::Print(_L("CStereoWideningUtility::DisableStereoWideningL"));
1.747 +#endif
1.748 +
1.749 + if(iStereoWidening)
1.750 + {
1.751 + iStereoWidening->DisableL();
1.752 + }
1.753 +}
1.754 +
1.755 +// -----------------------------------------------------------------------------
1.756 +// CStereoWideningUtility::StereoWidening()
1.757 +// Applies the Preset to the StereoWidening Object
1.758 +// (other items were commented in a header).
1.759 +// -----------------------------------------------------------------------------
1.760 +//
1.761 +EXPORT_C CStereoWidening& CStereoWideningUtility::StereoWidening()
1.762 + {
1.763 +#ifdef _DEBUG
1.764 + RDebug::Print(_L("CStereoWideningUtility::StereoWidening()"));
1.765 +#endif
1.766 +
1.767 + return *iTransStereoWidening;
1.768 + }
1.769 +
1.770 +
1.771 +// -----------------------------------------------------------------------------
1.772 +// CStereoWideningUtility::ModifyPresetL()
1.773 +// Applies the Preset to the StereoWidening Object
1.774 +// (other items were commented in a header).
1.775 +// -----------------------------------------------------------------------------
1.776 +//
1.777 +EXPORT_C void CStereoWideningUtility::ModifyPresetL(
1.778 + TInt aPresetIndex,
1.779 + TDesC& aName,
1.780 + CStereoWidening& aStereoWideningUI)
1.781 + {
1.782 +#ifdef _DEBUG
1.783 + RDebug::Print(_L("CStereoWideningUtility::ModifyPresetL"));
1.784 +#endif
1.785 +
1.786 + __ASSERT_ALWAYS(aName.Length() > 0,User::Leave(KErrArgument));
1.787 + // Modifies the Preset Data in the Central Repository
1.788 + // with the updated Name and StereoWidening Settings for the
1.789 + // given PresetIndex
1.790 +
1.791 + if(aPresetIndex > (iPresetArray.Count() - 1))
1.792 + User::Leave(KErrArgument);
1.793 +
1.794 + TUint8 level;
1.795 + TBuf<32> presetName;
1.796 + presetName = iPresetArray[aPresetIndex].iPresetName;
1.797 +
1.798 + iTransStereoWidening = &aStereoWideningUI;
1.799 +
1.800 + // Write the StereoWidening Data in the first available NULL Space
1.801 + for( TInt j = 0; j < iFullPresetArray.Count();j++)
1.802 + {
1.803 + if( iFullPresetArray[j].iPresetName == presetName)
1.804 + {
1.805 + iPresetRepository->Set(iFullPresetArray[j].iPresetNameKey,aName);
1.806 + level = iTransStereoWidening->StereoWideningLevel();
1.807 + iPresetRepository->Set(iFullPresetArray[j].iPresetDescriptionKey,level);
1.808 + break;
1.809 + }
1.810 + }
1.811 + UpdateFullPresetArrayFromCenRep(iFullPresetArray);
1.812 + }
1.813 +
1.814 +
1.815 +// -----------------------------------------------------------------------------
1.816 +// CStereoWideningUtility::NumberOfPreDefinedPresets()
1.817 +// Applies the Preset to the StereoWidening Object
1.818 +// (other items were commented in a header).
1.819 +// -----------------------------------------------------------------------------
1.820 +//
1.821 +
1.822 +
1.823 +EXPORT_C TUint32 CStereoWideningUtility::NumberOfPreDefinedPresets() const
1.824 + {
1.825 +#ifdef _DEBUG
1.826 + RDebug::Print(_L("CStereoWideningUtility::NumberOfPreDefinedPresets"));
1.827 +#endif
1.828 +
1.829 + TInt numberOfPresets;
1.830 + iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,numberOfPresets);
1.831 + return numberOfPresets;
1.832 + }
1.833 +
1.834 +
1.835 +// -----------------------------------------------------------------------------
1.836 +// CStereoWideningUtility::Presets()
1.837 +// Applies the Preset to the StereoWidening Object
1.838 +// (other items were commented in a header).
1.839 +// -----------------------------------------------------------------------------
1.840 +//
1.841 +EXPORT_C TArray<TEfStereoWideningUtilityPreset> CStereoWideningUtility::Presets()
1.842 + {
1.843 +#ifdef _DEBUG
1.844 + RDebug::Print(_L("CStereoWideningUtility::Presets"));
1.845 +#endif
1.846 +
1.847 + // returns all the Presets from the System Defined and
1.848 + // User Defined Preset Array in the Central Repository
1.849 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.850 + return iPresetArray.Array();
1.851 + }
1.852 +
1.853 +
1.854 +// -----------------------------------------------------------------------------
1.855 +// CStereoWideningUtility::ResetPresetL(TInt aPresetIndex)
1.856 +// Applies the Preset to the StereoWidening Object
1.857 +// (other items were commented in a header).
1.858 +// -----------------------------------------------------------------------------
1.859 +//
1.860 +EXPORT_C void CStereoWideningUtility::ResetPresetL(TInt aPresetIndex)
1.861 + {
1.862 +#ifdef _DEBUG
1.863 + RDebug::Print(_L("CStereoWideningUtility::ResetPresetL"));
1.864 +#endif
1.865 +
1.866 + if(aPresetIndex > (iPresetArray.Count() - 1))
1.867 + User::Leave(KErrArgument);
1.868 +
1.869 + TBuf<32> aName;
1.870 + aName = iPresetArray[aPresetIndex].iPresetName;
1.871 +
1.872 + TInt currentNumber = 0;
1.873 + // Get the number of System Defined Presets in the Repository
1.874 + iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,currentNumber);
1.875 +
1.876 + if(aPresetIndex >= currentNumber)
1.877 + User::Leave(KErrNotSupported);
1.878 +
1.879 +
1.880 + for( TInt j = 0; j < currentNumber;j++)
1.881 + {
1.882 + if( iFullPresetArray[j].iPresetName == aName)
1.883 + {
1.884 + iPresetRepository->Reset(iFullPresetArray[j].iPresetDescriptionKey);
1.885 + iPresetRepository->Reset(iFullPresetArray[j].iPresetNameKey);
1.886 + }
1.887 + }
1.888 +
1.889 + UpdatePresetArray(iPresetArray,iFullPresetArray);
1.890 + }
1.891 +
1.892 +
1.893 +// -----------------------------------------------------------------------------
1.894 +// CStereoWideningUtility::UpdatePresetArrayFromCenRep(RArray<TEfStereoWideningUtilityPreset> &aFullPresetArray)
1.895 +// Updates the Array with the Values in Central Repository
1.896 +// (other items were commented in a header).
1.897 +// -----------------------------------------------------------------------------
1.898 +//
1.899 +
1.900 +void CStereoWideningUtility::UpdateFullPresetArrayFromCenRep(RArray<TEfStereoWideningUtilityPreset>& aFullPresetArray)
1.901 + {
1.902 +
1.903 + aFullPresetArray.Reset();
1.904 + TEfStereoWideningUtilityPreset tempPreset;
1.905 +
1.906 +
1.907 + TInt numberOfUserDefinedPresets = 0;
1.908 + TInt numberOfPreDefinedPresets = 0;
1.909 +
1.910 + iPresetRepository->Get(KStereoWideningNumberOfUserDefinedPresets,numberOfUserDefinedPresets);
1.911 + iPresetRepository->Get(KStereoWideningNumberOfPreDefinedPresets,numberOfPreDefinedPresets);
1.912 +
1.913 + for( TInt j = 0; j < (numberOfPreDefinedPresets); j++)
1.914 + {
1.915 + tempPreset.iPresetDescriptionKey = KStereoWideningPreDefinedPresetStart + (2 * j);
1.916 + tempPreset.iPresetNameKey = KStereoWideningPreDefinedPresetStartName + (2 * j);
1.917 + iPresetRepository->Get((KStereoWideningPreDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName);
1.918 +#ifdef _DEBUG
1.919 + RDebug::RawPrint(tempPreset.iPresetName);
1.920 +#endif
1.921 + aFullPresetArray.Append(tempPreset);
1.922 +
1.923 + }
1.924 +
1.925 + for( TInt j = 0; j < (numberOfUserDefinedPresets); j++)
1.926 + {
1.927 + tempPreset.iPresetDescriptionKey = KStereoWideningUserDefinedPresetStart + (2 * j);
1.928 + tempPreset.iPresetNameKey = KStereoWideningUserDefinedPresetStartName + (2 * j);
1.929 + iPresetRepository->Get((KStereoWideningUserDefinedPresetStartName + (2 * j)) ,tempPreset.iPresetName);
1.930 +#ifdef _DEBUG
1.931 + RDebug::RawPrint(tempPreset.iPresetName);
1.932 +#endif
1.933 + aFullPresetArray.Append(tempPreset);
1.934 +
1.935 + }
1.936 +
1.937 + }
1.938 +
1.939 +// -----------------------------------------------------------------------------
1.940 +// CStereoWideningUtility::UpdatePresetArray(RArray<TDesC>& aPresetArray,const RArray<TEfStereoWideningUtilityPreset> &aFullPresetArray)
1.941 +// Creates the Descriptor Array of Names of the Presets Stored in Central Repository
1.942 +// (other items were commented in a header).
1.943 +// -----------------------------------------------------------------------------
1.944 +//
1.945 +void CStereoWideningUtility::UpdatePresetArray(RArray<TEfStereoWideningUtilityPreset>& aPresetArray,const RArray<TEfStereoWideningUtilityPreset>& aFullPresetArray)
1.946 + {
1.947 +
1.948 + aPresetArray.Reset();
1.949 + TEfStereoWideningUtilityPreset tempClientArray;
1.950 +
1.951 + // Write the StereoWidening Data in the first available NULL Space
1.952 + for( TInt j = 0; j < aFullPresetArray.Count();j++)
1.953 + {
1.954 + if( aFullPresetArray[j].iPresetName.Length() != 0)
1.955 + {
1.956 +
1.957 + tempClientArray.iPresetName = aFullPresetArray[j].iPresetName;
1.958 + tempClientArray.iPresetNameKey = aFullPresetArray[j].iPresetNameKey;
1.959 + tempClientArray.iPresetDescriptionKey = aFullPresetArray[j].iPresetDescriptionKey;
1.960 + aPresetArray.Append(tempClientArray);
1.961 + }
1.962 + RDebug::Print(_L("Name Length %d "),aFullPresetArray[j].iPresetName.Length());
1.963 + RDebug::RawPrint(aFullPresetArray[j].iPresetName);
1.964 + }
1.965 +
1.966 + }
1.967 +
1.968 +
1.969 +// ========================== OTHER EXPORTED FUNCTIONS =========================
1.970 +
1.971 +
1.972 +
1.973 +// End of File