--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/inc/cameracontroller/camcameracontrollertypes.h Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,281 @@
+/*
+* Copyright (c) 2007-2008 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: Data type definitions for Camera Controller.
+*
+*/
+
+
+#ifndef CAM_CONTROLLERTYPES_H
+#define CAM_CONTROLLERTYPES_H
+
+#include "camcameracontrollerflags.hrh"
+#include "camcamerarequests.h"
+#ifdef CAMERAAPP_CAPI_V2_ADV
+ #include <ecamadvsettings.h>
+#endif
+
+// Max video recording time is 1:29:59
+// To be moved to a separate constants header.
+const TInt64 KMaxRecordingLength = MAKE_TINT64( 1, 0x41CE33C0 );
+
+typedef RArray<TCamCameraRequestId> RCamRequestArray;
+
+
+enum TCamCameraStateFlags
+ {
+ ECamIdle = 0,
+ ECamReserved = 1<<0,
+ ECamPowerOn = 1<<1,
+ ECamVFOn = 1<<2,
+ ECamImageOn = 1<<3,
+ ECamVideoOn = 1<<4
+// ECamCaptureOn = 1<<5
+ };
+
+enum TCamCameraCaptureState
+ {
+ ECamCaptureOff,
+ ECamCaptureOn,
+ ECamCapturePaused
+ };
+
+enum TCamCameraTriState
+ {
+ ECamTriIdle,
+ ECamTriInactive,
+ ECamTriActive
+ };
+
+enum TCamCameraReadyState
+ {
+ ECamUnknown,
+ ECamNotReady,
+ ECamReady
+ };
+
+enum TCamViewfinderMode
+ {
+ ECamViewfinderNone,
+ ECamViewfinderBitmap,
+ ECamViewfinderDirect
+ };
+
+enum TCamCameraControllerBusyFlags
+ {
+ ECamBusyOff = 0,
+ ECamBusySequence = 1,
+ ECamBusySingle = 2,
+ ECamBusySetting = 4
+ };
+
+class TCamVideoRecordingTimes
+ {
+ public:
+ TTimeIntervalMicroSeconds iTimeElapsed;
+ TTimeIntervalMicroSeconds iTimeRemaining;
+ };
+
+
+/**
+* Camera controller information
+*/
+class TCamControllerInfo
+ {
+ // ===================================
+ public:
+
+ TCamControllerInfo();
+
+ void Reset( TBool aPreserveBusyFlag = EFalse,
+ TBool aPreserveCameraIndex = EFalse );
+
+ void PrintInfo() const;
+
+ // ===================================
+ // Data
+ public:
+
+ /**
+ * Current camera index
+ */
+ TInt iCurrentCamera;
+
+ /**
+ * Controller overall state.
+ * TCamCameraStateFlags ORed.
+ */
+ TUint iState;
+
+ /**
+ * Current state of capturing image or video.
+ */
+ TCamCameraCaptureState iCaptureState; //< Is capture on, off or paused
+ TInt iCaptureLimit; //< Amount of captures (images) requested
+ TInt iCaptureCount; //< Amount of captures (images) received
+ TInt iSnapshotCount; //< Amount of snapshots (images) received
+
+ /**
+ * Viewfinder details
+ */
+ TCamViewfinderMode iVfMode;
+ TCamCameraTriState iVfState;
+ TSize iViewfinderSize;
+ CCamera::TFormat iViewfinderFormat;
+
+ /**
+ * Snapshot details
+ */
+ TCamCameraTriState iSsState;
+ TSize iSnapshotSize;
+ CCamera::TFormat iSnapshotFormat;
+ TBool iSnapshotAspectMaintain;
+
+#ifdef CAMERAAPP_CAPI_V2_ADV
+ /**
+ * Autofocus range
+ */
+ CCamera::CCameraAdvancedSettings::TFocusRange iCurrentFocusRange;
+#endif // CAMERAAPP_CAPI_V2_ADV
+
+
+ /**
+ * Is controller busy handling requests?
+ * New requests can not be issued if this is not EBusyOff.
+ * CancelSequence and CancelRequest can still be used.
+ */
+ TUint iBusy;
+
+ // ===================================
+ };
+
+
+#ifdef CAMERAAPP_CAPI_V2_ADV
+/**
+* Information on advanced settings.
+* (These use CCameraAdvancedSettings.)
+*
+*/
+class TCamAdvancedSettingInfo
+ {
+ // ===================================
+ public:
+
+ TCamAdvancedSettingInfo();
+ ~TCamAdvancedSettingInfo();
+
+ void Reset();
+ void PrintInfo() const;
+
+ // ===================================
+ // Data
+ //
+ // NOTE: Remember to modify Reset() if members are added.
+ public:
+
+ // Camera index which this info matches
+ TInt iForCameraIndex;
+
+ // Exposure compenstion support
+ TInt iEvModesSupport;
+ RArray<TInt> iEvStepsSupport;
+ TValueInfo iEvStepsValueInfo;
+
+ // ISO rate support
+ RArray<TInt> iIsoRatesSupport;
+
+ // Digital zoom steps support
+ RArray<TInt> iDigitalZoomSupport;
+ TValueInfo iDigitalZoomValueInfo;
+
+#ifdef CAMERAAPP_CAPI_V2_IP
+ // Colour fx support
+ RArray<TInt> iColourEffectSupport;
+ TValueInfo iColourEffectValueInfo;
+
+ // Sharpness support
+ RArray<TInt> iSharpnessSupport;
+ TValueInfo iSharpnessValueInfo;
+#endif
+
+ // Stabilization support
+ TInt iStabilizationModeSupport;
+ TInt iStabilizationEffectSupport;
+ TInt iStabilizationComplexitySupport;
+
+ // ===================================
+ };
+#endif // CAMERAAPP_CAPI_V2_ADV
+
+/**
+* Container for CCamera supported resolutions
+* for certain camera index and format.
+*/
+class TCamCameraResolutionSupport
+ {
+ // ===================================
+ public:
+
+ TCamCameraResolutionSupport();
+ ~TCamCameraResolutionSupport();
+
+ void Reset();
+
+ // ===================================
+ // Data
+ public:
+
+ TInt iForCameraIndex;
+ TInt iForCameraFormat;
+ RArray<TSize> iResolutions;
+
+ // ===================================
+ };
+
+
+
+// ===========================================================================
+// Debug strings
+#ifdef _DEBUG
+const TUint16* const KCamCameraCaptureStateNames[] =
+ {
+ (const TUint16* const)_S16("ECamCaptureOff"),
+ (const TUint16* const)_S16("ECamCaptureOn"),
+ (const TUint16* const)_S16("ECamCapturePaused")
+ };
+
+const TUint16* const KCamCameraTriStateNames[] =
+ {
+ (const TUint16* const)_S16("ECamTriIdle"),
+ (const TUint16* const)_S16("ECamTriInactive"),
+ (const TUint16* const)_S16("ECamTriActive")
+ };
+
+const TUint16* const KCamCameraReadyStateNames[] =
+ {
+ (const TUint16* const)_S16("ECamUnknown"),
+ (const TUint16* const)_S16("ECamNotReady"),
+ (const TUint16* const)_S16("ECamReady")
+ };
+
+const TUint16* const KCamViewfinderModeNames[] =
+ {
+ (const TUint16* const)_S16("ECamViewfinderNone"),
+ (const TUint16* const)_S16("ECamViewfinderBitmap"),
+ (const TUint16* const)_S16("ECamViewfinderDirect")
+ };
+#endif // _DEBUG
+
+#endif // CAM_CONTROLLERTYPES_H
+
+// end of file