--- a/camerauis/cameraapp/generic/common/inc/camconfiguration.h Thu Aug 19 09:36:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,370 +0,0 @@
-/*
-* Copyright (c) 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: Implementation for camera dynamic configuration.
-*
-*
-*/
-
-
-#ifndef CAMCONFIGURATION_H
-#define CAMCONFIGURATION_H
-
-// INCLUDES
-
-#include <e32base.h>
-#include "CamSettingsInternal.hrh"
-#include "CamPSI.h"
-#include "camconfigurationtypes.h"
-#include "imagingconfigmanager.h"
-#include "CamSettings.hrh"
-
-// FORWARD DECLARATIONS
-
-class CImagingConfigManager;
-struct TVideoQualitySet;
-struct TImageQualitySet;
-
-// CLASS DECLARATION
-
-/**
-* Class CCamConfiguration
-* Queries supported image and video qualities for ICM and creates the related
-* data and does the mappings needed by cameraapp application. These include
-* quality descriptions and icons.
-*
-* In the initial phase, emulates the product specific configuration code,
-* so only minimal changes are needed in cameraapp UI code.
-*/
-class CCamConfiguration: public CBase
-{
- public: // Constructors and destructors
-
- /**
- * Destructor.
- */
- ~CCamConfiguration();
-
- /**
- * Two-phased constructor.
- * @return pointer to the created CCamConfiguration object
- */
- static CCamConfiguration* NewL();
-
- public: // New functions
-
- /**
- * Returns number of image qualities configured using ICM. Setting data
- * for these qualities is accessible via ImageQuality() function.
- * @return Number of qualities
- */
- TInt NumImageQualities() const;
-
- /**
- * Returns index for primary camera MMS quality
- * @return MMS quality index or KErrNotFound
- */
- TInt MmsImageQuality() const;
-
- /**
- * Returns index for secondary camera imagequality.
- * @return Secondary image quality index or KErrNotFound
- */
- TInt SecondaryCameraImageQuality() const;
-
- /**
- * Returns settings of the requested quality
- * @param aIndex Index of the quality (Must be <NumImageQualities())
- * @return Quality settings
- */
- const TCamPhotoQualitySetting& ImageQuality( TInt aIndex ) const;
-
- /**
- * Returns number of video qualities configured using ICM. Setting data
- * for these qualities is accessible via VideoQuality() function.
- * @return Number of video qualities
- */
- TInt NumVideoQualities() const;
-
- /**
- * Returns number of primary camera image qualities configured using ICM.
- * Setting data for these qualities is accessible via ImageQuality( TInt aIndex ) function.
- * @return Number of primary camera image qualities
- */
- TInt NumPrimaryImageQualities() const;
-
- /**
- * Returns index for secondary camera video quality. Currently this is
- * always same as last quality for primary camera.
- * @return Secondary video quality index
- */
- TInt SecondaryCameraVideoQuality() const;
-
- /**
- * Returns the quality setting for a required index from iVideoQualities array
- * in camera video quality.
- * @return iVideoQualities array index
- */
- TInt VideoQualitySetting( TInt aIndex ) const;
-
- /**
- * Returns settings data of the requested video quality
- * @param aIndex Index of the quality (Must be <NumImageQualities())
- * @return Quality settings
- */
- const TVideoQualitySettings& VideoQuality( TInt aIndex ) const;
-
- /**
- * Gives description id for given image/video quality
- * Image: TCamImageQualitySetting => TCamPhotoQualityDescription
- * Video: TCamVideoQualitySettings => TCamVideoQualityDescription
- * @param aVideoMode EFalse if image mode
- * @param aQualityVal Quality value
- * @return Description id
- *
- */
- TInt MapSupportedQualityToQualityDescriptor( TBool aVideoMode,
- TInt aQualityVal ) const;
-
- /**
- * Returns the the following image quality related integer arrays:
- * - ECamPsiSupportedStillResolutions
- * - ECamPsiJpegDataSizes
- * - ECamPsiSequencePostProcessDataSizes
- * - ECamPsiSupportedStillQualities
- * - ECamPsiStillQualityIconIds
- * - ECamPsiPrecapStillQualityIconIds
- * And following video quality related arrays:
- * - ECamPsiSupportedVideoQualities
- * - ECamPsiPrecapVideoQualityIconIds
- * - ECamPsiVideoQualityIconIds
- * - ECamPsiVideoQualityFileTypeId
- *
- * @param aKey Key
- * @param aArray Destination array
- */
- void GetPsiIntArrayL( TCamPsiKey aKey, RArray<TInt>& aArray ) const;
-
- /**
- * Provides mapping between TCamImageResolution and TCamPhotoSizeId types
- * @param aResolution
- * @return Photo Size
- */
- static TCamPhotoSizeId MapResolutionToPhotoSize( TCamImageResolution aResolution );
-
- /**
- * Provides mapping between TCamPhotoSizeId and TCamImageResolution types
- * @param aSizeId
- * @return Resolution
- */
- static TCamImageResolution MapPhotoSizeToResolution( TCamPhotoSizeId aSizeId );
-
- /**
- * Calculate number of images than can still be taken with the current
- * image size
- * @param aStorage Storage media
- * @param aSizeId The current photo resolution setting
- * @param aCriticalLevel Critical threshold on the specified drive
- * @param aBurstActive Whether or not burst mode is active
- * @return Number of images
- */
- TInt ImagesRemaining( TCamMediaStorage aStorage,
- TCamPhotoSizeId aSizeId,
- TInt aCriticalLevel,
- TBool aBurstActive ) const;
-
- /**
- * Returns the CMR average video bitrate scaler (obtained from ICM)
- * This is used to scale bitrates for remaining video time calculation
- * @return scaler
- */
- TReal CMRAvgVideoBitRateScaler() const;
-
- /**
- * Returns the default VideoQuality setting which has the highest
- * iVideoQualitySetLevel value (obtained from ICM)
- * This is used to get the default video quality setting when restore
- * settings or frist start camera
- * @return video quality
- */
- TCamVideoQualitySettings GetDefaultVideoQualityFromIcmL();
-
- /**
- * Returns the index to the image quality required by embedding application
- * @return index to icm image configuration array
- */
- TInt GetRequiredImageQualityIndex( const TSize& aResolution ) const;
-
- /**
- * Returns the resolution that matches closest to the required resolution by embedding application
- * @return TSize of the resolution
- */
- TSize MapRequiredResolutionToActualResolutionPhoto( const TSize& aRequiredResolution ) const;
-
- /**
- * Returns the index to the video quality required by embedding application
- * @return index to icm video configuration array
- */
- TInt GetRequiredVideoQualityIndex( const TSize& aResolution ) const;
-
- /**
- * Returns the resolution that matches closest to the required resolution by embedding application
- * @return TSize of the resolution
- */
- TSize MapRequiredResolutionToActualResolutionVideo( const TSize& aRequiredResolution ) const;
-
-
- private:
- /**
- * C++ default constructor.
- * @since 2.8
- */
- CCamConfiguration();
-
- /**
- * 2nd phase constructor.
- */
- void ConstructL();
-
- /**
- * Queries image qualities from ICM, converts enabled qualities to internal
- * data formats and adds them to ordered arrays.
- */
- void InitializeImageQualitiesL();
-
- /**
- * Initializes TCamImageQualityData contents based on TImageQualitySet, which
- * we have received from the ICM.
- * @param aSet Image quality set from ICM
- * @param aData CamConfiguration image quality data structure
- */
- void InitializeImageQualityL( const TImageQualitySet& aSet, TCamImageQualityData& aData );
-
- /**
- * Returns all data of the requested quality
- * @param aIndex Index of the quality (Must be <NumImageQualities())
- * @return Quality data
- */
- const TCamImageQualityData& ImageQualityData( TInt aIndex ) const;
-
- /**
- * Queries video qualities from ICM, converts enabled qualities to internal
- * data formats and adds them to ordered arrays.
- */
- void InitializeVideoQualitiesL();
-
- /**
- * Creates TCamVideoQualityData contents based on TVideoQualitySet, which we
- * have received from ICM. Not const, because memory allocations are needed
- * for string data.
- * @param aSet ICM video quality data
- * @return Video quality data in CamConfiguration data structure
- */
- TCamVideoQualityData CreateVideoQualityDataL( const TVideoQualitySet& aSet );
-
- /**
- * Adds the given image quality data to correct place in ordered image
- * qualities data array. Ordering is done based on number of pixels in the
- * image quality.
- * @param aQuality Image quality data
- * @param aArray Ordered image quality data array
- */
- static void AddToOrderedImageQualitiesArrayL( TCamImageQualityData& aQuality,
- RArray<TCamImageQualityData>& aArray );
-
- /**
- * Adds the given video quality data to correct place in ordered video
- * qualities data array. Ordering is done based on the image quality
- * description enumeration. (Highest quality first)
- * @param aQuality Image quality data
- * @param aArray Ordered image quality data array
- */
- static void AddToOrderedVideoQualitiesArrayL( TCamVideoQualityData& aQuality,
- RArray<TCamVideoQualityData>& aArray );
-
- /**
- * Checks if the value for aValue is used for type aCheckType if the
- * supported image qualities. If so, Appends the aAppendType value
- * (or aValue, if aAppendType is ECamItemSame) of that quality to
- * the array.
- *
- * @param aCheckType Type for checking existence of value
- * @param aValue Item value (of checking type)
- * @param aArray Integer array
- * @param aAppendType Type of correspondin value to be appended
- */
- void AppendIfSupportedL( TCamItemType aCheckType, TInt aValue,
- RArray<TInt>&aArray, TCamItemType aAppendType=ECamItemSame ) const;
-
- /**
- * Appends value of item of type aType from image quality data to aArray.
- * @param aType Item type
- * @param aArray Destination array
- * @param aData Image quality data
- */
- static void AppendTypeL( TCamItemType aType, RArray<TInt>&aArray, const TCamImageQualityData& aData );
-
- /**
- * @param aValue Video resolution value
- * @param aArray Destination array
- */
- void AppendVideoResIfSupportedL( TInt aValue, RArray<TInt>&aArray ) const;
-
- /**
- * Allocates memory for asciiz string given in aData. Returns pointer to the
- * string in the allocated memory.
- * @param aData
- * @return String
- */
- const TUint8* AllocString8L( const TUint8* aData );
-
- /**
- * Allocates memory for asciiz string given in aData, converts it to 16-bit
- * and returns pointer to the 16-bit string in the allocated memory.
- * @param aData
- * @return String
- */
- const TUint16* AllocString16L( const TUint8* aData );
-
- private: // Data
-
- // Imaging configuration manager
- CImagingConfigManager* iIcm;
-
- // Camera display ids. Used when querying ICM for supported image and
- // video qualities.
- TInt iPrimaryCameraDisplayId;
- TInt iSecondaryCameraDisplayId;
-
- // Image qualities data for primary and secondary camera
- RArray<TCamImageQualityData> iPrimaryCameraPhotoQualities;
- RArray<TCamImageQualityData> iSecondaryCameraPhotoQualities;
-
- // Video quality data. Last item is shared between primary camera MMS
- // quality and secondary camera.
- RArray<TCamVideoQualityData> iVideoQualities;
- TInt iSecondaryVideoQualityIndex;
-
- // Arrays for storing (video qualities) string data from ICM
- // All the content is owned by CCamConfiguration
- RPointerArray<HBufC8> iStrings8;
- RPointerArray<HBufC16> iStrings16;
-
- // Average video bitrate scaler - needed for remaining time calculation
- TReal iCMRAvgVideoBitRateScaler;
-};
-
-#endif // CAMCONFIGURATION_H
-
-// End of file
-