mmplugins/cameraplugins/source/webcamera/ecamwebcameraactive.h
author Masaki Hosaka <hosaka@isb.co.jp>
Thu, 25 Mar 2010 11:21:36 +0900
branchRCL_3
changeset 9 9ae0fe04e757
child 64 92a82bc706f7
permissions -rw-r--r--
Add web camera plug-ins and test camera application.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     1
/*
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     2
* Copyright (c) 2010 ISB.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     3
* All rights reserved.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     5
* under the terms of the "Symbian Foundation License v1.0"
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     7
* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     8
*
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
     9
* Initial Contributors:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    10
* ISB - Initial contribution
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    11
*
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    12
* Contributors:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    13
*
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    14
* Description:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    15
*
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    16
*/
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    17
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    18
#ifndef ECAMWEBCAMERAACTIVE_H
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    19
#define ECAMWEBCAMERAACTIVE_H
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    20
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    21
#include "ecamwebcameraplugin.h"
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    22
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    23
/**
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    24
 *  Perform an Async demand of the camera application
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    25
 */
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    26
class CWebCameraActive : public CActive
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    27
	{
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    28
private:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    29
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    30
	/**
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    31
    Active Operation of ECamWebCamera
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    32
    */
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    33
	enum TECamWebCameraActiveOperation
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    34
		{
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    35
		ECamActiveIdle = 0,
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    36
		ECamActiveReserve,
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    37
		ECamActivePowerOn,
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    38
		ECamActiveImageCapture,
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    39
		};
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    40
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    41
public:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    42
    /** Constructor */
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    43
    /**
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    44
     * @param aOwner 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    45
     		  pointer to callback object.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    46
     * @param aDriver 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    47
     		  reference to driver.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    48
     */
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    49
    CWebCameraActive(MWebCameraActiveCallBack* aOwner, RWebcameraDevice& aDriver);
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    50
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    51
	/**> Destructor */
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    52
	~CWebCameraActive();
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    53
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    54
    /**
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    55
     * Two-phased constructor.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    56
     * @param aOwner 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    57
     		  pointer to callback object.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    58
     * @param aDriver 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    59
     		  reference to driver.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    60
     */
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    61
	static CWebCameraActive* NewL(MWebCameraActiveCallBack* aOwner, RWebcameraDevice& aDriver);
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    62
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    63
	/** 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    64
	Asynchronous function that performs any required initialisation and reserves
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    65
	the camera for exclusive use.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    66
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    67
	Calls CWebCamera::ReserveCallBack when complete. 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    68
	*/
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    69
	void Reserve();
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    70
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    71
	/** 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    72
	Asynchronous method to switch on camera power.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    73
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    74
	User must have successfully called Reserve() prior to calling this function.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    75
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    76
	Calls CWebCamera::PowerOnCallBack when power on is complete. 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    77
	*/
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    78
	void PowerOn();
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    79
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    80
	/** 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    81
	Cancels the asynchronous still image capture. 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    82
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    83
	Calls CWebCamera::ImageCaptureCallBack when capture is complete. 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    84
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    85
	* @param aDes descriptor to store a capture image
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    86
	*/
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    87
	void ImageCapture(TDes8& aDes);
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    88
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    89
	/** 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    90
	Cancels the asynchronous still image capture. 
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    91
	
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    92
	@see CWebCamera::CancelCaptureImage
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    93
	*/
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    94
	void CancelCaptureImage();
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    95
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    96
private:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    97
	void ConstructL();
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    98
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
    99
private:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   100
    /**
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   101
     * RunL.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   102
     */
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   103
	void RunL();
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   104
	void DoCancel();
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   105
	void ViewFinderComplete(TInt aError);
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   106
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   107
private:
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   108
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   109
	MWebCameraActiveCallBack*		iOwner;		// origin of start.
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   110
	TECamWebCameraActiveOperation	iOperation;	// Status of the Active Operation of ECamWebCamera
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   111
	RWebcameraDevice				iDriver;	// Camera driver
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   112
	};
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   113
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   114
9ae0fe04e757 Add web camera plug-ins and test camera application.
Masaki Hosaka <hosaka@isb.co.jp>
parents:
diff changeset
   115
#endif // ECAMWEBCAMERAPLUGIN_H