--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/common/inc/camconfigurationtypes.h Thu Jan 07 16:18:56 2010 +0200
@@ -0,0 +1,251 @@
+/*
+* Copyright (c) 2007-2009 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: Types used by camera dynamic configuration. Previously
+* defined separately for each product in camproductconstants.h
+*
+*
+*/
+
+
+#ifndef CAMCONFIGURATIONTYPES_H
+#define CAMCONFIGURATIONTYPES_H
+
+
+// Video qualities
+// Used to also index to the KVideoQualitySettings array.
+// Make sure the CamUtility returns rigth count of
+// supported video qualities.
+enum TCamVideoQuality
+ {
+ EVideoHigh,
+ EVideoNormal,
+ EVideoMMS,
+ EVideoQualityLast
+ };
+
+
+enum TCamImageQuality
+ {
+ EImageQualityPrintHigh,
+ EImageQualityPrint,
+ EImageQualityPrintLow,
+ EImageQualityEmail,
+ EImageQualityMMS,
+ EImageQualitySecondary,
+ EImageQualityLast
+ };
+
+enum TCamImageResolution
+ {
+ EImageResolutionMMS, // 0.3 MPix / MMS
+ EImageResolution0_8MP, // 0.8 MPix = XGA
+ EImageResolution1MP, // 1 MPix
+ EImageResolution1_3MP, // 1.3 MPix
+ EImageResolution2MP, // 2 MPix
+ EImageResolution3MP, // 3 MPix
+ EImageResolution5MP, // 5 MPix
+ EImageResolution8MP, // 8 MPix
+ EImageResolution12MP, // 12 MPix
+ EImageResolutionW6MP, // 6 MPix 16:9
+ EImageResolutionW9MP, // 9 MPix 16:9
+ EImageResolutionCIF, // CIF
+ EImageResolutionQVGA, // QVGA, for secondary camera
+ EImageResolutionWVGA, // WVGA
+ EImageResolutionLast // End marker
+ };
+
+// Supported video resolutions
+// Converted to TCamVideoResolution in MapVideoResolution
+enum TVideoResolution
+ {
+ EVideoResolutionQCIF,
+ EVideoResolutionQVGA,
+ EVideoResolutionVGA,
+ EVideoResolutionNHD,
+ EVideoResolutionWVGA,
+ EVideoResolutionHD
+ };
+
+// Image compression levels
+enum TCamImageCompression
+ {
+ EPhotoQualitySuperFine = 99,
+ EPhotoQualityFine = 85, // 1:10
+ EPhotoQualityStandard = 70,
+ EPhotoQualityBasic = 50, // 1:20
+ EPhotoQualityMMS = 25
+ };
+
+// Image quality data
+// typedef struct
+struct TCamPhotoQualitySetting
+ {
+ TCamImageQuality iPhotoQualityId;
+ TCamImageResolution iPhotoResolution;
+ TInt iQualityLevel; // TCamImageCompression
+ }; // TCamPhotoQualitySetting;
+
+// Structure representing a video quality level
+// The text pointers must be const, so no const_casts are needed
+struct TVideoQualitySettings
+ {
+ TInt iQualityLevel; // identifier
+ TInt iVideoResolution; // resolution (ie CIF/QCIF)
+ TReal iVideoFrameRate; // video frame rate
+ TInt iVideoBitRate; // video bit rate
+ TInt iAudioBitRate; // audio bit rate
+ const TUint8* iVideoMimeType; // MIME type
+ const TUint16* iPreferredSupplier; // Supplier
+ const TUint8* iVideoCodec; // video codec
+ const TUint8* iAudioCodec; // audio codec
+ TInt iVideoFileType; // video file type (i.e mpeg4, H263)
+ TInt iVideoLength; // video length (max or short for sharing)
+ };
+
+
+// New dynamic configuration related types
+// -----------------------------------------------------------------
+
+// Settings slider and precapture quality icons
+// Used for image and video quality data
+struct TCamQualityIcons
+ {
+ TInt iSettingsIconId;
+ TInt iSettingsIconMask;
+ TInt iPrecapIconId;
+ TInt iPrecapIconMask;
+ };
+
+// File type icon
+struct TCamFileTypeIcons
+ {
+ TInt iIconId;
+ TInt iMask;
+ };
+
+// Item types, used when appending data into integer arrays
+enum TCamItemType
+ {
+ ECamItemSame,
+ ECamItemPhotoSize,
+ ECamItemPhotoQuality,
+ ECamItemSettingsIconId,
+ ECamItemPrecapIconId,
+ ECamItemSecondaryIconId,
+ ECamItemPhotoJpegSize,
+ ECamItemSeqPostProcSize
+ };
+
+// Photo size. Used to create image size data (resolution+enums) constant array
+struct TCamPhotoSize
+ {
+ TCamPhotoSizeId iSizeId;
+ TCamImageResolution iResolution;
+ TCamImageQualitySetting iQualitySettingId;
+ TInt iWidth;
+ TInt iHeight;
+ };
+
+// Video size. Used to create video size data (resolution+enums) constant array
+struct TCamVideoSize
+ {
+ TCamVideoResolution iCamVideoRes;
+ TVideoResolution iVideoRes;
+ TInt iWidth;
+ TInt iHeight;
+ };
+
+// Image quality data structure, which contains all the
+// information needed for each quality/size in the application
+struct TCamImageQualityData
+ {
+ // This quality is for primary camera
+ TBool iPrimaryCamera;
+
+ // Two different ways of representing the same image quality,
+ // used in different parts of the application
+ TCamPhotoSize iPhotoSize;
+ TCamPhotoQualitySetting iPhotoQualitySetting;
+
+ // Description Id. Combination of size (5m/3m...), usage (print/email/...)
+ // and size (small/medium/large ).
+ TCamPhotoQualityDescription iDescription;
+
+ // Quality icons
+ TCamQualityIcons iQualityIcons;
+
+ // Estimated file size
+ TInt iFileSize;
+ };
+
+struct TCamVideoQualityData
+ {
+ // Quality settings (resolution, bitrate, file type etc), which were
+ // previously in constant array KVideoQualitySettings
+ // iQualitySettings.iQuality level (0,1,...X) is used for indexing, last one is MMS
+ TVideoQualitySettings iQualitySettings;
+
+ // Video resolution
+ TCamVideoResolution iVideoResolution;
+
+ // High/(normal high)/normal/(normal low)/sharing
+ TCamVideoQualitySettings iQualitySetting;
+
+ // Description ID for the quality
+ TCamVideoQualityDescription iDescription;
+
+ // Icon IDs
+ TCamQualityIcons iQualityIcons;
+
+ TCamFileTypeIcons iFileTypeIcons;
+ };
+
+// Image type - small/medium/large
+enum TCamImageType
+ {
+ ECamImageTypeSmall,
+ ECamImageTypeMedium,
+ ECamImageTypeLarge,
+ ECamImageTypeLast
+ };
+
+// Photo description and matching quality (print/email/mms etc)
+struct TCamImageQualityMapping
+ {
+ TCamPhotoQualityDescription iDesc;
+ TCamImageQuality iQuality;
+ };
+
+// Mapping between CamcorderVisible value and video description
+struct TCamVideoQualityMapping
+ {
+ TCamVideoQualityDescription iDesc;
+ TInt iCamcorderVisibleMin;
+ };
+
+// Panics
+enum TCamConfigurationPanics
+ {
+ ECamConfigPanicUnknownKey,
+ ECamConfigPanicUnknownType,
+ ECamConfigPanicNoQuality,
+ ECamConfigPanicNoDescription,
+ ECamConfigPanicNoVideoRes,
+ ECamConfigPanicNoVideoType,
+ ECamConfigPanicInvalidNumberOfQualities,
+ ECamConfigPanicInvalidItem
+ };
+
+#endif // CAMCONFIGURATIONTYPES_H
+