javauis/amms_qt/mmacontrol/src.emc/cammsemcreverbcontrol.cpp
branchRCL_3
changeset 18 9ac0a0a7da70
parent 17 0fd27995241b
child 19 71c436fe3ce0
--- a/javauis/amms_qt/mmacontrol/src.emc/cammsemcreverbcontrol.cpp	Tue May 11 16:07:20 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,464 +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 "cammsemcreverbcontrol.h"
-#include <RoomLevelBase.h>
-#include <logger.h>
-#ifdef _DEBUG
-// CONSTANTS
-const TInt KAMMSMaxReverbLevel = 0;
-const TInt KAMMSMinReverbTime = 0;
-#endif // _DEBUG
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-CAMMSEMCReverbControl* CAMMSEMCReverbControl::NewLC(CMMAPlayer* aPlayer)
-{
-    CAMMSEMCReverbControl* self = new(ELeave) CAMMSEMCReverbControl(aPlayer);
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-
-    return self;
-}
-
-// Destructor
-CAMMSEMCReverbControl::~CAMMSEMCReverbControl()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::~CAMMSEMCReverbControl");
-
-    // Perform DeallocateControl, if the state change has not yet performed it.
-    DeallocateControl();
-    if (iAMMSEMCReverbEnvironmentalPresetUtility)
-        delete iAMMSEMCReverbEnvironmentalPresetUtility;
-    delete iPresetNames;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::SetReverbLevelL
-// Sets the gain level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSEMCReverbControl::SetReverbLevelL(TInt aLevel)
-{
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetReverbLevelL: %d", aLevel);
-    __ASSERT_DEBUG(aLevel <= KAMMSMaxReverbLevel, User::Invariant());
-    TInt roomLevel = 0;
-    iMReverbControl->RoomLevel(roomLevel);
-    TInt reflectionLevel =0;
-    iMReverbControl->ReflectionsLevel(reflectionLevel);
-    TInt tempChange = aLevel - reflectionLevel - roomLevel;
-
-    // Sets the reverb reflections level in mB
-    iMReverbControl->SetReflectionsLevel(aLevel - roomLevel);
-
-    // Calculate native reverb level.
-    TInt reverbLevel;
-    // iMReverbControl->ReverbLevel(reverbLevel);
-    reverbLevel = iEnvReverbLevel + tempChange;
-
-    // Ensure that the level is within the limits.
-
-    TInt minLevel = 0;
-    TInt maxLevel = 0;
-    iMReverbControl->ReverbLevelRange(minLevel, maxLevel);
-
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetReverbLevelL: orig %d",
-              reverbLevel);
-
-    reverbLevel = Min(reverbLevel, maxLevel);
-    reverbLevel = Max(reverbLevel, minLevel);
-
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetReverbLevelL: set %d",
-              reverbLevel);
-    // Sets the reverb level in mB
-    iMReverbControl->SetReverbLevel(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::CAMMSEMCReverbControl::SetReverbLevelL calling ApplyL");
-    iMReverbControl->Apply();
-
-    // Return the value that was used in setting the reverb
-    return aLevel;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::SetReverbTimeL
-// Sets the reverberation time of the reverb.
-// -----------------------------------------------------------------------------
-//
-void CAMMSEMCReverbControl::SetReverbTimeL(TInt aTime)
-{
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetReverbTimeL: %d", aTime);
-    // Check in debug build that aTime is within valid range.
-    __ASSERT_DEBUG(aTime >= KAMMSMinReverbTime, User::Invariant());
-    iMReverbControl->SetDecayTime(aTime);
-    iMReverbControl->Apply();
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::ReverbLevel
-// Gets the gain level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSEMCReverbControl::ReverbLevel()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::ReverbLevel called");
-    TInt iReverbLevel;
-    iMReverbControl->ReverbLevel(iReverbLevel);
-    return iReverbLevel;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::ReverbTime
-// Gets the reverberation time.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSEMCReverbControl::ReverbTime()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::ReverbTime called");
-
-    TUint iReverbTime;
-    iMReverbControl->DecayTime(iReverbTime);
-    return iReverbTime;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::MinReverbLevel
-// Gets the minimum level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSEMCReverbControl::MinReverbLevel()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::MinReverbLevel called");
-
-    TInt minLevel;
-    TInt maxLevel;
-    iMReverbControl->ReverbLevelRange(
-        minLevel, maxLevel);
-
-    return minLevel;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::MaxReverbLevel
-// Gets the maximum level of the reverberation.
-// -----------------------------------------------------------------------------
-//
-TInt CAMMSEMCReverbControl::MaxReverbLevel()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::MaxReverbLevel called");
-    TInt minLevel;
-    TInt maxLevel;
-    iMReverbControl->ReverbLevelRange(minLevel, maxLevel);
-    return maxLevel;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::SetPresetL
-// Sets the effect according to the given preset.
-// -----------------------------------------------------------------------------
-//
-void CAMMSEMCReverbControl::SetPresetL(const TDesC& aPreset)
-{
-    LOG1( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetPresetL \"%S\"", aPreset.Ptr());
-    CEnvironmentalReverb *iEnvironmentalReverb = NULL;
-    User::LeaveIfError(iAMMSEMCReverbEnvironmentalPresetUtility->PrepareEmptyReverbUtilitiesL());
-    iAMMSEMCReverbEnvironmentalPresetUtility->GetPresetNamesL(*iPresetNames);
-    TInt presetPosition = 0;
-    TInt findPreset = iPresetNames->Find(aPreset, presetPosition);
-    if (findPreset == 0)  // Find returns zero, if a matching element is found.
-    {
-        iEnvironmentalReverb = iAMMSEMCReverbEnvironmentalPresetUtility->GetEnvironmentalReverbAtPresetIndexL(presetPosition);
-        iCurrentPreset = presetPosition;
-    }
-    else
-    {
-        iAMMSEMCReverbEnvironmentalPresetUtility->DeleteEmptyReverbUtilities();
-        User::Leave(KErrArgument);
-    }
-
-    if (!iEnvironmentalReverb)
-    {
-        iAMMSEMCReverbEnvironmentalPresetUtility->DeleteEmptyReverbUtilities();
-        return;
-    }
-    //Get all preset data here
-
-    TInt iReverbTime = iEnvironmentalReverb-> DecayTime();
-    TInt iReverbLevel = iEnvironmentalReverb->ReflectionsLevel() + iEnvironmentalReverb->RoomLevel();
-    iEnvReverbLevel = iEnvironmentalReverb->ReverbLevel();
-    TInt roomLevel = iEnvironmentalReverb->RoomLevel();
-    TInt reflectionLevel = iEnvironmentalReverb->ReflectionsLevel();
-    TUint decayHFRatio = iEnvironmentalReverb->DecayHFRatio();
-    TUint density = iEnvironmentalReverb->Density();
-    TUint diffusion = iEnvironmentalReverb->Diffusion();
-    TUint reflectionsDelay = iEnvironmentalReverb->ReflectionsDelay();
-    TUint reverbDelay = iEnvironmentalReverb->ReverbDelay();
-    TUint roomHFLevel = iEnvironmentalReverb->RoomHFLevel();
-
-    // Set all preset data to EMC
-    TInt err = iMReverbControl->SetDecayTime(iReverbTime);
-    err = iMReverbControl->SetReverbLevel(iReverbLevel);
-    err = iMReverbControl->SetRoomLevel(roomLevel);
-    err = iMReverbControl->SetReflectionsLevel(reflectionLevel);
-    err = iMReverbControl->SetDecayHFRatio(decayHFRatio);
-    err = iMReverbControl->SetDensity(density);
-    err = iMReverbControl->SetDiffusion(diffusion);
-    err = iMReverbControl->SetReflectionsDelay(reflectionsDelay);
-    err = iMReverbControl->SetReverbDelay(reverbDelay);
-    err = iMReverbControl->SetRoomHFLevel(roomHFLevel);
-    err = iMReverbControl->Apply();
-    ELOG1( EJavaAMMS, "AMMS::CAMMSEMCReverbControl::SetPresetL iMReverbControl setter func. err = %d",err);
-    iAMMSEMCReverbEnvironmentalPresetUtility->DeleteEmptyReverbUtilities();
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::PresetNamesL
-// Gets the available preset names.
-// -----------------------------------------------------------------------------
-//
-const CDesCArray& CAMMSEMCReverbControl::PresetNamesL()
-{
-
-    //CEnvironmentalReverb *iEnvironmentalReverb = NULL;
-    iAMMSEMCReverbEnvironmentalPresetUtility->PrepareEmptyReverbUtilitiesL();
-    iAMMSEMCReverbEnvironmentalPresetUtility->GetPresetNamesL(*iPresetNames);
-    iAMMSEMCReverbEnvironmentalPresetUtility->DeleteEmptyReverbUtilities();
-    return *iPresetNames;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::PresetL
-// Gets the current preset.
-// -----------------------------------------------------------------------------
-//
-const TDesC& CAMMSEMCReverbControl::PresetL()
-{
-    //if no preset is set, return null
-    if (iCurrentPreset < 0)
-    {
-        return KNullDesC;
-    }
-
-    else
-    {
-        // Retrieves a Preset with the given index from the utility class
-        iAMMSEMCReverbEnvironmentalPresetUtility->PrepareEmptyReverbUtilitiesL();
-        iAMMSEMCReverbEnvironmentalPresetUtility->GetPresetAtIndexL(iPresetName , iCurrentPreset);
-        iAMMSEMCReverbEnvironmentalPresetUtility->DeleteEmptyReverbUtilities();
-        return iPresetName;
-    }
-
-
-}
-
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::SetEnabledL
-// Enables/disables the effect.
-// -----------------------------------------------------------------------------
-//
-void CAMMSEMCReverbControl::SetEnabledL(TBool aEnable)
-{
-    if (aEnable)
-    {
-        // Enable the effect
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetEnabledL(true), calling Enable");
-        iMReverbControl->Enable();
-        iMReverbControl->Apply();
-    }
-    else
-    {
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetEnabledL(false), calling Disable");
-        iMReverbControl->Disable();
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::PrepareControlL
-// Function which is called after the correct state is set in Player.
-// -----------------------------------------------------------------------------
-//
-void CAMMSEMCReverbControl::PrepareControlL()
-{
-    // Perform the action only for the first time, skip if called afterwards
-    if (!iMReverbControl)
-    {
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::PrepareControlL");
-        //Create Reverb Effect Control
-        iStreamControl = (static_cast<CMMAEMCAudioPlayer*>(iMMAPlayer))->StreamControl();
-        iFactory = (static_cast<CMMAEMCAudioPlayer*>(iMMAPlayer))->MMFactory();
-
-        MEffectControl* temp(NULL);
-        User::LeaveIfError(iFactory->CreateEffectControl(KReverbEffectControl, temp));
-        iMReverbControl  = static_cast<MReverbControl*>(temp);
-        User::LeaveIfError(iStreamControl->AddEffect(*iMReverbControl));
-        iMReverbControl->Enable();
-        SetPresetL(KAMMSEMCDefaultReverbPreset);
-
-    }
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::DeallocateControl
-// Function which is called after the correct state is set in Player.
-// -----------------------------------------------------------------------------
-//
-void CAMMSEMCReverbControl::DeallocateControl()
-{
-
-    if (iMReverbControl)
-    {
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::DeallocateControl");
-
-        // Reverb for Audio can be disabled or enabled
-        TRAPD(err,iMReverbControl->Disable());
-        if (err != KErrNone)
-        {
-            //Some EMC Error
-            ELOG1( EJavaAMMS, "AMMS::CAMMSEMCReverbControl::DeallocateControl err = %d",err);
-        }
-        //return the control to factory
-        MEffectControl* temp = iMReverbControl;
-        iStreamControl->RemoveEffect(*temp);
-        // Delete the Effect
-        MEffectControl* tempCtrl = iMReverbControl;
-        iFactory->DeleteEffectControl(tempCtrl);
-        iMReverbControl = NULL;
-
-        iCurrentPreset = -1;
-    }
-}
-
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::GetReverbControl
-// Returns the  reverb control. It will be used by CAMMSEMCReverbSourceControl
-// -----------------------------------------------------------------------------
-MReverbControl * CAMMSEMCReverbControl::GetReverbControlL()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::GetReverbControl");
-
-    if (! iMReverbControl)
-    {
-        PrepareControlL(); // creates the control
-    }
-
-    return iMReverbControl;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::CurrentPresetIndex
-// Returns the  Current Preset Index. It will be used by CAMMSEMCReverbSourceControl
-// -----------------------------------------------------------------------------
-TInt CAMMSEMCReverbControl::CurrentPresetIndex()
-{
-    return iCurrentPreset;
-}
-
-// -----------------------------------------------------------------------------
-// Overriding the base class CAMMSEffectControl function here
-//------------------------------------------------------------------------------
-
-void CAMMSEMCReverbControl::SetEnforcedL(TBool aEnforced)
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetEnforcedL");
-    // Indicate the effect is to be enforced or not. ETrue = Enforced.
-    iMReverbControl->Enforce(aEnforced);
-
-    ApplySettingsL();
-
-}
-TBool CAMMSEMCReverbControl::Enforced()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::Enforced");
-    // Returns ETrue if the effect is enforced, EFalse if not enforced.
-    TBool enforced;
-    iMReverbControl->IsEnforced(enforced);
-    return enforced;
-
-}
-void CAMMSEMCReverbControl::SetScopeL(TInt aScope)
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::SetScopeL");
-    __ASSERT_DEBUG(
-        (aScope == CAMMSEffectControlGroup::EScopeLiveOnly),
-        User::Invariant());
-    // Just to suppress warning in release build
-    (void)aScope;
-}
-TInt CAMMSEMCReverbControl::Scope()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::Scope");
-    // For now only the (LIVE_ONLY) scope is supported.
-    return CAMMSEffectControlGroup::EScopeLiveOnly;
-
-}
-void CAMMSEMCReverbControl::ApplySettingsL()
-{
-    LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl::ApplySettingsL");
-    TBool enabled;
-    iMReverbControl->IsEnabled(enabled);
-    if (enabled)
-    {
-        LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEMCReverbControl:ApplySettingsL calling ApplyL");
-        iMReverbControl->Apply();
-    }
-}
-
-const TDesC& CAMMSEMCReverbControl::ClassName() const
-{
-    return KAMMSEMCReverbControl;
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-void CAMMSEMCReverbControl::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();
-    iAMMSEMCReverbEnvironmentalPresetUtility = new(ELeave) CAMMSEMCReverbEnvironmentalPresetUtility;
-    iAMMSEMCReverbEnvironmentalPresetUtility->ConstructL();
-
-}
-
-// -----------------------------------------------------------------------------
-// CAMMSEMCReverbControl::CAMMSEMCReverbControl
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-CAMMSEMCReverbControl::CAMMSEMCReverbControl(CMMAPlayer* aPlayer)
-        : CAMMSBaseReverbControl(aPlayer)
-{
-    iMMAPlayer = aPlayer;
-}
-
-//  End of File