diff -r 0fd27995241b -r 9ac0a0a7da70 javauis/amms_qt/ammscontrol/audioeffect/src/cammseffectcontrolgroup.cpp --- a/javauis/amms_qt/ammscontrol/audioeffect/src/cammseffectcontrolgroup.cpp Tue May 11 16:07:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,436 +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: Group for effect controls -* -*/ - - -// INCLUDE FILES -#include -#include "cammseffectcontrolgroup.h" -#include "cammseffectcontrol.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// Destructor -CAMMSEffectControlGroup::~CAMMSEffectControlGroup() -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::~ +"); - - delete iPresetNames; - delete iActiveSchedulerWait; - - if (iEmptyPlayerUtility) - { - iEmptyPlayerUtility->Close(); - delete iEmptyPlayerUtility; - } - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::~ -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::PresetL -// Gets the current preset. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::GetPresetL(TDes& aPreset) -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::GetPresetL +"); - - // Return KNullDesC if no preset is set. - if (iPresetIndex >= 0) - { - aPreset = (*iPresetNames)[ iPresetIndex ]; // CSI: 2 Wrong index means implementation error # - } - else - { - aPreset = KNullDesC; - } - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::GetPresetL -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::PresetNamesL -// Gets the available preset names -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -const CDesCArray& CAMMSEffectControlGroup::PresetNamesL() -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::PresetNamesL"); - - return *iPresetNames; -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::Scope -// Returns the scope in which the effect is present. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -CAMMSEffectControlGroup::TEffectScope CAMMSEffectControlGroup::Scope() -{ - return iScope; -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::Enabled -// Returns true if the effect is enabled and false otherwise. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -TBool CAMMSEffectControlGroup::Enabled() -{ - return iEnabled; -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::EnforcedL -// Returns the current enforced setting of the effect. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -TBool CAMMSEffectControlGroup::Enforced() -{ - return iEnforced; -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::SetEnabledL -// Enables/disables the effect. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::SetEnabledL(TBool aEnabled) -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetEnabledL +"); - - TInt count = ControlCount(); - for (TInt i = 0; i < count; i++) - { - TypeSafeControl(i)->SetEnabledL(aEnabled); - } - - iEnabled = aEnabled; - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetEnabledL -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::SetEnforcedL -// Enforces the effect to be in use. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::SetEnforcedL(TBool aEnforced) -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetEnforcedL +"); - - TInt count = ControlCount(); - for (TInt i = 0; i < count; i++) - { - TypeSafeControl(i)->SetEnforcedL(aEnforced); - } - - iEnforced = aEnforced; - - // remember that enforce was set when the group was not yet initialized - if (!iInitialized) - { - iInitialEnforceSet = ETrue; - } - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetEnforcedL -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::SetPresetL -// Sets the effect according to the given preset. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::SetPresetL(const TDesC& aPreset) -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetPresetL +"); - - // Leave if the given preset does not exist. - TInt presetIndex = -1; - if (!(iPresetNames->Find(aPreset, presetIndex) == 0)) - { - User::Leave(KErrNotFound); - } - - // Set new preset to the controls. - TInt count = ControlCount(); - for (TInt i = 0; i < count; i++) - { - TypeSafeControl(i)->SetPresetL(aPreset); - } - - // Change preset. - iPresetIndex = presetIndex; - - // Announce a preset change. - PresetChangedL(); - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetPresetL -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::SetScopeL -// Sets the scope of the effect. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::SetScopeL(TEffectScope aScope) -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetScopeL +"); - - TInt count = ControlCount(); - for (TInt i = 0; i < count; i++) - { - TypeSafeControl(i)->SetScopeL(aScope); - } - - iScope = aScope; - - // remember that scope was set when the group was not yet initialized - if (!iInitialized) - { - iInitialScopeSet = ETrue; - } - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::SetScopeL -"); -} - - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::MapcInitComplete -// Called when file KAMMSEmptyGroupSoundPath has been opened. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::MapcInitComplete(TInt aError, - const TTimeIntervalMicroSeconds& /*aDuration*/) -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::MapcInitComplete +"); - - __ASSERT_DEBUG(iActiveSchedulerWait->IsStarted(), User::Invariant()); - - iEmptyPlayerUtilityError = aError; - - // Stop waiting in PrepareEmptyGroupUtilityL() function. - iActiveSchedulerWait->AsyncStop(); - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::MapcInitComplete -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::MapcPlayComplete -// Called when KAMMSEmptyGroupSoundPath has been played. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::MapcPlayComplete(TInt /*aError*/) -{ - // No implementation needed. -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::TypeSafeControl -// Gets control. Ownership is not tranferred. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -CAMMSEffectControl* -CAMMSEffectControlGroup::TypeSafeControl(TInt aIndex) const -{ - return static_cast(Control(aIndex)); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::NotifyPlayerAddedL -// Called by when a new player is added -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::NotifyPlayerAddedL( - CMMAPlayer *aPlayer, - CMMAControl* aControl) -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::NotifyPlayerAddedL +"); - - CAMMSControlGroup::NotifyPlayerAddedL(aPlayer, aControl); - - CAMMSEffectControl* control = - static_cast(aControl); - - // set current preset if any - if (iPresetIndex >= 0) - { - control->SetPresetL((*iPresetNames)[ iPresetIndex ]); // CSI: 2 Wrong index means implementation error # - } - - // handle default values if this is the first control added into empty and - // uninitialized group - if (!iInitialized) - { - - InitializeL(); - - // if parameters, whose default values are not known, have not been set, - // ask them from the first control added to the empty group - if (!iInitialEnforceSet) - { - - iEnforced = control->Enforced(); - - } - - if (!iInitialScopeSet) - { - - iScope = (TEffectScope) control->Scope(); - - } - - iInitialized = ETrue; - } - - // set current parameters - - control->SetEnabledL(iEnabled); - - control->SetEnforcedL(iEnforced); - - control->SetScopeL(iScope); - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::NotifyPlayerAddedL -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::PresetChangedL -// Called when the current preset changes -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::PresetChangedL() -{ -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::InitializeL -// Finish initialization (after the 1st player is added) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::InitializeL() -{ -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::PrepareEmptyGroupUtilitiesL -// Creates an utilities that can be used to obtain preset names and preset data. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::PrepareEmptyGroupUtilitiesL() -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::PrepareEmptyGroupUtilitiesL +"); - - if (!iEmptyPlayerUtility) - { - iEmptyPlayerUtility = CMdaAudioPlayerUtility::NewL(*this, - EMdaPriorityMin, EMdaPriorityPreferenceNone); - - iEmptyPlayerUtility->OpenFileL(KAMMSEmptyGroupSoundPath); - - __ASSERT_DEBUG(!iActiveSchedulerWait->IsStarted(), User::Invariant()); - - // Wait until MapcInitComplete() has been called. - iActiveSchedulerWait->Start(); // CSI: 10 iActiveSchedulerWait cannot be started, also checked in debug build # - - ELOG1( EJavaAMMS, - "AMMS::CAMMSEffectControlGroup::PrepareEmptyGroupUtilitiesL, err=%d", - iEmptyPlayerUtilityError); - - // Leave if file opening returned an error. - User::LeaveIfError(iEmptyPlayerUtilityError); - } - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::PrepareEmptyGroupUtilitiesL -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::DeleteEmptyGroupUtilities -// Deletes utilities that are used to obtain preset names and preset data. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::DeleteEmptyGroupUtilities() -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::DeleteEmptyGroupUtilities +"); - - if (iEmptyPlayerUtility) - { - iEmptyPlayerUtility->Close(); - - delete iEmptyPlayerUtility; - iEmptyPlayerUtility = NULL; - } - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::DeleteEmptyGroupUtilities -"); -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::CAMMSEffectControlGroup -// C++ default constructor can NOT contain any code, that -// might leave. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -CAMMSEffectControlGroup::CAMMSEffectControlGroup(const TDesC& aName) : - CAMMSControlGroup(aName) -{ - iScope = CAMMSEffectControlGroup::EScopeLiveOnly; - iEnabled = EFalse; - iEnforced = ETrue; - iPresetIndex = -1; // no preset set -} - -// ----------------------------------------------------------------------------- -// CAMMSEffectControlGroup::ConstructL -// Symbian 2nd phase constructor can leave. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CAMMSEffectControlGroup::BaseConstructL() -{ - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::BaseConstructL +"); - - CAMMSControlGroup::ConstructL(); - - iActiveSchedulerWait = new(ELeave)CActiveSchedulerWait; - iPresetNames = new(ELeave)CDesCArrayFlat(KAMMSPresetGranularity); - - // If the Effect API implementation does not support the effect, - // the function leaves with KErrNotSupported. The leaving can be ignored - // in this case, the result is that the list of supported presets - // remain empty. - TRAPD(err, GetPresetNamesL(*iPresetNames)); - - ELOG1( EJavaAMMS, "AMMS::CAMMSEffectControlGroup::BaseConstructL, err %d", err); - - // In case of an error, delete possible utilities to save memory. - if (err != KErrNone) - { - DeleteEmptyGroupUtilities(); - } - - // Leave if some error occured (other than KErrNotSupported). - if ((err != KErrNone) && (err != KErrNotSupported)) - { - User::Leave(err); - } - - - LOG( EJavaAMMS, EInfo, "AMMS::CAMMSEffectControlGroup::BaseConstructL -"); -} - -// End of File