--- a/camerauis/cameraapp/generic/inc/CamImageSaveActive.h Thu Aug 19 09:36:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,396 +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: Active object that manages saving and deletion of images*
-*/
-
-
-
-
-#ifndef CAMIMAGESAVEACTIVE_H
-#define CAMIMAGESAVEACTIVE_H
-
-// INCLUDES
-
-#include <e32base.h>
-#include <badesca.h>
-#include <f32file.h>
-#include <thumbnailmanager.h>
-#include <thumbnailmanagerobserver.h>
-
-#if defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
-#include <harvesterclient.h>
-#endif // defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
-
-// DATA TYPES
-/**
-* Save event type
-*/
-enum TCamSaveEvent
- {
- ECamSaveEventStarted,
- ECamSaveEventComplete,
- ECamSaveEventBurstComplete,
- ECamSaveEventUserCancelled,
- ECamSaveEventDeleted,
- ECamSaveEventSaveError,
- ECamSaveEventCriticalError
- };
-
-// CONSTANTS
-#ifdef _DEBUG
-const TUint16* const KCamSaveEventNames[] =
- {
- (const TUint16* const)_S16("ECamSaveEventStarted"),
- (const TUint16* const)_S16("ECamSaveEventComplete"),
- (const TUint16* const)_S16("ECamSaveEventBurstComplete"),
- (const TUint16* const)_S16("ECamSaveEventUserCancelled"),
- (const TUint16* const)_S16("ECamSaveEventDeleted")
- };
-#endif
-
-// FORWARD DECLARATIONS
-class CAknProgressDialog;
-class CEikProgressInfo;
-class CCamBufferShare;
-class CCamAppController;
-class CCamBurstCaptureArray;
-
-// CLASS DECLARATIONS
-
-/**
-* Abstract API for image save observer.
-* Provides an asynchronous 'callback' method to inform derived classes
-* that the save operation has been completed.
-*
-* @since 2.8
-*/
-class MCamImageSaveObserver
- {
- public:
- /**
- * The image saving operation has completed
- * @since 2.8
- * @param aEvent the type of event
- */
- virtual void HandleSaveEvent( TCamSaveEvent aEvent ) = 0;
-
- /**
- *
- */
- virtual void HandleFileHarvestingComplete() = 0;
- };
-
-/**
-* Class to manage the asynchronous saving and synchronous deletion
-* of images.
-* @since 2.8
-*/
-class CCamImageSaveActive : public CActive
-#if defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
- ,private MHarvestObserver
-#endif // defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
- , public MThumbnailManagerObserver
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- * @since 2.8
- * @param aObserver Informed when image saving has completed
- */
- static CCamImageSaveActive* NewL( MCamImageSaveObserver& aObserver,
- CCamAppController& aController );
-
- /**
- * Destructor.
- */
- virtual ~CCamImageSaveActive();
-
- public: // Functions from base classes
-
- /**
- * From CActive, cancels the active object
- * Deletes all files remaining in the save arrays except any currently
- * saving file. If currently saving, the active object waits until the
- * save completes then performs cleanup.. This method is synchronous
- * even when it involves a wait for save completion.
- * @since 2.8
- */
- void Cancel();
-
- public: // New functions
-
- /**
- * A request for a file to be saved asynchronously, will be scheduled
- * immediately if no other save is current, otherwise the save is queued
- * @since 2.8
- * @param aFilename the full path and filename to save the image to
- * @param aImageData the image data to save
- * @return Whether or not the image data has been successfully added
- * to the pending save list.
- */
- TBool AddToSave( const TDesC& aFilename,
- CCamBufferShare* aImageData );
-
- /**
- * A request for a file to be deleted. Will prevent any pending save.
- * If the file to delete is currently saving the deletion will occur
- * when the save operation completes.
- * @since 2.8
- * @param aFilename the full path and name of the file to be deleted
- * @param aSaveRequested whether or not a previous request to save this file
- * has been made.
- * @return System wide error code to indicate success or failure of the deletion
- */
- TInt DeleteFile( const TDesC& aFilename, TBool aSaveRequested );
-
- /**
- * Returns whether a particular file has already been saved.
- * @since 2.8
- * @param aFilename the name of the file to check.
- * @return ETrue if the file has been saved.
- */
- TBool AlreadySavedFile( const TDesC& aFilename ) const;
-
- /**
- * Returns whether a particular file is in the process of being saved.
- * @since 2.8
- * @param aFilename the name of the file to check.
- * @return ETrue if the file is in the process of being saved.
- */
- TBool CurrentlySavingFile( const TDesC& aFilename ) const;
-
- /**
- * A request for the progress note to be displayed
- * @since 2.8
- * @param aExpectedImages the number of images to be saved
- */
- void DisplayProgressNote( TInt aExpectedImages );
-
- /**
- * A request for the progress note to be dismissed when the save completes
- * @since 2.8
- */
- void DismissProgressNote();
-
- /**
- * Set the "Add to album" setting for photos
- * determines whether or not photos are added to the default capture album
- * after a successful save
- * @since 2.8
- * @param aAdding ETrue if "Add to album" is on, otherwise EFalse
- */
- void SetAddImageToAlbum( const TBool aAdding,
- const TUint32 aDefaultAlbumId );
-
- /**
- * Add the specified file to the default capture album
- * Called internally for images when save completes. Called externally for
- * videos as video saving is handled elsewhere. Calls AddToAlbumL().
- * @since 2.8
- * @param aFilename The photo or video to add to the capture album
- * @param aPhoto Indicates if the specified file is a photo or video
- */
- void AddToAlbum( const TDesC& aFilename,
- const TBool aPhoto,
- const TUint32 aDefaultAlbumId );
-
- /**
- * The number of items in the saving arrays
- * @since 2.8
- * @return A count of items
- */
- TInt Count() const;
-
- /**
- * Retrieves the file size of the specified file.
- * @since 3.0
- * @param aFilename The file to return the size of.
- * @return The size of the file in bytes, or KErrNotFound
- */
- TInt FileSize( const TDesC& aFilename ) const;
-
- /**
- * Stores filename and snapshot handle for thumbnail creation
- */
- void CreateThumbnailsL( const CCamBurstCaptureArray& aArray );
-
- /**
- * Calls thumbnailmanager to create thumbnails
- */
- void DoCreateThumbnailL();
-
- /**
- * Cancels thumbnail creation for a given snapshot.
- * @param aSnapshotIndex Index of the snapshot in burst array.
- */
- void CancelThumbnail( TInt aSnapshotIndex );
-
- void ForceCancel();
- /**
- * From MThumbnailManagerObserver, not used
- */
- void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
- TThumbnailRequestId aId );
-
- /**
- * From MThumbnailManagerObserver, not used
- */
- void ThumbnailReady( TInt aError,
- MThumbnailData& aThumbnail,
- TThumbnailRequestId aId );
-
-#if defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
- /*
- * RegisterForHarvesterEvents
- */
- void RegisterForHarvesterEvents();
-
- /*
- * DeRegisterHarverterClientEvents
- */
- void DeRegisterHarverterClientEvents();
-
- private: // From MHarvestObserver
-
- /*
- * HarvestingComplete
- */
- void HarvestingComplete( TDesC& aURI
-#ifdef RD_MDS_2_5
- , TInt aError
-#endif //RD_MDS_2_5
- );
-
-#endif // defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
-
- private:
-
- /**
- * Constructor
- * @since 2.8
- * @param aObserver Informed when image saving has completed
- */
- CCamImageSaveActive( MCamImageSaveObserver& aObserver,
- CCamAppController& aController );
-
- /**
- * 2nd phase construction
- * @since 2.8
- */
- void ConstructL();
-
- /**
- * Schedule to run immediately
- * @since 2.8
- */
- void SetActiveAndCompleteRequest();
-
- /**
- * Cancels the active object
- * @since 2.8
- */
- void DoCancel();
-
- /**
- * Perform the next scheduled task
- * @since 2.8
- */
- void RunL();
-
- /**
- * Handle leave in RunL.
- * @param aError The error (leave) code from RunL.
- */
- TInt RunError( TInt aError );
-
- /**
- * Tidy up after a previous save has completed
- * @param aDoFlush Should an asyncrhonous flush be done
- * @since 2.8
- */
- void CompleteSaveOperation( TBool aDoFlush );
-
- /**
- * Carry out the next pending save operation
- * @since 2.8
- */
- void DoSaveL();
-
- /**
- * Display the progress note
- * @since 2.8
- */
- void DoDisplayProgressNoteL();
-
- /**
- * Dismiss the progress note when the saves have completed
- * @since 2.8
- */
- void DoDismissProgressNote();
-
- /**
- * Indicate to observers that saving has completed
- * @param aEvent the cause of completion
- * @since 2.8
- */
- void ReportToObserver( TCamSaveEvent aEvent );
-
- /**
- * Helper method to release all the shared buffers in the array.
- */
- void ReleaseAllAndDestroy( RPointerArray<CCamBufferShare>& aArray );
-
-
- private:
-
- MCamImageSaveObserver& iObserver; // informed when image saving has completed
- CCamAppController& iController;
-
- CDesCArray* iSaveArray; // reserved filenames
- RPointerArray<CCamBufferShare> iImageArray; // image data (order reflects iSaveArray)
- CDesCArray* iNameArray; // filenames for thumbnail creation
- RPointerArray<CFbsBitmap> iSnapArray; // snapshots for thumbnail creation
- CThumbnailManager* iManager; // TN manager
-
- RFile iFile; // Handle to a file object
- TBool iSaveCurrent; // Indicates if a saving operation is ongoing
- TBool iDeleteCurrent; // If the currently saving file needs deleting
- TBool iDoCancel; // If further saves should be cancelled
- TBool iShowNote; // If the progress note should be displayed
- TBool iDismissNote; // If the progress note should be dismissed
- // when all saves complete
- TInt iExpectedImages; // The number of images expected for progress info
- TInt iSaveProgressCount; // The count of images saved for this progress
- TBool iCompletedBurst; // If a set of burst images has completed
- CActiveSchedulerWait iWait; // To make asychronous synchronous during cancellation
- // Progress note shown when the applicaiton must wait for saving to complete
- CAknProgressDialog* iSaveProgressDialog;
- // The progress bar shown in iSaveProgressDialog
- CEikProgressInfo* iSaveProgressInfo;
- TBool iAddImageToAlbum; // Whether or not images should be added to album
- TUint32 iDefaultAlbumId; // To store the default album id from appcontroller
- TBool iFlushing;
- RArray<TThumbnailRequestId> iThumbnailRequests; // thumbnail request ids
-
-#if defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
- RHarvesterClient iHarvesterClient;
- TBool iRegisteredForHarvesterEvents;
- TBool iHarvesterClientConnected;
-#endif // defined(RD_MDS_2_5) && !defined(__WINSCW__) && !defined(__WINS__)
- };
-
-#endif // CAMIMAGESAVEACTIVE_H
-
-// End of File