diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraapp/generic/common/inc/CamUtility.h --- a/camerauis/cameraapp/generic/common/inc/CamUtility.h Tue Feb 02 00:01:39 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,452 +0,0 @@ -/* -* 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: Utility functions for the Camera Application* -*/ - - - - -#ifndef CAMUTILITY_H -#define CAMUTILITY_H - -// INCLUDES -#include -#include - -#include -#include "CamPSI.h" // Product Specific Information -#include "CamSettings.hrh" // for TCamMediaStorage -#include "CamSettingsInternal.hrh" -#include "camlogging.h" -#include "camconfigurationtypes.h" - -#ifndef CAMERAAPP_PLUGIN_BUILD -#include "CamResourceIDs.h" -#endif //CAMERAAPP_PLUGIN_BUILD - -#include - -// CONSTANTS -/* estimated average image sizes */ -const TInt KCamImageSize3MP = 750000; -const TInt KCamImageSize2MP = 475000; -const TInt KCamImageSize1_3MP = 325000; -const TInt KCamImageSize1MP = 90000; -const TInt KCamImageSizeVGA = 56500; - -const TInt KCamLocationTrailStopped = 0; -const TInt KCamLocationTrailNoValidData = 1; -const TInt KCamLocationTrailSearchingDevice = 2; -const TInt KCamLocationTrailGPSDataAvail = 3; - -// A multiple of the image size is kept as a buffer to ensure that a -// complex last image can be captured -const TInt KCamImageDataBufferMultiplier = 1; - -// Name of the server that takes foreground when charger is inserted -_LIT( KAknCapServer, "akncapserver" ); -// Location data notification windows use this server. -_LIT( KAknNotifyServer, "aknnfysrv" ); - -// Phonebook server -_LIT( KPbkServer, "Pbk2ServerApp" ); - -// DATA TYPES -/** -* Memory card status, as returned by MemoryCardStatus() -*/ -enum TCamMemoryCardStatus - { - ECamMemoryCardNotInserted, - ECamMemoryCardLocked, - ECamMemoryCardInserted - }; - -#ifndef CAMERAAPP_PLUGIN_BUILD -#define ROID(resource_id) (CamUtility::ResourceOrientationID(resource_id)) - -// Capture tone resources -_LIT( KCamCaptureTone1, "z:\\system\\sounds\\digital\\cameraappCapture1.wav" ); -_LIT( KCamCaptureTone2, "z:\\system\\sounds\\digital\\cameraappCapture2.wav" ); -_LIT( KCamCaptureTone3, "z:\\system\\sounds\\digital\\cameraappCapture3.wav" ); -_LIT( KCamCaptureTone4, "z:\\system\\sounds\\digital\\cameraappCapture4.wav" ); -_LIT( KCamBurstCaptureTone1, "z:\\system\\sounds\\digital\\cameraappCaptureShort1.wav" ); -_LIT( KCamBurstCaptureTone2, "z:\\system\\sounds\\digital\\cameraappCaptureShort2.wav" ); -_LIT( KCamBurstCaptureTone3, "z:\\system\\sounds\\digital\\cameraappCaptureShort3.wav" ); -_LIT( KCamBurstCaptureTone4, "z:\\system\\sounds\\digital\\cameraappCaptureShort4.wav" ); -_LIT( KCamVideoStartTone, "z:\\system\\sounds\\digital\\cameraappStart.wav" ); -_LIT( KCamVideoPauseTone, "z:\\system\\sounds\\digital\\cameraappStop.wav" ); -_LIT( KCamVideoStopTone, "z:\\system\\sounds\\digital\\cameraappStop.wav" ); -_LIT( KCamAutoFocusComplete, "z:\\system\\sounds\\digital\\cameraappFocusSucc.wav" ); - -#endif //CAMERAAPP_PLUGIN_BUILD - -// CLASS DECLARATION - -/** -* Application wide utility functions -* -* @since 2.8 -*/ - -class CamUtility - { - public : // New functions - - /** - * Get free space in selected memory - * @since 2.8 - * @param aMemory memory card or internal memory - * @param aCriticalLevel The critical threshold on the specified drive - * @return free space in selected memory (in bytes) - */ - static TInt64 MemoryFree( - DriveInfo::TDefaultDrives aMemory, - TInt aCriticalLevel = 0 ); - - /** - * Returns the memory card status. - * @since 2.8 - * @return the status. - */ - static TCamMemoryCardStatus MemoryCardStatus(); - - /** - * Get drive number for memory card. - * @since 2.8 - * @return drive number for memory card - */ - static TInt MemoryCardDrive(); - - /** - * Get drive number for phone memory. - * @since 2.8 - * @return drive number for phone memory - */ - static TInt PhoneMemoryDrive(); - - - /** - * Get drive number for mass storage memory. - * @since 3.2 - * @return drive number for mass storage memory - */ - static TInt MassMemoryDrive(); - - /** - * Get drive type for a given drive number. - * @since 3.2 - * @return DriveInfo::TDefaultDrives type for the drive number - */ - static TInt GetDriveTypeFromDriveNumber( TInt aDrive ); - - /** - * Map camera storage location to memory selection dialog storage location - * @param aStorage The camera storage location to map - * @since 3.0 - * @return the memory selection dialog's mapped memory storage location value - */ - static TInt MapToSettingsListMemory( TInt aStorage ); - - /** - * Map memory selection dialog storage location to camera storage location - * @param aStorage The settings list memory location to map - * @since 3.0 - * @return the camera storage location mapped from the memory selection dialog's location value - */ - static TInt MapFromSettingsListMemory( TInt aStorage ); - - /** - * Suggest a new unique filename - * @since 2.8 - * @param aFilePath (in/out) drive and path for file name - * (must include trailing '\') - * On return contains the full path and - * generated file name with extension - * @param aFilename (in/out) filename (without path or extension) - * @param aSuggestedNumeral number initially appended to the name to ensure - * uniqueness, the actual number used may be higher - * @param aExt file extension (".jpg" or ".3gp") - */ - static void GetUniqueNameL( TDes& aFilePath, - TDes& aFilename, - TInt aSuggestedNumeral, - const TDesC& aExt ); - - /** - * Generate a image file name based on base name and counter. - * @since 2.8 - * @param aCounter image counter [1...] - * @param aBaseName name base - * @param aFilename descriptor to hold the generated file name. - * Does not include path or extension. Example: - * "Image(001)" - */ - static void FormatFileName( TUint aCounter, - const TDesC& aBaseName, - TDes& aFilename ); - - /** - * Checks if given filename contains illegal characters or - * is otherwise illegal. - * @since 2.8 - * @param aFilename descriptor that holds file name to check. - */ - static TBool CheckFileNameValidityL( const TDesC& aFilename ); - - /** - * Generate a file name based on date and counter. - * @since 2.8 - * @param aFilename descriptor to hold the generated file name. - * Does not include path or extension. Example: - * "240305(001)" - */ - static void FormatDateFileNameL( TDes& aFilename ); - - /** - * Format current date into given descriptor in a format - * suitable for file names. - * @since 2.8 - * @param aBuffer the buffer to receive the formatted date. - */ - static void GetCurrentDateForNameBaseL( TDes& aBuffer ); - - - /** - * Return the path and filename of the application MBM file - * @since 2.8 - * @param aResName Populated with path and filename of MBM file - */ - static void ResourceFileName( TDes& aResName ); - - /** - * Return Product Specific Information in the form of a TInt - * @since 2.8 - * @param aKey The enumeration key identifying the data required - * @param aValue A reference to TInt that will hold the data - * @return KErrNone if successful, KErrNotSupported if no valid data. - */ - static TInt GetPsiInt( TCamPsiKey aKey, TInt& aValue ); - - /** - * Return Product Specific Information in the form of a TInt array - * @since 3.0 - * @param aKey The enumeration key identifying the data required - * @param aValue A reference to a TInt array that will hold the data - * @return KErrNone if successful, KErrNotSupported if no valid data. - */ - static TInt GetPsiIntArrayL( TCamPsiKey aKey, RArray& aValue ); - - /** - * Return Product Specific Information in the form of a TInt - * @since 2.8 - * @param aKey The enumeration key identifying the data required - * @param aValue A reference to TInt that will hold the data - * @return KErrNone if successful, KErrNotSupported if no valid data. - */ - static TInt GetCommonPsiInt( TCamPsiKey aKey, TInt& aValue ); - - /** - * Return Product Specific Information in the form of a TAny* - * @since 2.8 - * @param aKey The enumeration key identifying the data required - * @param aValue A pointer to where the data should be copied to. - * note, data is Mem::Copied, so sufficient space must be - * available in the buffer passed in to "aValue" - * @return KErrNone if successful, KErrNotSupported if no valid data. - */ - static TInt GetPsiAnyL( TCamPsiKey aKey, TAny* aValue ); - - /** - * Return maximum size for an MMS message - * @since 2.8 - * @return The maximum size - */ - static TInt MaxMmsSizeInBytesL(); - - /** - * Compares two strings. - * @since 2.8 - * @param aFirst The first string. - * @param aSecond The second string - * @return ETrue if the strings are equivalent. - */ - static TBool CompareIgnoreCase( const TDesC& aFirst, - const TDesC& aSecond ); - - /** - * Deletes a video clip. - * @since 2.8 - * @param aFilename The filename of the video clip - */ - static void DeleteVideoL( const TDesC& aFilename ); - - /** - * Deletes an image. - * @since 2.8 - * @param aFilename The filename of the image - */ - static void DeleteStillImageL( const TDesC& aFilename ); - - /** - * Returns the thumbnail path for an image. - * @since 2.8 - * @param aImagePath The path of the image - * @param aThumbnailPath The path of the thumbnail image - */ - static void GetThumbnailPath( const TDesC& aImagePath, - TDes& aThumbnailPath ); - - /** - * Renames a still image. - * @since 2.8 - * @param aOldPath The old path of the image - * @param aNewName The new name of the image - * @param aNewPath Receives the new path of the image. - */ - static void RenameStillImageL( const TDesC& aOldPath, - const TDesC& aNewName, - TDes& aNewPath ); - - /** - * Takes a window group ID and a group name. Checks to see if the - * window group referred to by the ID has a name containing the - * window group name string. - * @since 3.0 - * @param aWindowId ID of the window group - * @param aWindowGroupName Name to check for - * @return ETrue if ID matches name - */ - static TBool IdMatchesName( TInt aWindowId, const TDesC& aWindowGroupName ); - - /** - * Returns the correct resource ID for the current orientation - * @since 3.0 - * @param aDefaultResourceID The resource ID for the default orientation - * @return The new resource ID - */ - - static TInt ResourceOrientationID( TInt aDefaultResourceID ); - - /** - * Map light sensitivity id to ISO rating value. - * - */ - static TInt MapLightSensitivity2IsoValueL( TCamLightSensitivityId aLightSensitivityId, RArray& aSupportedValues ); - - /** - * Map UI sharpness setting id to Camera sharpness setting value. - * - */ - static TInt MapSharpnessId2SharpnessValueL( TCamImageSharpnessId aSharpnessId ); - - /** - * Obtain resource id for specific video reoslution - * (for primary camera) - * @since 3.0 - * @param aResolution video reoslution - * @return resource id - */ - static TInt MapVideoQualityToViewFinderRes( TCamVideoResolution aResolution ); - - /** - * Determines if the battery power is good - * @since 3.0 - * @return ETrue if the battery is OK, and EFalse if it is - * low or almost empty - */ - static TBool IsBatteryPowerOK(); - - /** - * Determines if the battery power is empty - * @since 3.0 - * @return ETrue if the battery is Empty - */ - static TBool IsBatteryPowerEmpty(); - - /** - * Determines if the battery is being charged - * @since 3.0 - * @return ETrue if the battery is charging - */ - static TBool IsBatteryCharging(); - - /** - * Determines if LocationTrail is started - * @return ETrue if LocationTrail is started - */ - static TBool IsLocationAware(); - - /** - * Replaces original bitmap by bitmap with alpha channel. - * @since S60 5.0 - * @param aBmp, bitmap - * @param aMask, mask - * @param aColor, Color used instead of white. - */ - static void SetAlphaL( CFbsBitmap*& aBmp, CFbsBitmap*& aMask, - TRgb aColor = KRgbWhite ); - - /** - * Determines if USB is active - * @return ETrue if USB is active - */ - static TBool IsUsbActive(); - - /** - * Determines if the device has a NHD display. - * This method is meant to be used with the layouts only - * @return ETrue if NHD (640 x 360) display - */ - static TBool IsNhdDevice(); - - /** - * Determines device qwerty-mode state. - * This method is meant to be used with secondary camera. - * @return ETrue if qwerty keyboard is open - */ - static TBool IsQwertyOpen(); - - /** - * Get layout rectangle for given resolution in given mode. - * @param aMode ECamControllerVideo or ECamControllerImage. - * @param aResolution Resolution enumeration from - * CCamAppController::GetCurrentVideoResolution or - * CCamAppController::GetCurrentImageResolution depending - * on the mode. - * - */ - static TRect ViewfinderLayout( TCamCameraMode aMode, - TInt aResolution ); - - private: - - /** - * Helper method for ViewfinderLayout. - */ - static TAknWindowLineLayout ViewfinderLayoutTouch( TCamCameraMode aMode, - TInt aResolution ); - - /** - * Helper method for ViewfinderLayout. - */ - static TAknWindowLineLayout ViewfinderLayoutNonTouch( TCamCameraMode aMode, - TInt aResolution ); - - - }; - -#endif // CAMUTILITY_H - -// End of File