camerauis/cameraapp/generic/common/inc/camconfigurationconstants.h
branchRCL_3
changeset 24 bac7acad7cb3
parent 0 1ddebce53859
--- /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
+
+