javauis/amms_qt/mmacontrol/src/cammsreverbcontrol.cpp
branchRCL_3
changeset 18 9ac0a0a7da70
parent 17 0fd27995241b
child 19 71c436fe3ce0
--- a/javauis/amms_qt/mmacontrol/src/cammsreverbcontrol.cpp	Tue May 11 16:07:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,390 +0,0 @@
-/*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Manipulates the settings of an audio effect called reverb.
-*
-*/
-
-
-// INCLUDE FILES
-#include "cammsreverbcontrol.h"
-#include <RoomLevelBase.h>
-#include <logger.h>
-
-#ifdef _DEBUG
-// CONSTANTS
-const TInt KAMMSMaxReverbLevel = 0;
-const TInt KAMMSMinReverbTime = 0;
-#endif // _DEBUG
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-CAMMSReverbControl* CAMMSReverbControl::NewLC(CMMAPlayer* aPlayer)
-{
-    CAMMSReverbControl* self = new(ELeave) CAMMSReverbControl(aPlayer);
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-
-    return self;
-}
-
-// Destructor
-CAMMSReverbControl::~CAMMSReverbControl()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::~CAMMSReverbControl");
-
-    // Perform DeallocateControl, if the state change has not yet performed it.
-    DeallocateControl();
-    delete iReverbUtility;
-    delete iPresetNames;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::SetReverbLevelL
-// Sets the gain level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSReverbControl::SetReverbLevelL(TInt aLevel)
-{
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetReverbLevelL: %d", aLevel);
-
-    // Check in debug build that aLevel is within valid range.
-    __ASSERT_DEBUG(aLevel <= KAMMSMaxReverbLevel, User::Invariant());
-
-    CEnvironmentalReverb* reverbEffect = (CEnvironmentalReverb*)iAudioEffect;
-
-    TInt roomLevel = reverbEffect->RoomLevel();
-    TInt tempChange = aLevel - reverbEffect->ReflectionsLevel() - roomLevel;
-
-    // Sets the reverb reflections level in mB
-    reverbEffect->SetReflectionsLevelL(aLevel - roomLevel);
-
-
-    // Calculate native reverb level.
-    TInt reverbLevel = reverbEffect->ReverbLevel() + tempChange;
-
-    // Ensure that the level is within the limits.
-
-    TInt32 minLevel = 0;
-    TInt32 maxLevel = 0;
-    reverbEffect->ReverbLevelRange(minLevel, maxLevel);
-
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetReverbLevelL: orig %d",
-              reverbLevel);
-
-    reverbLevel = Min(reverbLevel, maxLevel);
-    reverbLevel = Max(reverbLevel, minLevel);
-
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetReverbLevelL: set %d",
-              reverbLevel);
-
-    // Sets the reverb level in mB
-    reverbEffect->SetReverbLevelL(reverbLevel);
-
-    // Apply can be called for Reverb, as it does not internally include EnableL
-    // unlike in case of Equalizer or StereoWidening
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetReverbLevelL calling ApplyL");
-    reverbEffect->ApplyL();
-
-    // Return the value that was used in setting the reverb
-    return aLevel;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::SetReverbTimeL
-// Sets the reverberation time of the reverb.
-// -----------------------------------------------------------------------------
-//
-void CAMMSReverbControl::SetReverbTimeL(TInt aTime)
-{
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetReverbTimeL: %d", aTime);
-
-    // Check in debug build that aTime is within valid range.
-    __ASSERT_DEBUG(aTime >= KAMMSMinReverbTime, User::Invariant());
-
-    // Sets the decay time in milliseconds
-    ((CEnvironmentalReverb*)iAudioEffect)->SetDecayTimeL(aTime);
-
-    // Apply can be called for Reverb, as it does not internally include EnableL
-    // unlike in case of Equalizer or StereoWidening
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetReverbTimeL calling ApplyL");
-    iAudioEffect->ApplyL();
-
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::ReverbLevel
-// Gets the gain level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSReverbControl::ReverbLevel()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::ReverbLevel called");
-    // Return here (reflections level + room level)
-    return (((CEnvironmentalReverb*)iAudioEffect)->ReflectionsLevel() +
-            ((CEnvironmentalReverb*)iAudioEffect)->RoomLevel());
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::ReverbTime
-// Gets the reverberation time.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSReverbControl::ReverbTime()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::ReverbTime called");
-
-    return (((CEnvironmentalReverb*)iAudioEffect)->DecayTime());
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::MinReverbLevel
-// Gets the minimum level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSReverbControl::MinReverbLevel()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::MinReverbLevel called");
-
-    TInt32 minLevel;
-    TInt32 maxLevel;
-    ((CEnvironmentalReverb*)iAudioEffect)->ReverbLevelRange(
-        minLevel, maxLevel);
-
-    return minLevel;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::MaxReverbLevel
-// Gets the maximum level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSReverbControl::MaxReverbLevel()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::MaxReverbLevel called");
-
-    TInt32 minLevel;
-    TInt32 maxLevel;
-    ((CEnvironmentalReverb*)iAudioEffect)->ReverbLevelRange(
-        minLevel, maxLevel);
-
-    return maxLevel;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::CurrentPresetIndex
-// Gets current preset index.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSReverbControl::CurrentPresetIndex()
-{
-    return iCurrentPreset;
-}
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::SetPresetL
-// Sets the effect according to the given preset.
-// -----------------------------------------------------------------------------
-//
-void CAMMSReverbControl::SetPresetL(const TDesC& aPreset)
-{
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetPresetL \"%S\"", aPreset.Ptr());
-
-    const CDesCArray& presetNames = PresetNamesL();
-
-    TInt presetPosition = 0;
-    TInt findPreset = presetNames.Find(aPreset, presetPosition);
-    if (findPreset == 0)  // Find returns zero, if a matching element is found.
-    {
-        // This supposes that the indexing of the presets starts at zero.
-        iReverbUtility->GetPresetL(presetPosition);
-
-        // Set the base class audio effect as the new CEnvironmentalReverb
-        // that is set with the previous GetPresetL method.
-        iAudioEffect = &(iReverbUtility->EnvironmentalReverb());
-        iCurrentPreset = presetPosition;
-
-        LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetPresetL \"%S\" GetPresetL OK",
-                  aPreset.Ptr());
-    }
-    else
-    {
-        User::Leave(KErrArgument);
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::PresetNamesL
-// Gets the available preset names.
-// -----------------------------------------------------------------------------
-//
-const CDesCArray& CAMMSReverbControl::PresetNamesL()
-{
-    // Returns an array of all preset names (pre-defined and user-defined).
-    // The pre-defined presets are in the beginning of the list.
-    TArray< TEfEnvironmentalReverbUtilityPreset > presetNames =
-        iReverbUtility->Presets();
-
-    // Before appending the preset names, reset the member array
-    iPresetNames->Reset();
-    for (TInt i = 0; i < presetNames.Count(); i++)
-    {
-        iPresetNames->AppendL(presetNames[ i ].iPresetName);
-    }
-
-    return *iPresetNames;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::PresetL
-// Gets the current preset.
-// -----------------------------------------------------------------------------
-//
-const TDesC& CAMMSReverbControl::PresetL()
-{
-    //if no preset is set, return null
-    if (iCurrentPreset < 0)
-    {
-        return KNullDesC;
-    }
-    else
-    {
-        // Retrieves a Preset with the given index from the Central Repository
-        return iReverbUtility->GetPresetL(iCurrentPreset);
-    }
-}
-
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::SetEnabledL
-// Enables/disables the effect.
-// -----------------------------------------------------------------------------
-//
-void CAMMSReverbControl::SetEnabledL(TBool aEnable)
-{
-    if (aEnable)
-    {
-        // Enable the effect
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetEnabledL(true), calling EnableL");
-        iAudioEffect->EnableL();
-    }
-    else
-    {
-        // Disable the effect
-        // Instead of using CAudioEffectBase: virtual void DisableL(),
-        // use the utility class DisableEnvironmentalReverbL,
-        // which calls DisableL for the correct preset
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::SetEnabledL(false), calling DisableEnvironmentalReverbL");
-        iReverbUtility->DisableEnvironmentalReverbL();
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::PrepareControlL
-// Function which is called after the correct state is set in Player.
-// -----------------------------------------------------------------------------
-//
-void CAMMSReverbControl::PrepareControlL()
-{
-    // Perform the action only for the first time, skip if called afterwards
-    if (!iReverbUtility)
-    {
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::PrepareControlL");
-
-        CCustomCommandUtility* customCommandUtility =
-            CreateCustomCommandUtilityL();
-
-        // Effect API takes the ownership of customCommandUtility.
-        iReverbUtility = CEnvironmentalReverbUtility::NewL(
-                             customCommandUtility);
-
-        SetPresetL(KAMMSDefaultReverbPreset);
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::DeallocateControl
-// Function which is called after the correct state is set in Player.
-// -----------------------------------------------------------------------------
-//
-void CAMMSReverbControl::DeallocateControl()
-{
-    if (iReverbUtility)
-    {
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::DeallocateControlL");
-
-        // Delete the Effect API class.
-        TRAPD(err, iReverbUtility->DisableEnvironmentalReverbL());
-        if (err != KErrNone)
-        {
-            // The only even theoritically possible error code here would be
-            // KErrAccessDenied which is a result from Effect API calling ApplyL
-            // method without having update rights, but since the Utility
-            // class is already created, that situation can be discarded here.
-        }
-
-        delete iReverbUtility;
-        iReverbUtility = NULL;
-
-        // Set current preset to a negative value to state it has not been set
-        iCurrentPreset = -1;
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::GetEnvironmentalReverbUtilityL
-// Returns the environmental reverb utility.
-// -----------------------------------------------------------------------------
-void CAMMSReverbControl::GetEnvironmentalReverbUtilityL(
-    CEnvironmentalReverbUtility** aEnvironmentalReverbUtility)
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::GetEnvironmentalReverbUtilityL");
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSReverbControl::GetEnvironmentalReverbUtilityL CurrentPreset = %d",CurrentPresetIndex());
-    *aEnvironmentalReverbUtility = iReverbUtility;
-}
-
-const TDesC& CAMMSReverbControl::ClassName() const
-{
-    return KAMMSReverbControl;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-void CAMMSReverbControl::ConstructL()
-{
-    // Create array for preset names
-    iPresetNames = new(ELeave) CDesCArrayFlat(1);
-
-    // Set current preset to a negative value as it is not set yet
-    iCurrentPreset = -1;
-
-    CAMMSEffectControl::ConstructL();
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSReverbControl::CAMMSReverbControl
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-CAMMSReverbControl::CAMMSReverbControl(CMMAPlayer* aPlayer)
-        : CAMMSBaseReverbControl(aPlayer)
-{
-}
-
-//  End of File