diff -r 095bea5f582e -r 0ac9a5310753 mmserv/audioeffectsui/equalizer/inc/EqualizerFreqBand.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmserv/audioeffectsui/equalizer/inc/EqualizerFreqBand.h Wed Sep 01 12:23:00 2010 +0100 @@ -0,0 +1,216 @@ +/* +* Copyright (c) 2005 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: Declares classes related to Equalizer Settings +* +*/ + + + + +#ifndef EQUALIZERFREQBAND_H +#define EQUALIZERFREQBAND_H + +// INCLUDES +#include +#include "EqualizerPrivateConstants.h" + +// FORWARD DECLARATIONS +class CAudioEqualizerUtility; +class CAudioEqualizer; + +// CLASS DECLARATIONS + +NONSHARABLE_CLASS(CEqualizerFreqBand) : public CCoeControl + { + public: // Constructors and destructor + /** + * This function is called to create an object of + * type CEqualizerFreqBand - Two phase Construction + * @since 3.0 + * @param aaEqEditingDialog a reference to CEqualizerEditingDialog + * @param aAudEqUtility a reference to CAudioEqualizerUtility + * @param aPresetIndex the index of the Preset being edited + * @param aIsActivePreset whether the preset is active or not? + * @param aBandIndex the index of the Frequncy band + * @param aContainerRect the CEqualizerFreqBandContainer rectangle + */ + static CEqualizerFreqBand* NewL(CEqualizerEditingDialog* aEqEditingDialog, + CAudioEqualizerUtility*& aAudEqUtility, + const TInt aPresetIndex, const TBool aIsActivePreset, const TInt aBandIndex, + TRect& aContainerRect); + /** + * This function is called to create an object of + * type CEqualizerFreqBand - Two phase Construction + * @since 3.0 + * @param aaEqEditingDialog a reference to CEqualizerEditingDialog + * @param aAudEqUtility a reference to CAudioEqualizerUtility + * @param aPresetIndex the index of the Preset being edited + * @param aIsActivePreset whether the preset is active or not? + * @param aBandIndex the index of the Frequncy band + * @param aContainerRect the CEqualizerFreqBandContainer rectangle + */ + static CEqualizerFreqBand* NewLC(CEqualizerEditingDialog* aEqEditingDialog, + CAudioEqualizerUtility*& aAudEqUtility, + const TInt aPresetIndex, const TBool aIsActivePreset, const TInt aBandIndex, + TRect& aContainerRect); + /** + * Destructor + * @since 3.0 + */ + virtual ~CEqualizerFreqBand(); + + public: // Functions from base classes + /** + * From CCoeControl Called when user presses a key + */ + TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, + TEventCode aType); + + public: + + /** + * Function to return the Rect of the controls from the + * layout [read from the CDL file]. + * TRect aRect : parent controls rect + * TInt aVariety : equalizer variety based on the number + * of frequnecy bands + * TInt aComponentNumber : Controls which are enumerated for + * which the rectangle is required from the layout + */ + static TRect ComponentRect(const TRect& aRect, TInt aVariety, + TInt aComponentNumber); + + private://Constructors + /** + * This function is called to create an object of + * type CEqualizerFreqBand - First phase Constructor + * @since 3.0 + * @param aaEqEditingDialog a reference to CEqualizerEditingDialog + * @param aAudEqUtility a reference to CAudioEqualizerUtility + * @param aPresetIndex the index of the Preset being edited + * @param aIsActivePreset whether the preset is active or not? + * @param aBandIndex the index of the Frequncy band + * @param aContainerRect the CEqualizerFreqBandContainer rectangle + */ + CEqualizerFreqBand(CEqualizerEditingDialog* aEqEditingDialog,CAudioEqualizerUtility*& aAudEqUtility, + const TInt aPresetIndex, const TBool aIsActivePreset, + const TInt aBandIndex, + TRect& aContainerRect); + + /* + * Second Phase Constructor + */ + void ConstructL(); + + private: // New functions + /** + *This function is called to load the bitmaps from the icons file + */ + void LoadBitmapsL(); + + /** + * This member is called by the Equalizer UI to update the new band + * level in the engine + * a new preset. + * @ since Series 60 3.0 + * lastIncFlag : Flag which indicates that the slider has reached the + * the limits + */ + void UpdateBandLevelInEngineL(TBool lastIncFlag); + public: // New functions + /** + * This function is used to set new values for CAudioEqualizerUtility* + * @since 3.0 + * @param aAudEqUtility New pointer to CAudioEqualizerUtility + */ + void SetAudioEqualizerL(CAudioEqualizerUtility* aAudEqUtility); + +#ifdef RD_SCALABLE_UI_V2 + /** + * This function is used by the frequency band container to send + * pointer events to individual bands + * @since 3.2 + * @param aPointerEvent pointer event + */ + void HandlePointerEventL(const TPointerEvent& aPointerEvent); +#endif //RD_SCALABLE_UI_V2 + + private: // Functions from base classes + /** + * From CCoeControl Called to draw a control + */ + void Draw(const TRect& aRect) const; + /** + * From CCoeControl Called when the control's size is changed + */ + void SizeChanged(); + /** + * From CCoeControl Called when a control's focus is changed + */ + void FocusChanged(TDrawNow aDrawNow); + + /** + * From CCoeControl + * This function is called when there is a skin change or + * change in the layout + */ + void HandleResourceChange(TInt aType); + + private: //Data + //Pointers to hold the equalizer backgroung bitmap and mask + CFbsBitmap * iBgBitmap; + CFbsBitmap * iBgBitmapMask; + + //Pointers to hold the equalizer scale bitmap and mask + CFbsBitmap * iSliderBitmap; + CFbsBitmap * iSliderBitmapMask; + + // Stores the zero position of mover + TInt iZeroPos; + // Minimum frequency band decibel level + TInt32 iMinBandLevel; + // Maximum frequency band decibel level + TInt32 iMaxBandLevel; + // Used to store a pointer to CEqualizerEditingDialog + CEqualizerEditingDialog* iEqEditingDialog; + // Used to store a pointer to CAudioEqualizerUtility + CAudioEqualizerUtility* iAudEqUtility; + // Used to store a pointer to CAudioEqualizer + CAudioEqualizer* iAudioEqualizer; + // The index of the preset in the array returned by + // CAudioEqualizerUtility::Presets() + const TInt iPresetIndex; + // Used to store the name of the preset + TPresetName iPresetName; + // Whether the preset displayed is an active preset? + const TBool iIsActivePreset; + // Index of the Frequency Band as passed to Engine + const TInt iBandIndex; + // Position of the mover + TInt iMoverPos; + //Stores the container's rect value + TRect& iContainerRect; + //Stores the freq band Scale's rectangle + TRect iScaleRect; + //Stores the slider's rectangle + TRect iSliderRect; + //Stores the background rectangle + TRect iBackgroundRect; + //Stores the step count of the slider + TInt32 iStepCount; + }; + + +#endif //EQUALIZERFREQBAND_H +// End of File