javauis/mmapi_qt/baseline/inc/cmmavideorecordcontrol.h
branchRCL_3
changeset 24 0fd27995241b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/mmapi_qt/baseline/inc/cmmavideorecordcontrol.h	Tue May 11 16:07:20 2010 +0300
@@ -0,0 +1,151 @@
+/*
+* Copyright (c) 2002-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:  This class is a RecordControl.
+*
+*/
+
+
+#ifndef CMMAVIDEORECORDCONTROL_H
+#define CMMAVIDEORECORDCONTROL_H
+
+// EXTERNAL INCLUDES
+#include <videorecorder.h>
+
+//  INTERNAL INCLUDES
+#include "cmmarecordcontrol.h"
+#include "tmmaparametervalidator.h"
+
+// FORWARD DECLARATIONS
+class CMMAPlayer;
+class CMMAPlayerProperties;
+class CMMAMMFResolver;
+
+//  CLASS DECLARATION
+/**
+*   This class implements RecordControl interface for camera player.
+*
+*
+*/
+NONSHARABLE_CLASS(CMMAVideoRecordControl): public CMMARecordControl,
+        public MVideoRecorderUtilityObserver
+{
+
+public:
+    /**
+     * Creates new CMMAVideoRecordControl.
+     *
+     * @param aPlayer Player that controls the camera.
+     * @param aProperties Properties given in java player creation.
+     * @param aCameraHandle Handle to a camera, which is used as a source.
+     */
+    static CMMAVideoRecordControl* NewL(CMMAPlayer* aPlayer,
+    CMMAMMFResolver* aResolver,
+    const TMMAVideoSettings& aVideoSettings,
+    CMMAAudioSettings* aAudioSettings,
+    TInt aCameraHandle);
+protected:
+    CMMAVideoRecordControl(CMMAPlayer* aPlayer,
+                           TInt aCameraHandle);
+    ~CMMAVideoRecordControl();
+
+    /**
+     * Initializes this control.
+     * @param aProperties Properties given in java player creation.
+     */
+    void ConstructL(RMMFControllerImplInfoArray& aRMMFControllerInfos,
+                    const TMMAVideoSettings& aVideoSettings,
+                    CMMAAudioSettings* aAudioSettings);
+
+public: // From CMMARecordControl
+    void InitializeL();
+    void DoStartRecordL();
+    void DoStopRecordL();
+    void DoResetL();
+    TInt SetRecordSizeLimitL(TInt aSize);
+
+public: // From MVideoRecorderUtilityObserver
+    /**
+     * Notification to the client that the opening of the video clip has completed,
+     * successfully, or otherwise
+     *
+     * @param   "aError"
+     *          The status of the video recorder after initialisation.
+     *          This is either KErrNone if the open has completed successfully,
+     *          or one of the system wide error codes
+     */
+    void MvruoOpenComplete(TInt aError);
+
+    /**
+     * Notification that video recorder is ready to begin recording. This callback
+     * is generated in response to a call to Prepare.
+     *
+     * @param   "aError"
+     *          This is either KErrNone if the video recorder has been prepared for
+     *          recording successfully, or one of the system wide error codes
+     */
+    void MvruoPrepareComplete(TInt aError);
+
+    /**
+     * Notification that video recording has completed. This is not called if
+     * recording is explicitly stopped by calling Stop.
+     *
+     * @param   "aError"
+     *          This is either KErrNone if recording was completed successfully,
+     *          or one of the system wide error codes
+     */
+    void MvruoRecordComplete(TInt aError);
+
+    /**
+     * General event notification from controller. These events are specified by
+     * the supplier of the controller
+     *
+     * @param   "aEvent"
+     *          The event sent by the controller
+     */
+    void MvruoEvent(const TMMFEvent& aEvent);
+
+private: // New methods
+
+    /**
+     * Actually sets record size limit
+     * Will set local member to KNoUserDefinedRecordSize (-1)
+     * @param aSize New record size limit
+     */
+    void DoSetRecordSizeLimitL(TInt aSize);
+
+private: // Data
+    TInt iCameraHandle; // camera that is used as an image source
+
+    // Actual recording utility, owned
+    CVideoRecorderUtility* iRecorder;
+
+    CActiveSchedulerWait* iActiveSchedulerWait;
+
+    /**
+     * Global error code, used for getting error codes from callbacks
+     */
+    TInt iError;
+
+    /**
+     * Record size limit, will be KNoUserDefinedRecordSize (-1) when
+     * user has not set limits
+     */
+    TInt iRecordSizeLimit;
+
+    TMMAVideoSettings iVideoSettings; // Video settings
+
+};
+
+
+#endif // CMMAVIDEORECORDCONTROL_H