--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/inc/CamVideoPreCaptureContainer.h Thu Jan 07 16:18:56 2010 +0200
@@ -0,0 +1,275 @@
+/*
+* 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: Container for video pre capture view*
+*/
+
+
+
+#ifndef CAMVIDEOPRECAPTURECONTAINER_H
+#define CAMVIDEOPRECAPTURECONTAINER_H
+
+// INCLUDES
+#include "CamPreCaptureContainerBase.h"
+
+// CLASS DECLARATION
+
+/**
+* Container for video image pre capture view
+*/
+class CCamVideoPreCaptureContainer : public CCamPreCaptureContainerBase
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Symbian OS two-phased constructor
+ * @since 2.8
+ * @param aController reference to CCamAppControllerBase instance
+ * @param aView reference to the view containing this container
+ * @param aSetupPaneHandler handle to horizontal setup pane (product specific)
+ * @param aRect Frame rectangle for container.
+ * @return Pointer to newly constructed CCamVideoPreCaptureContainer object
+ */
+ static CCamVideoPreCaptureContainer* NewL(
+ CCamAppController& aController,
+ CAknView& aView,
+ const TRect& aRect );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CCamVideoPreCaptureContainer();
+
+ // -------------------------------------------------------
+ // From MCamControllerObserver
+ public:
+
+ /**
+ * @since 2.8
+ * @param aEvent The specific event which occurred
+ * @param aError The error code associated with the event
+ */
+ void HandleControllerEventL( TCamControllerEvent aEvent, TInt aError );
+
+ // <CAMERAAPP_CAPI_V2_MIGRATION>
+ // -------------------------------------------------------
+ // From MCamCameraObserver
+ public:
+
+ /**
+ * @since Camera 4.0
+ * @see MCamCameraObserver
+ */
+ // Base class implementation fits this class, too.
+ // virtual void HandleCameraEventL( TInt aStatus,
+ // TCamCameraEventId aEventId,
+ // TAny* aEventData = NULL );
+
+ /**
+ * From MCamViewFinderObserver
+ * New viewfinder frame is available
+ * @since 2.8
+ * @param aFrame pointer to the bitmap. This pointer is valid until
+ * the call returns. Ownership not transferred.
+ * @param aFrozen whether or not the viewfinder has been frozen
+ */
+ // void ShowViewFinderFrame( const CFbsBitmap* aFrame, TBool aFrozen );
+
+ // </CAMERAAPP_CAPI_V2_MIGRATION>
+ // -------------------------------------------------------
+ // From CCamPreCaptureContainerBase
+ public:
+
+ /**
+ * Handle events sending app to foreground or background
+ * @since 2.8
+ * @param aForeground whether the event brings the app to fore or background
+ */
+ virtual void HandleForegroundEventL( TBool aForeground );
+
+ protected:
+
+ /**
+ * Init the viewfinder grid.
+ * Overriden from base class to always disable vf grid.
+ */
+ virtual void InitVfGridL( const TRect& aRect );
+
+ private:
+
+ /**
+ * From CCamPreCaptureContainerBase
+ * Return the id of the layout resource for the viewfinder frame
+ * @since 2.8
+ * @param aViewFinderLayoutId on return this contains the resource id
+ * of the viewfinder layout
+ * @param aReticuleLayoutId on return this contains the resource id
+ * of the reticule layout if used, otherwise 0
+ */
+ virtual void ViewFinderLayoutResourceIds( TInt& aViewFinderLayoutId,
+ TInt& aReticuleLayoutId ) const;
+
+ /**
+ * From CCamPreCaptureContainerBase
+ * Sets the resolution indicator to the required icon
+ * @since 2.8
+ */
+ virtual void SetResolutionIndicator();
+
+ /**
+ * Sets the location indicator icon if the setting is enabled
+ */
+ virtual void SetLocationIndicatorVisibility();
+
+ /**
+ * Returns the rect of the location indicator
+ * @return The rect of the location icon as a TRect
+ * @since 3.0
+ */
+ virtual TRect LocationIndicatorRect();
+
+ /**
+ * From CCamPreCaptureContainerBase
+ * Move up through the flash settings
+ * @since 3.0
+ */
+ virtual void IncreaseFlashSettingL();
+
+ /**
+ * From CCamPreCaptureContainerBase
+ * Move down through the flash settings
+ * @since 3.0
+ */
+ virtual void DecreaseFlashSettingL();
+
+ /**
+ * From CCamPreCaptureContainerBase
+ * Process a key event that should change the current capture state
+ * E.g. start/pause recording, start/stop capture
+ * @since 3.0
+ * @param aKeyEvent the key press that initiates the capture
+ * @return whether or not the key was consumed
+ */
+ virtual TKeyResponse HandleCaptureKeyEventL( const TKeyEvent& aKeyEvent );
+
+ /**
+ * Allows additional mode-specific icons to be drawn
+ * @param aGc The context to draw with
+ */
+ virtual void DrawAdditionalIcons(CBitmapContext& aGc) const;
+
+ /**
+ * Returns the ID of the array containing the resolution indicator icons
+ * @return The array ID
+ * @since 3.0
+ */
+ virtual TCamPsiKey ResolutionIndicatorIconPsiKey() const;
+
+ /**
+ * Process a key event that could change the current capture state
+ * E.g. start autofocus, revert from post-capture to pre-capture views
+ * @since 3.0
+ * @param aKeyEvent the key press that initiates the capture
+ * @param aType the key type for the event
+ * @return whether or not the key was consumed
+ */
+ virtual TKeyResponse HandleShutterKeyEventL( const TKeyEvent& aKeyEvent,
+ TEventCode aType );
+
+ /**
+ * Gets the resource id of AP items.
+ * Resource is selected based on embedded status and user mode.
+ */
+ virtual TInt GetAPResourceId() const;
+
+
+ // -------------------------------------------------------
+ // New methods
+ private:
+
+ /**
+ * Draws blank softkeys
+ * @since 3.0
+ */
+ void BlankSoftkeysL();
+
+ /**
+ * Creates the icons used to indicate video file type
+ * @since 3.0
+ */
+ void CreateFiletypeIndicatorL();
+
+ /**
+ * Sets the video file type icon depending on current setting
+ * @since 3.0
+ */
+ void SetFileTypeIndicator();
+
+
+ // -------------------------------------------------------
+ // Constructors
+ private:
+
+ /**
+ * Symbian OS 2nd phase constructor.
+ * @since 2.8
+ * @param aRect Frame rectangle for container.
+ */
+ void ConstructL( const TRect& aRect );
+
+ /**
+ * C++ constructor
+ * @since 2.8
+ * @param aController reference to CCamAppControllerBase instance
+ * @param aSetupPaneHandler handle to horizontal setup pane (product specific)
+ * @param aView reference to the view containing this container
+ */
+ CCamVideoPreCaptureContainer(
+ CCamAppController& aController,
+ CAknView& aView );
+
+ // =======================================================
+ // Data
+ private:
+ // Values representing current recording state
+ enum TCamRecordState
+ {
+ ECamNotRecording,
+ ECamRecording,
+ ECamRecordPaused
+ };
+
+ // Current recording states
+ TCamRecordState iRecordState;
+
+ // resource for viewfinder layout
+ TInt iVFRes;
+
+ // Video file type indicator
+ CCamIndicator* iFileTypeIndicator;
+
+ // Location of video file type indicator during video capture
+ TRect iFileTypeIndicatorVidcapPosition;
+
+ // Normal location of video file type indicator
+ TRect iFileTypeIndicatorPosition;
+
+ // Position to move the resolution icon to during video capture
+ TRect iResolutionIndicatorVidcapPosition;
+
+ // =======================================================
+ };
+
+#endif // CAMVIDEOPRECAPTURECONTAINER_H
+
+// End of File CAMVIDEOPRECAPTURECONTAINER_H