--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/common/inc/camconfigurationconstants.h Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,421 @@
+/*
+* 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: Constants used by camera dynamic configuration.
+* Mappings between enums, resolutions, icons, description
+* and CamcorderVisible values.
+*
+*
+*/
+
+#ifndef CAMCONFIGURATIONCONSTANTS_H
+#define CAMCONFIGURATIONCONSTANTS_H
+
+#include "CamSettingsInternal.hrh"
+#include "camconfigurationtypes.h"
+#include <cameraapp.mbg>
+
+// Display IDs for cameras, used when requesting data from ICM
+const TInt KCamPrimaryCameraDisplayId = 2;
+const TInt KCamSecondaryCameraDisplayId = 3;
+
+// Photo resolutions corresponding each photo size and image quality
+// enum value
+const TCamPhotoSize KCamPhotoSizes[] =
+ {
+ { ECamPhotoSizeVGA, EImageResolutionMMS, ECamImageQualityMMS, 640, 480 },
+ { ECamPhotoSizeSVGA, EImageResolutionMMS, ECamImageQualityEmail05m, 800, 600 },
+ { ECamPhotoSizeXGA, EImageResolution0_8MP, ECamImageQualityEmail08m, 1024, 768 },
+ { ECamPhotoSize1MP, EImageResolution1MP, ECamImageQualityEmail1m, 1152, 864 },
+ { ECamPhotoSize1_3MP, EImageResolution1_3MP, ECamImageQualityPrint1_3m, 1280, 960 },
+ { ECamPhotoSize2MP, EImageResolution2MP, ECamImageQualityPrint2m, 1600, 1200 },
+ { ECamPhotoSize3MP, EImageResolution3MP, ECamImageQualityPrint3m, 2048, 1536 },
+ { ECamPhotoSize5MP, EImageResolution5MP, ECamImageQualityPrint5m, 2592, 1944 },
+ { ECamPhotoSize8MP, EImageResolution8MP, ECamImageQualityPrint8m, 3264, 2448 },
+ { ECamPhotoSize12MP, EImageResolution12MP, ECamImageQualityPrint12m, 4000, 3000 },
+ { ECamPhotoSizeW6MP, EImageResolutionW6MP, ECamImageQualityPrintW6m, 3264, 1832 },
+ { ECamPhotoSizeW9MP, EImageResolutionW9MP, ECamImageQualityPrintW9m, 4000, 2248 },
+ { ECamPhotoSizeCIF, EImageResolutionMMS, ECamImageQualityMMS, 354, 288 },
+ { ECamPhotoSizeQVGA, EImageResolutionQVGA, ECamImageQualityMMS, 320, 240 },
+ { ECamPhotoSizeWVGA, EImageResolutionWVGA, ECamImageQualityPrint8m, 4000, 2672 } // @todo: fake values
+ };
+__ASSERT_COMPILE( (sizeof(KCamPhotoSizes) / sizeof(TCamPhotoSize)) == ECamPhotoSizeLast );
+
+
+// Mappings for image qualities and small/medium/large types (type
+// is calculated based on ICM's CamcorderVisible value)
+// In case a type is not supported for a quality, closest description
+// and quality are used.
+const TCamImageQualityMapping
+ KCamImageQualityMappings[][ECamImageTypeLast] =
+ {
+ // ECamPhotoSizeVGA
+ {
+ { ECamPhotoQualityDescMms, EImageQualityMMS }, // Small
+ { ECamPhotoQualityDescMms, EImageQualityMMS }, // Medium
+ { ECamPhotoQualityDescMms, EImageQualityMMS } // Large
+ },
+ // ECamPhotoSizeSVGA - Not supported for any type!
+ {
+ { ECamPhotoQualityDescLast, EImageQualityEmail }, // Small
+ { ECamPhotoQualityDescLast, EImageQualityEmail }, // Medium
+ { ECamPhotoQualityDescLast, EImageQualityEmail } // Large
+ },
+ // ECamPhotoSizeXGA
+ {
+ { ECamPhotoQualityDesc0_8mMed, EImageQualityEmail }, // Small
+ { ECamPhotoQualityDesc0_8mMed, EImageQualityEmail }, // Medium
+ { ECamPhotoQualityDesc0_8mMed, EImageQualityEmail } // Large
+ },
+ // ECamPhotoSize1MP
+ {
+ { ECamPhotoQualityDesc1mSmall, EImageQualityEmail }, // Small
+ { ECamPhotoQualityDesc1mMed, EImageQualityEmail }, // Medium
+ { ECamPhotoQualityDesc1mMed, EImageQualityEmail } // Large
+ },
+ // ECamPhotoSize1_3MP
+ {
+ { ECamPhotoQualityDesc1_3mSmall, EImageQualityEmail }, // Small
+ { ECamPhotoQualityDesc1_3mSmall, EImageQualityEmail }, // Medium
+ { ECamPhotoQualityDesc1_3mSmall, EImageQualityEmail } // Large
+ },
+ // ECamPhotoSize2MP
+ {
+ { ECamPhotoQualityDesc2mMed, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDesc2mMed, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDesc2mLarge, EImageQualityPrint } // Large
+ },
+ // ECamPhotoSize3MP
+ {
+ { ECamPhotoQualityDesc3mMed, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDesc3mMed, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDesc3mLarge, EImageQualityPrint } // Large
+ },
+ // ECamPhotoSize5MP
+ {
+ { ECamPhotoQualityDesc5mLarge, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDesc5mLarge, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDesc5mLarge, EImageQualityPrint } // Large
+ },
+ // ECamPhotoSize8MP
+ {
+ { ECamPhotoQualityDesc8mLarge, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDesc8mLarge, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDesc8mLarge, EImageQualityPrint } // Large
+ },
+ // ECamPhotoSize12MP
+ {
+ { ECamPhotoQualityDesc12mLarge, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDesc12mLarge, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDesc12mLarge, EImageQualityPrint } // Large
+ },
+ // ECamPhotoSizeW6MP
+ {
+ { ECamPhotoQualityDescW6mLarge, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDescW6mLarge, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDescW6mLarge, EImageQualityPrint } // Large
+ },
+ // ECamPhotoSizeW9MP
+ {
+ { ECamPhotoQualityDescW9mLarge, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDescW9mLarge, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDescW9mLarge, EImageQualityPrint } // Large
+ },
+ // ECamPhotoSizeCIF
+ {
+ { ECamPhotoQualityDescMms, EImageQualityMMS }, // Small
+ { ECamPhotoQualityDescMms, EImageQualityMMS }, // Medium
+ { ECamPhotoQualityDescMms, EImageQualityMMS } // Large
+ },
+ // ECamPhotoSizeQVGA
+ {
+ { ECamPhotoQualityDescMms, EImageQualityMMS }, // Small
+ { ECamPhotoQualityDescMms, EImageQualityMMS }, // Medium
+ { ECamPhotoQualityDescMms, EImageQualityMMS } // Large
+ },
+ // ECamPhotoSizeWVGA // @todo: fake values
+ {
+ { ECamPhotoQualityDesc8mLarge, EImageQualityPrint }, // Small
+ { ECamPhotoQualityDesc8mLarge, EImageQualityPrint }, // Medium
+ { ECamPhotoQualityDesc8mLarge, EImageQualityPrint } // Large
+ },
+ };
+__ASSERT_COMPILE( (sizeof(KCamImageQualityMappings) / (sizeof(TCamImageQualityMapping)*ECamImageTypeLast) ) == ECamPhotoSizeLast );
+
+// Video resolutions corresponding enum values
+const TCamVideoSize KCamVideoSizes[] =
+ {
+ { ECamVideoResolutionSubQCIF, EVideoResolutionQCIF, 128, 96 },
+ { ECamVideoResolutionQCIF, EVideoResolutionQCIF, 176, 144 },
+ { ECamVideoResolutionCIF, EVideoResolutionQCIF, 352, 288 },
+ { ECamVideoResolutionVGA, EVideoResolutionVGA, 640, 480 },
+ { ECamVideoResolutionQVGA, EVideoResolutionQVGA, 320, 240 },
+ { ECamVideoResolutionNHD, EVideoResolutionNHD, 640, 352 },
+ { ECamVideoResolutionWVGA, EVideoResolutionWVGA, 864, 480 },
+ { ECamVideoResolutionHD, EVideoResolutionHD, 1280, 720 }
+ };
+__ASSERT_COMPILE( (sizeof(KCamVideoSizes) / sizeof(TCamVideoSize)) == ECamVideoResolutionLast );
+
+// Image quality icons, settings view and precapture
+// Array indexed quality description ID
+const TCamQualityIcons KCamImageIcons[] =
+ {
+
+
+ // ECamPhotoQualityDesc12mLarge
+ {
+ EMbmCameraappQgn_indi_cam4_quality_12mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_12mp_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_12mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_12mp_high_mask
+ },
+ // ECamPhotoQualityDescW9mLarge
+ {
+ EMbmCameraappQgn_indi_cam4_quality_9mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_9mp_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_9mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_9mp_high_mask
+ },
+ // ECamPhotoQualityDesc8mLarge
+ {
+ EMbmCameraappQgn_indi_cam4_quality_8mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_8mp_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_8mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_8mp_high_mask
+ },
+ // ECamPhotoQualityDescW6mLarge
+ {
+ EMbmCameraappQgn_indi_cam4_quality_6mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_6mp_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_6mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_6mp_high_mask
+ },
+ // ECamPhotoQualityDesc5mLarge
+ {
+ EMbmCameraappQgn_indi_cam4_quality_5mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_5mp_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_5mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_5mp_high_mask
+ },
+ // ECamPhotoQualityDesc3mLarge
+ {
+ EMbmCameraappQgn_indi_cam4_quality_3mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_3mp_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_3mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_3mp_high_mask
+ },
+ // ECamPhotoQualityDesc2mLarge
+ {
+ EMbmCameraappQgn_indi_cam4_quality_2mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_2mp_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_2mp_high,
+ EMbmCameraappQgn_indi_cam4_quality_2mp_high_mask
+ },
+ // ECamPhotoQualityDesc3mMed
+ {
+ EMbmCameraappQgn_indi_cam4_quality_3mp_medium,
+ EMbmCameraappQgn_indi_cam4_quality_3mp_medium_mask,
+ EMbmCameraappQgn_indi_cam4_quality_3mp_medium,
+ EMbmCameraappQgn_indi_cam4_quality_3mp_medium_mask
+ },
+ // ECamPhotoQualityDesc2mMed
+ {
+ EMbmCameraappQgn_indi_cam4_quality_2mp_medium,
+ EMbmCameraappQgn_indi_cam4_quality_2mp_medium_mask,
+ EMbmCameraappQgn_indi_cam4_quality_2mp_medium,
+ EMbmCameraappQgn_indi_cam4_quality_2mp_medium_mask
+ },
+ // ECamPhotoQualityDesc1mMed
+ {
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low, //Medium icon missing!!
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low_mask,
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low_mask
+ },
+ // ECamPhotoQualityDesc1_3mSmall
+ {
+ EMbmCameraappQgn_indi_cam4_quality_13mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_13mp_low_mask,
+ EMbmCameraappQgn_indi_cam4_quality_13mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_13mp_low_mask
+ },
+ // ECamPhotoQualityDesc1mSmall
+ {
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low_mask,
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_1mp_low_mask
+ },
+ // ECamPhotoQualityDesc0_8mMed
+ {
+ EMbmCameraappQgn_indi_cam4_quality_08mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_08mp_low_mask,
+ EMbmCameraappQgn_indi_cam4_quality_08mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_08mp_low_mask
+ },
+ // ECamPhotoQualityDescMms
+ {
+ EMbmCameraappQgn_indi_cam4_quality_03mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_03mp_low_mask,
+ EMbmCameraappQgn_indi_cam4_quality_03mp_low,
+ EMbmCameraappQgn_indi_cam4_quality_03mp_low_mask
+ }
+ };
+__ASSERT_COMPILE( (sizeof(KCamImageIcons) / sizeof(TCamQualityIcons)) == ECamPhotoQualityDescLast );
+
+// Video quality icons, settings view and precapture
+// Array indexed quality description ID
+const TCamQualityIcons KCamVideoIcons[] =
+ {
+ // ECamVideoQualityDescHDHighest
+ {
+ EMbmCameraappQgn_indi_cam4_quality_hd,
+ EMbmCameraappQgn_indi_cam4_quality_hd_mask,
+ EMbmCameraappQgn_indi_cam4_quality_hd,
+ EMbmCameraappQgn_indi_cam4_quality_hd_mask
+ },
+ // ECamVideoQualityDescWidescreenHighest
+ {
+ EMbmCameraappQgn_indi_cam4_quality_wide_high,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high_mask
+ },
+ // ECamVideoQualityDescTVHigh
+ {
+ EMbmCameraappQgn_indi_vid4_quality_tv_high,
+ EMbmCameraappQgn_indi_vid4_quality_tv_high_mask,
+ EMbmCameraappQgn_indi_vid4_quality_tv_high,
+ EMbmCameraappQgn_indi_vid4_quality_tv_high_mask
+ },
+ // ECamVideoQualityDescHigh
+ {
+ EMbmCameraappQgn_indi_vid4_quality_high,
+ EMbmCameraappQgn_indi_vid4_quality_high_mask,
+ EMbmCameraappQgn_indi_vid4_quality_high,
+ EMbmCameraappQgn_indi_vid4_quality_high_mask
+ },
+ // ECamVideoQualityDescWidescreenHigh
+ {
+ EMbmCameraappQgn_indi_cam4_quality_wide_high,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high_mask
+ },
+ // ECamVideoQualityDescWidescreenNorm
+ {
+ // use high icons for now, until the correct ones can be found from the build
+ EMbmCameraappQgn_indi_cam4_quality_wide_high,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high_mask,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high,
+ EMbmCameraappQgn_indi_cam4_quality_wide_high_mask
+ //EMbmCameraappQgn_indi_cam4_quality_wide_normal,
+ //EMbmCameraappQgn_indi_cam4_quality_wide_normal_mask,
+ //EMbmCameraappQgn_indi_cam4_quality_wide_normal,
+ //EMbmCameraappQgn_indi_cam4_quality_wide_normal_mask
+ },
+ // ECamVideoQualityDescTVNorm
+ {
+ EMbmCameraappQgn_indi_vid4_quality_tv_normal,
+ EMbmCameraappQgn_indi_vid4_quality_tv_normal_mask,
+ EMbmCameraappQgn_indi_vid4_quality_tv_normal,
+ EMbmCameraappQgn_indi_vid4_quality_tv_normal_mask
+ },
+ // ECamVideoQualityDescNorm
+ {
+ EMbmCameraappQgn_indi_vid4_quality_normal,
+ EMbmCameraappQgn_indi_vid4_quality_normal_mask,
+ EMbmCameraappQgn_indi_vid4_quality_normal,
+ EMbmCameraappQgn_indi_vid4_quality_normal_mask
+ },
+ // ECamVideoQualityDescWebHigh
+ {
+ EMbmCameraappQgn_indi_vid4_quality_email_high,
+ EMbmCameraappQgn_indi_vid4_quality_email_high_mask,
+ EMbmCameraappQgn_indi_vid4_quality_email_high,
+ EMbmCameraappQgn_indi_vid4_quality_email_high_mask
+ },
+ // ECamVideoQualityDescWebNorm
+ {
+ EMbmCameraappQgn_indi_vid4_quality_email_normal,
+ EMbmCameraappQgn_indi_vid4_quality_email_normal_mask,
+ EMbmCameraappQgn_indi_vid4_quality_email_normal,
+ EMbmCameraappQgn_indi_vid4_quality_email_normal_mask
+ },
+ // ECamVideoQualityDescMMS
+ {
+ EMbmCameraappQgn_indi_cam4_quality_sharing,
+ EMbmCameraappQgn_indi_cam4_quality_sharing_mask,
+ EMbmCameraappQgn_indi_cam4_quality_sharing,
+ EMbmCameraappQgn_indi_cam4_quality_sharing_mask
+ },
+ // ECamVideoQualityDescSharing
+ {
+ EMbmCameraappQgn_indi_cam4_quality_sharing,
+ EMbmCameraappQgn_indi_cam4_quality_sharing_mask,
+ EMbmCameraappQgn_indi_cam4_quality_sharing,
+ EMbmCameraappQgn_indi_cam4_quality_sharing_mask
+ }
+ };
+__ASSERT_COMPILE( (sizeof(KCamVideoIcons) / sizeof(TCamQualityIcons)) == ECamVideoQualityDescLast );
+
+// Icons and mask for each video type (mp4, 3gp etc.)
+const TCamFileTypeIcons KCamVideoTypeIcons[] =
+ {
+ {
+ EMbmCameraappQgn_prop_cam4_codec_mp4,
+ EMbmCameraappQgn_prop_cam4_codec_mp4_mask
+ },
+ {
+ EMbmCameraappQgn_prop_cam4_codec_3gp,
+ EMbmCameraappQgn_prop_cam4_codec_3gp_mask
+ }
+ };
+__ASSERT_COMPILE( (sizeof(KCamVideoTypeIcons) / sizeof(TCamFileTypeIcons)) == ECamVideoTypeLast );
+
+// Mime types for mapping from strings to our enum
+_LIT8( KCamMimeMp4, "video/mp4" );
+_LIT8( KCamMime3gpp, "video/3gpp" );
+
+// Camera configuration panic id
+_LIT( KCamConfigPanicId, "CAM-CONF" );
+
+// Constants for mapping CamcorderVisible to small/medium/large image
+const TInt KCamImageLargeTypeMin = 300; // >= 300 = large
+const TInt KCamImageMediumTypeMin = 200; // 200-299 = medium, otherwise small
+
+// Constants for mapping CamcorderVisible value to video quality description
+const TCamVideoQualityMapping
+ KCamVideoQualityMappings[] =
+ {
+ { ECamVideoQualityDescHDHighest, 500 },
+ { ECamVideoQualityDescWidescreenHighest, 490 },
+ { ECamVideoQualityDescTVHigh, 450 },
+ { ECamVideoQualityDescHigh, 400 },
+ { ECamVideoQualityDescWidescreenHigh, 375 },
+ { ECamVideoQualityDescWidescreenNorm, 365 },
+ { ECamVideoQualityDescTVNorm, 350 },
+ { ECamVideoQualityDescNorm, 300 },
+ { ECamVideoQualityDescWebHigh, 250 },
+ { ECamVideoQualityDescWebNorm, 200 },
+ { ECamVideoQualityDescMMS, 90 },
+ { ECamVideoQualityDescSharing, 1 }
+ };
+__ASSERT_COMPILE( (sizeof(KCamVideoQualityMappings) / sizeof(TCamVideoQualityMapping)) == ECamVideoQualityDescLast );
+
+
+#endif // CAMCONFIGURATIONCONSTANTS_H
+
+// End of file
+
+