diff -r 000000000000 -r 1ddebce53859 camerauis/cameraapp/generic/common/inc/camconfigurationconstants.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/common/inc/camconfigurationconstants.h Thu Jan 07 16:18:56 2010 +0200 @@ -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 + +// 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 + +