diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraapp/generic/inc/camfolderutility.h --- a/camerauis/cameraapp/generic/inc/camfolderutility.h Tue Feb 02 00:01:39 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2007 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: -* -* -* -*/ - - - - -#ifndef CAM_FOLDERUTILITY_H -#define CAM_FOLDERUTILITY_H - -// =========================================================================== -// Included headers -#include - -#include "CamSettingsInternal.hrh" -#include "CamSettings.hrh" - -// =========================================================================== - -/** -* Utility class for folder naming -*/ -class CCamFolderUtility : public CBase - { - // ======================================================= - // Types and constants - public: - - static const TInt KMaxGuaranteedBurstGroup = 20; - static const TInt KMaxFilesPerFolder = 100; - - enum TCamFolderType - { - ECamFolderTypeImageMMC, - ECamFolderTypeImagePhone, - ECamFolderTypeVideoMMC, - ECamFolderTypeVideoPhone, - ECamFolderTypeLast - }; - - // ======================================================= - public: - - /** - * Get the base path to be used for greating the next filename - * @since 2.8 - * @param aMonthCounters Array with counter for every storage type folders. - * Must have ECamFolderTypeLast number of items (or more). - * @param aStorage Whether storing to Phone or MMC - * @param aPath On return will contain the new path, if the final destination - * (month counter) folder does not exist then this will contain the parent - * folder (month folder) - * @param aCaptureMode image or video mode (used to determine folder path/name) - * @param aCreateAll whether or not the destination folder should be created - * if it does not already exist. The folders at higher levels than this are - * always ensured to exist (unless the function returns an error, when existence is - * undetermined). If aCreateAll is ETrue the remaining space (max 100 files) in the - * destination folder is checked, - * @param aRequiredFileCount Folders will contain a maximum of 100 files. If there is - * not enough space for the specified count then a new folder will be created. - * @param aTime provides the month and year used to determine the folder name (ensures - * that all images in a sequence are placed in the same month parent folder). If aTime - * is 0 GetBasePathL uses the current system time. - */ - static void GetBasePathL( TInt* aMonthCounters, - TInt aStorage, // TCamMediaStorage - TDes& aPath, - TCamCameraMode aCaptureMode, - TBool aCreateAll, - TInt aRequiredFileCount = 1, - TTime aTime = TInt64( 0 ) ); - - /** - * Reset certain month folder counters. - * @param The array containing month folder counters for every storage type. - * Must have ECamFolderTypeLast number of items (or more). - * @param aFrom The index of first counter which is resetted. - * @param aTo The index of last counter which is resetted. - */ - static void ResetCounters( TInt* aMonthCounters, - TInt aFrom = ECamFolderTypeImageMMC, - TInt aTo = ECamFolderTypeLast - 1 ); - - private: - - /** - * Set up the counters used to create mulitple month folders - * @since 3.0 - * @param aMonthCounters Array with counter for every storage type folders. - * Must have ECamFolderTypeLast number of items (or more). - * @param aPath the current path. - * @param aMonthFolder the name of the month folder parent directory - * @param aFs file server session - * @param aFolderType Index into the array of folder counters (image/video, mmc/phone) - * @return KErrNone or another system wide error code - */ - static TInt InitialiseMonthCounter( TInt* aMonthCounters, - TDes& aPath, - TDesC& aMonthFolder, - RFs& aFs, - TInt aFolderType ); - - /** - * Create the destination folder for the next image or video. - * @since 3.0 - * @param aMonthCounters Array with counter for every storage type folders. - * Must have ECamFolderTypeLast number of items (or more). - * @param aPath If returning without error this will contain the new path. - * @param aFs file server session - * @param aFolderType Index into the array of folder counters (image/video, mmc/phone) - * @param aRequiredFileCount Folders will contain a maximum of 100 files. If there is - * not enough space for the specified count then a new folder will be created. When the - * highest possible folder number is reached (Z9) the 100 file limit is ignored - * @return KErrNone or another system wide error code - */ - static TInt CreateDestinationFolder( TInt* aMonthCounters, - TDes& aPath, - RFs& aFs, - TInt aFolderType, // TCamMediaStorage - TInt aRequiredFileCount ); - - - // ======================================================= - }; - - -#endif // CAM_FOLDERUTILITY_H - -// =========================================================================== -// end of file