williamr@2: /* williamr@2: * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: This is the definition of the audio StereoWidening utility class. williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: williamr@2: #ifndef STEREOWIDENINGUTILITY_H williamr@2: #define STEREOWIDENINGUTILITY_H williamr@2: williamr@2: // INCLUDES williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: // FORWARD DECLARATIONS williamr@2: class TEfStereoWideningUtilityPreset; williamr@2: class CStereoWidening; williamr@2: class CMdaAudioConvertUtility; williamr@2: class CMdaAudioPlayerUtility; williamr@2: class CMdaAudioRecorderUtility; williamr@2: class CMdaAudioInputStream; williamr@2: class CMdaAudioOutputStream; williamr@2: class CMdaAudioToneUtility; williamr@2: class CCustomCommandUtility; williamr@2: class CCustomInterfaceUtility; williamr@2: class CMMFDevSound; williamr@2: class CRepository; williamr@2: class CMidiClientUtility; williamr@2: class CDrmPlayerUtility; williamr@2: class CVideoPlayerUtility; williamr@2: williamr@2: // CLASS DECLARATION williamr@2: williamr@2: /** williamr@2: * This is the StereoWidening Utility class for managing audio StereoWidening presets. williamr@2: * williamr@2: * @lib StereoWideningUtility.lib williamr@2: * @since 3.0 williamr@2: */ williamr@2: williamr@2: class CStereoWideningUtility : public CBase williamr@2: { williamr@2: public: // Constructors and destructor williamr@2: williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to a Devsound Instance williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMMFDevSound& aDevSound); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to a convert utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMdaAudioConvertUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to a audio input stream utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMdaAudioInputStream& aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to a audio output stream utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMdaAudioOutputStream& aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to a audio player utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMdaAudioPlayerUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to a audio recorder utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMdaAudioRecorderUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to a audio tone utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMdaAudioToneUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to custom command utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CCustomCommandUtility* aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to custom interface utility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(MCustomInterface& aCustomInterface); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param aUtility A reference to CMidiClientUtility williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL(CMidiClientUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.0 williamr@2: * @param CDrmPlayerUtility A reference to a CDrmPlayerUtility object williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL( CDrmPlayerUtility& aUtility ); williamr@2: williamr@2: /** williamr@2: * Factory function for creating the audio StereoWidening utility object. williamr@2: * @since 3.2 williamr@2: * @param CVideoPlayerUtility A reference to a CVideoPlayerUtility object williamr@2: * @return pointer to CStereoWideningUtility object williamr@2: */ williamr@2: IMPORT_C static CStereoWideningUtility* NewL( CVideoPlayerUtility& aUtility ); williamr@2: williamr@2: /** williamr@2: * Destructor. williamr@2: */ williamr@2: virtual ~CStereoWideningUtility(); williamr@2: williamr@2: /** williamr@2: * Apply the Preset Index value williamr@2: * @since 3.0 williamr@2: * @param aPreset Preset Value williamr@2: */ williamr@2: IMPORT_C void ApplyPresetL(TInt aPreset); williamr@2: williamr@2: /** williamr@2: * Disable the StereoWidening williamr@2: * @since 3.0 williamr@2: */ williamr@2: IMPORT_C void DisableStereoWideningL(); williamr@2: williamr@2: /** williamr@2: * Create a Preset with the given Name and StereoWidening Settings williamr@2: * @since 3.0 williamr@2: * @param aName Name of the Preset williamr@2: * @param aStereoWidening StereoWidening Settings for the Preset williamr@2: */ williamr@2: IMPORT_C void CreatePresetL(TDesC& aName, CStereoWidening& aStereoWideningUI); williamr@2: williamr@2: /** williamr@2: * Delete a Preset with the given index in the Central Repository williamr@2: * @since 3.0 williamr@2: * @param aPresetIndex Index of the Preset in the Array williamr@2: */ williamr@2: IMPORT_C void DeletePresetL(TInt aPresetIndex); williamr@2: williamr@2: /** williamr@2: * Retrieves a Preset with the given index from the Central Repository williamr@2: * @since 3.0 williamr@2: * @param aPresetIndex Index of the Preset in the Array williamr@2: */ williamr@2: IMPORT_C const TDesC& GetPresetL(TInt aPresetIndex); williamr@2: williamr@2: /** williamr@2: * Get the reference to the StereoWidening Object williamr@2: * @since 3.0 williamr@2: * @return Reference to the StereoWidening Object. williamr@2: */ williamr@2: IMPORT_C CStereoWidening& StereoWidening(); williamr@2: williamr@2: /** williamr@2: * Modify a Preset with the given Name and StereoWidening Settings williamr@2: * @since 3.0 williamr@2: * @param aPresetIndex Array Index of the Preset williamr@2: * @param aName Name of the Preset williamr@2: * @param aStereoWidening StereoWidening Settings for the Preset williamr@2: */ williamr@2: IMPORT_C void ModifyPresetL(TInt aPresetIndex, TDesC& aName, CStereoWidening& aStereoWideningUI); williamr@2: williamr@2: /** williamr@2: * Get the number of Pre Defined Presets williamr@2: * @since 3.0 williamr@2: * @return Number of Pre Defined Presets williamr@2: */ williamr@2: IMPORT_C TUint32 NumberOfPreDefinedPresets() const; williamr@2: williamr@2: /** williamr@2: * Get all the Presets defined in the Central Repository williamr@2: * @since 3.0 williamr@2: * @return Array of all Presets. williamr@2: */ williamr@2: IMPORT_C TArray Presets(); williamr@2: williamr@2: /** williamr@2: * Reset a System Defined Preset with the given index in the Array returned from Presets() williamr@2: * @since 3.0 williamr@2: * @param aPresetIndex Index of the Preset in the Array williamr@2: */ williamr@2: IMPORT_C void ResetPresetL(TInt aPresetIndex); williamr@2: williamr@2: private: williamr@2: williamr@2: /** williamr@2: * C++ default constructor. williamr@2: */ williamr@2: CStereoWideningUtility(); williamr@2: williamr@2: /** williamr@2: * By default Symbian 2nd phase constructor is private. williamr@2: */ williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for DevSound Instance williamr@2: * @since 3.0 williamr@2: * @param aDevSound DevSound Referece williamr@2: */ williamr@2: void ConstructL(CMMFDevSound& aDevSound); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for Audio Convert Utility williamr@2: * @since 3.0 williamr@2: * @param aUtility CMdaAudioConvertUtility Referece williamr@2: */ williamr@2: void ConstructL(CMdaAudioConvertUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CMdaAudioInputStream williamr@2: * @since 3.0 williamr@2: * @param aUtility CMdaAudioInputStream Referece williamr@2: */ williamr@2: void ConstructL(CMdaAudioInputStream& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CMdaAudioOutputStream williamr@2: * @since 3.0 williamr@2: * @param aUtilityCMdaAudioOutputStream Referece williamr@2: */ williamr@2: void ConstructL(CMdaAudioOutputStream& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CMdaAudioPlayerUtility williamr@2: * @since 3.0 williamr@2: * @param aUtility CMdaAudioPlayerUtility Referece williamr@2: */ williamr@2: void ConstructL(CMdaAudioPlayerUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CMdaAudioRecordUtility williamr@2: * @since 3.0 williamr@2: * @param aUtility CMdaAudioRecordUtility Referece williamr@2: */ williamr@2: void ConstructL(CMdaAudioRecorderUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CMdaAudioToneUtility williamr@2: * @since 3.0 williamr@2: * @param aUtility CMdaAudioToneUtility Referece williamr@2: */ williamr@2: void ConstructL(CMdaAudioToneUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for MCustomCommand williamr@2: * @since 3.0 williamr@2: * @param aUtility MCustomCommand Referece williamr@2: */ williamr@2: void ConstructL(CCustomCommandUtility* aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for MCustomInterface williamr@2: * @since 3.0 williamr@2: * @param aUtility MCustomInterface Referece williamr@2: */ williamr@2: void ConstructL(MCustomInterface& aCustomInterface); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CMidiClientUtility williamr@2: * @since 3.0 williamr@2: * @param aUtility CMidiClientUtility Referece williamr@2: */ williamr@2: void ConstructL(CMidiClientUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CDrmPlayerUtility williamr@2: * @since 3.0 williamr@2: * @param aUtility CDrmPlayerUtility Referece williamr@2: */ williamr@2: void ConstructL(CDrmPlayerUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Second Phase Costructor for CVideoPlayerUtility williamr@2: * @since 3.2 williamr@2: * @param aUtility CVideoPlayerUtility Referece williamr@2: */ williamr@2: void ConstructL(CVideoPlayerUtility& aUtility); williamr@2: williamr@2: /** williamr@2: * Function for Updating the Array from the Central Repository williamr@2: * @since 3.0 williamr@2: * @param aUtility MCustomInterface Referece williamr@2: */ williamr@2: void UpdateFullPresetArrayFromCenRep(RArray &aFullPresetArray); williamr@2: williamr@2: /** williamr@2: * Function of Updating the Preset Array for the User williamr@2: * @since 3.0 williamr@2: * @param aUtility MCustomInterface Referece williamr@2: */ williamr@2: void UpdatePresetArray(RArray& aPresetArray,const RArray &aFullPresetArray); williamr@2: williamr@2: williamr@2: private: // Data williamr@2: williamr@2: // Array for Storing the Current State of the Repository williamr@2: // which has been compacted after the transaction williamr@2: // with the Central Repository williamr@2: RArray iPresetArray; williamr@2: williamr@2: // Array Which contains the full information from the williamr@2: // Central Repository except the Description Values williamr@2: RArray iFullPresetArray; williamr@2: williamr@2: // Pointer to the StereoWidening Object williamr@2: CStereoWidening* iStereoWidening; williamr@2: williamr@2: // Pointer to the StereoWidening Object williamr@2: // which is returned to the UI for Manipulation williamr@2: CStereoWidening* iTransStereoWidening; williamr@2: williamr@2: // Pointer to the Preset Repository williamr@2: CRepository* iPresetRepository; williamr@2: }; williamr@2: williamr@2: #endif // CStereoWideningUTILITY_H williamr@2: williamr@2: // End of File